summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/Makefile.am4
-rw-r--r--lib/Makefile.gnulib31
-rw-r--r--lib/Makefile.in2695
-rw-r--r--lib/_Noreturn.h2
-rw-r--r--lib/alloca.in.h2
-rw-r--r--lib/amemxfrm.c32
-rw-r--r--lib/amemxfrm.h2
-rw-r--r--lib/arg-nonnull.h2
-rw-r--r--lib/array-mergesort.h2
-rw-r--r--lib/assert.in.h2
-rw-r--r--lib/attribute.h108
-rw-r--r--lib/c++defs.h14
-rw-r--r--lib/c-ctype.c5
-rw-r--r--lib/c-ctype.h2
-rw-r--r--lib/c-strcase.h2
-rw-r--r--lib/c-strcasecmp.c35
-rw-r--r--lib/c-strcaseeq.h2
-rw-r--r--lib/c32is-impl.h4
-rw-r--r--lib/c32isalnum.c2
-rw-r--r--lib/c32isalpha.c2
-rw-r--r--lib/c32isblank.c2
-rw-r--r--lib/c32iscntrl.c2
-rw-r--r--lib/c32isdigit.c2
-rw-r--r--lib/c32isgraph.c2
-rw-r--r--lib/c32islower.c2
-rw-r--r--lib/c32isprint.c2
-rw-r--r--lib/c32ispunct.c2
-rw-r--r--lib/c32isspace.c2
-rw-r--r--lib/c32isupper.c2
-rw-r--r--lib/c32isxdigit.c2
-rw-r--r--lib/c32to-impl.h4
-rw-r--r--lib/c32tolower.c2
-rw-r--r--lib/c32width.c4
-rwxr-xr-xlib/declared.sh4
-rw-r--r--lib/errno.in.h2
-rw-r--r--lib/fcntl.in.h54
-rw-r--r--lib/flexmember.h2
-rw-r--r--lib/float+.h2
-rw-r--r--lib/float.c2
-rw-r--r--lib/float.in.h4
-rw-r--r--lib/fpucw.h2
-rw-r--r--lib/free.c6
-rw-r--r--lib/frexp.c8
-rw-r--r--lib/frexpl.c2
-rw-r--r--lib/fseterr.c18
-rw-r--r--lib/fseterr.h2
-rw-r--r--lib/getlocalename_l-unsafe.c78
-rw-r--r--lib/getlocalename_l-unsafe.h2
-rw-r--r--lib/glthread/lock.c66
-rw-r--r--lib/glthread/lock.h2
-rw-r--r--lib/glthread/once.c2
-rw-r--r--lib/glthread/once.h2
-rw-r--r--lib/glthread/threadlib.c2
-rw-r--r--lib/hard-locale.c2
-rw-r--r--lib/hard-locale.h2
-rw-r--r--lib/iconv.c2
-rw-r--r--lib/iconv.in.h4
-rw-r--r--lib/iconv_close.c2
-rw-r--r--lib/iconv_open-aix.gperf2
-rw-r--r--lib/iconv_open-aix.h11
-rw-r--r--lib/iconv_open-hpux.gperf2
-rw-r--r--lib/iconv_open-hpux.h11
-rw-r--r--lib/iconv_open-solaris.gperf2
-rw-r--r--lib/iconv_open-solaris.h15
-rw-r--r--lib/iconv_open-zos.gperf2
-rw-r--r--lib/iconv_open-zos.h15
-rw-r--r--lib/iconv_open.c11
-rw-r--r--lib/iconveh.h2
-rw-r--r--lib/idx.h2
-rw-r--r--lib/intprops-internal.h10
-rw-r--r--lib/inttypes.in.h6
-rw-r--r--lib/isnan.c17
-rw-r--r--lib/isnand-nolibm.h2
-rw-r--r--lib/isnand.c2
-rw-r--r--lib/isnanf-nolibm.h2
-rw-r--r--lib/isnanf.c2
-rw-r--r--lib/isnanl-nolibm.h2
-rw-r--r--lib/isnanl.c2
-rw-r--r--lib/iswblank.c2
-rw-r--r--lib/iswdigit.c2
-rw-r--r--lib/iswpunct.c2
-rw-r--r--lib/iswxdigit.c2
-rw-r--r--lib/itold.c2
-rw-r--r--lib/lc-charset-dispatch.c4
-rw-r--r--lib/lc-charset-dispatch.h2
-rw-r--r--lib/limits.in.h2
-rw-r--r--lib/localcharset.c13
-rw-r--r--lib/localcharset.h2
-rw-r--r--lib/locale.in.h8
-rw-r--r--lib/localeconv.c2
-rw-r--r--lib/localename-environ.c44
-rw-r--r--lib/localename-table.c2
-rw-r--r--lib/localename-table.h2
-rw-r--r--lib/localename-unsafe.c238
-rw-r--r--lib/localename.c22
-rw-r--r--lib/localename.h2
-rw-r--r--lib/malloc.c2
-rw-r--r--lib/malloca.c2
-rw-r--r--lib/malloca.h2
-rw-r--r--lib/math.c2
-rw-r--r--lib/math.in.h250
-rw-r--r--lib/mbchar.c5
-rw-r--r--lib/mbchar.h2
-rw-r--r--lib/mbiterf.c5
-rw-r--r--lib/mbiterf.h2
-rw-r--r--lib/mbrtoc32.c6
-rw-r--r--lib/mbrtowc-impl-utf8.h2
-rw-r--r--lib/mbrtowc-impl.h29
-rw-r--r--lib/mbrtowc.c9
-rw-r--r--lib/mbsinit.c2
-rw-r--r--lib/mbsnlen.c2
-rw-r--r--lib/mbszero.c2
-rw-r--r--lib/mbtowc-lock.c2
-rw-r--r--lib/mbtowc-lock.h11
-rw-r--r--lib/memchr.c174
-rw-r--r--lib/memchr.valgrind2
-rw-r--r--lib/memcmp2.c2
-rw-r--r--lib/memcmp2.h2
-rw-r--r--lib/minmax.h2
-rw-r--r--lib/printf-args.c2
-rw-r--r--lib/printf-args.h2
-rw-r--r--lib/printf-frexp.c5
-rw-r--r--lib/printf-frexp.h2
-rw-r--r--lib/printf-frexpl.c2
-rw-r--r--lib/printf-frexpl.h2
-rw-r--r--lib/printf-parse.c16
-rw-r--r--lib/printf-parse.h2
-rw-r--r--lib/pthread-once.c2
-rw-r--r--lib/pthread.in.h53
-rw-r--r--lib/relocatable.c69
-rw-r--r--lib/relocatable.h2
-rw-r--r--lib/relocatable.valgrind2
-rw-r--r--lib/sched.in.h3
-rw-r--r--lib/setlocale-fixes.c12
-rw-r--r--lib/setlocale-fixes.h2
-rw-r--r--lib/setlocale-lock.c2
-rw-r--r--lib/setlocale_null-unlocked.c10
-rw-r--r--lib/setlocale_null.c15
-rw-r--r--lib/setlocale_null.h2
-rw-r--r--lib/signbitd.c2
-rw-r--r--lib/signbitf.c2
-rw-r--r--lib/signbitl.c2
-rw-r--r--lib/size_max.h2
-rw-r--r--lib/stdckdint.in.h4
-rw-r--r--lib/stddef.in.h2
-rw-r--r--lib/stdint.in.h2
-rw-r--r--lib/stdio-impl.h60
-rw-r--r--lib/stdlib.c2
-rw-r--r--lib/stdlib.in.h59
-rw-r--r--lib/str-two-way.h283
-rw-r--r--lib/streq-opt.h (renamed from lib/streq.h)8
-rw-r--r--lib/striconveh.c135
-rw-r--r--lib/striconveh.h2
-rw-r--r--lib/striconveha.c77
-rw-r--r--lib/striconveha.h2
-rw-r--r--lib/string.c7
-rw-r--r--lib/string.in.h142
-rw-r--r--lib/strncat.c2
-rw-r--r--lib/strncpy.c38
-rw-r--r--lib/strstr.c32
-rw-r--r--lib/struniq.h13
-rw-r--r--lib/sys_types.in.h2
-rw-r--r--lib/thread-optim.h2
-rw-r--r--lib/time.in.h27
-rw-r--r--lib/uchar.in.h5
-rw-r--r--lib/unicase.in.h2
-rw-r--r--lib/unicase/cased.c2
-rw-r--r--lib/unicase/casefold.h2
-rw-r--r--lib/unicase/caseprop.h2
-rw-r--r--lib/unicase/context.h2
-rw-r--r--lib/unicase/empty-prefix-context.c2
-rw-r--r--lib/unicase/empty-suffix-context.c2
-rw-r--r--lib/unicase/ignorable.c2
-rw-r--r--lib/unicase/invariant.h2
-rw-r--r--lib/unicase/locale-language.c5
-rw-r--r--lib/unicase/locale-languages.gperf2
-rw-r--r--lib/unicase/locale-languages.h12
-rw-r--r--lib/unicase/simple-mapping.h2
-rw-r--r--lib/unicase/special-casing.c2
-rw-r--r--lib/unicase/special-casing.in.h2
-rw-r--r--lib/unicase/tocasefold.c2
-rw-r--r--lib/unicase/tolower.c2
-rw-r--r--lib/unicase/totitle.c2
-rw-r--r--lib/unicase/toupper.c2
-rw-r--r--lib/unicase/u-casecmp.h22
-rw-r--r--lib/unicase/u-casecoll.h24
-rw-r--r--lib/unicase/u-casefold.h2
-rw-r--r--lib/unicase/u-casemap.h150
-rw-r--r--lib/unicase/u-casexfrm.h30
-rw-r--r--lib/unicase/u-ct-casefold.h26
-rw-r--r--lib/unicase/u-ct-totitle.h165
-rw-r--r--lib/unicase/u-is-cased.h31
-rw-r--r--lib/unicase/u-is-invariant.h21
-rw-r--r--lib/unicase/u-prefix-context.h2
-rw-r--r--lib/unicase/u-suffix-context.h2
-rw-r--r--lib/unicase/u-totitle.h2
-rw-r--r--lib/unicase/u16-casecmp.c2
-rw-r--r--lib/unicase/u16-casecoll.c2
-rw-r--r--lib/unicase/u16-casefold.c2
-rw-r--r--lib/unicase/u16-casemap.c2
-rw-r--r--lib/unicase/u16-casexfrm.c2
-rw-r--r--lib/unicase/u16-ct-casefold.c2
-rw-r--r--lib/unicase/u16-ct-tolower.c2
-rw-r--r--lib/unicase/u16-ct-totitle.c2
-rw-r--r--lib/unicase/u16-ct-toupper.c2
-rw-r--r--lib/unicase/u16-is-cased.c2
-rw-r--r--lib/unicase/u16-is-casefolded.c2
-rw-r--r--lib/unicase/u16-is-invariant.c2
-rw-r--r--lib/unicase/u16-is-lowercase.c2
-rw-r--r--lib/unicase/u16-is-titlecase.c2
-rw-r--r--lib/unicase/u16-is-uppercase.c2
-rw-r--r--lib/unicase/u16-prefix-context.c2
-rw-r--r--lib/unicase/u16-suffix-context.c2
-rw-r--r--lib/unicase/u16-tolower.c2
-rw-r--r--lib/unicase/u16-totitle.c2
-rw-r--r--lib/unicase/u16-toupper.c2
-rw-r--r--lib/unicase/u32-casecmp.c2
-rw-r--r--lib/unicase/u32-casecoll.c2
-rw-r--r--lib/unicase/u32-casefold.c2
-rw-r--r--lib/unicase/u32-casemap.c2
-rw-r--r--lib/unicase/u32-casexfrm.c2
-rw-r--r--lib/unicase/u32-ct-casefold.c2
-rw-r--r--lib/unicase/u32-ct-tolower.c2
-rw-r--r--lib/unicase/u32-ct-totitle.c2
-rw-r--r--lib/unicase/u32-ct-toupper.c2
-rw-r--r--lib/unicase/u32-is-cased.c2
-rw-r--r--lib/unicase/u32-is-casefolded.c2
-rw-r--r--lib/unicase/u32-is-invariant.c2
-rw-r--r--lib/unicase/u32-is-lowercase.c2
-rw-r--r--lib/unicase/u32-is-titlecase.c2
-rw-r--r--lib/unicase/u32-is-uppercase.c2
-rw-r--r--lib/unicase/u32-prefix-context.c2
-rw-r--r--lib/unicase/u32-suffix-context.c2
-rw-r--r--lib/unicase/u32-tolower.c2
-rw-r--r--lib/unicase/u32-totitle.c2
-rw-r--r--lib/unicase/u32-toupper.c2
-rw-r--r--lib/unicase/u8-casecmp.c2
-rw-r--r--lib/unicase/u8-casecoll.c2
-rw-r--r--lib/unicase/u8-casefold.c5
-rw-r--r--lib/unicase/u8-casemap.c2
-rw-r--r--lib/unicase/u8-casexfrm.c2
-rw-r--r--lib/unicase/u8-ct-casefold.c2
-rw-r--r--lib/unicase/u8-ct-tolower.c2
-rw-r--r--lib/unicase/u8-ct-totitle.c2
-rw-r--r--lib/unicase/u8-ct-toupper.c2
-rw-r--r--lib/unicase/u8-is-cased.c2
-rw-r--r--lib/unicase/u8-is-casefolded.c2
-rw-r--r--lib/unicase/u8-is-invariant.c2
-rw-r--r--lib/unicase/u8-is-lowercase.c2
-rw-r--r--lib/unicase/u8-is-titlecase.c2
-rw-r--r--lib/unicase/u8-is-uppercase.c2
-rw-r--r--lib/unicase/u8-prefix-context.c2
-rw-r--r--lib/unicase/u8-suffix-context.c2
-rw-r--r--lib/unicase/u8-tolower.c5
-rw-r--r--lib/unicase/u8-totitle.c5
-rw-r--r--lib/unicase/u8-toupper.c5
-rw-r--r--lib/unicase/ulc-casecmp.c16
-rw-r--r--lib/unicase/ulc-casecoll.c2
-rw-r--r--lib/unicase/ulc-casexfrm.c16
-rw-r--r--lib/unicase/unicasemap.h2
-rw-r--r--lib/uniconv.in.h2
-rw-r--r--lib/uniconv/u-conv-from-enc.h20
-rw-r--r--lib/uniconv/u-conv-to-enc.h43
-rw-r--r--lib/uniconv/u-strconv-from-enc.h6
-rw-r--r--lib/uniconv/u-strconv-to-enc.h9
-rw-r--r--lib/uniconv/u16-conv-from-enc.c2
-rw-r--r--lib/uniconv/u16-conv-to-enc.c22
-rw-r--r--lib/uniconv/u16-strconv-from-enc.c2
-rw-r--r--lib/uniconv/u16-strconv-from-locale.c2
-rw-r--r--lib/uniconv/u16-strconv-to-enc.c2
-rw-r--r--lib/uniconv/u16-strconv-to-locale.c2
-rw-r--r--lib/uniconv/u32-conv-from-enc.c2
-rw-r--r--lib/uniconv/u32-conv-to-enc.c2
-rw-r--r--lib/uniconv/u32-strconv-from-enc.c2
-rw-r--r--lib/uniconv/u32-strconv-from-locale.c2
-rw-r--r--lib/uniconv/u32-strconv-to-enc.c2
-rw-r--r--lib/uniconv/u32-strconv-to-locale.c2
-rw-r--r--lib/uniconv/u8-conv-from-enc.c30
-rw-r--r--lib/uniconv/u8-conv-to-enc.c5
-rw-r--r--lib/uniconv/u8-strconv-from-enc.c2
-rw-r--r--lib/uniconv/u8-strconv-from-locale.c2
-rw-r--r--lib/uniconv/u8-strconv-to-enc.c13
-rw-r--r--lib/uniconv/u8-strconv-to-locale.c2
-rw-r--r--lib/unictype.in.h2
-rw-r--r--lib/unictype/bidi_byname.c9
-rw-r--r--lib/unictype/bidi_byname.gperf2
-rw-r--r--lib/unictype/bidi_byname.h15
-rw-r--r--lib/unictype/bidi_longname.c2
-rw-r--r--lib/unictype/bidi_name.c2
-rw-r--r--lib/unictype/bidi_of.c2
-rw-r--r--lib/unictype/bidi_test.c2
-rw-r--r--lib/unictype/bitmap.h2
-rw-r--r--lib/unictype/block_test.c2
-rw-r--r--lib/unictype/blocks.c2
-rw-r--r--lib/unictype/categ_C.c2
-rw-r--r--lib/unictype/categ_Cc.c2
-rw-r--r--lib/unictype/categ_Cf.c2
-rw-r--r--lib/unictype/categ_Cn.c2
-rw-r--r--lib/unictype/categ_Co.c2
-rw-r--r--lib/unictype/categ_Cs.c2
-rw-r--r--lib/unictype/categ_L.c2
-rw-r--r--lib/unictype/categ_LC.c2
-rw-r--r--lib/unictype/categ_Ll.c2
-rw-r--r--lib/unictype/categ_Lm.c2
-rw-r--r--lib/unictype/categ_Lo.c2
-rw-r--r--lib/unictype/categ_Lt.c2
-rw-r--r--lib/unictype/categ_Lu.c2
-rw-r--r--lib/unictype/categ_M.c2
-rw-r--r--lib/unictype/categ_Mc.c2
-rw-r--r--lib/unictype/categ_Me.c2
-rw-r--r--lib/unictype/categ_Mn.c2
-rw-r--r--lib/unictype/categ_N.c2
-rw-r--r--lib/unictype/categ_Nd.c2
-rw-r--r--lib/unictype/categ_Nl.c2
-rw-r--r--lib/unictype/categ_No.c2
-rw-r--r--lib/unictype/categ_P.c2
-rw-r--r--lib/unictype/categ_Pc.c2
-rw-r--r--lib/unictype/categ_Pd.c2
-rw-r--r--lib/unictype/categ_Pe.c2
-rw-r--r--lib/unictype/categ_Pf.c2
-rw-r--r--lib/unictype/categ_Pi.c2
-rw-r--r--lib/unictype/categ_Po.c2
-rw-r--r--lib/unictype/categ_Ps.c2
-rw-r--r--lib/unictype/categ_S.c2
-rw-r--r--lib/unictype/categ_Sc.c2
-rw-r--r--lib/unictype/categ_Sk.c2
-rw-r--r--lib/unictype/categ_Sm.c2
-rw-r--r--lib/unictype/categ_So.c2
-rw-r--r--lib/unictype/categ_Z.c2
-rw-r--r--lib/unictype/categ_Zl.c2
-rw-r--r--lib/unictype/categ_Zp.c2
-rw-r--r--lib/unictype/categ_Zs.c2
-rw-r--r--lib/unictype/categ_and.c8
-rw-r--r--lib/unictype/categ_and_not.c8
-rw-r--r--lib/unictype/categ_byname.c10
-rw-r--r--lib/unictype/categ_byname.gperf2
-rw-r--r--lib/unictype/categ_byname.h19
-rw-r--r--lib/unictype/categ_longname.c2
-rw-r--r--lib/unictype/categ_name.c2
-rw-r--r--lib/unictype/categ_none.c2
-rw-r--r--lib/unictype/categ_of.c4
-rw-r--r--lib/unictype/categ_or.c8
-rw-r--r--lib/unictype/categ_test.c2
-rw-r--r--lib/unictype/combiningclass.c2
-rw-r--r--lib/unictype/combiningclass_byname.c10
-rw-r--r--lib/unictype/combiningclass_byname.gperf2
-rw-r--r--lib/unictype/combiningclass_byname.h15
-rw-r--r--lib/unictype/combiningclass_longname.c3
-rw-r--r--lib/unictype/combiningclass_name.c3
-rw-r--r--lib/unictype/ctype_alnum.c2
-rw-r--r--lib/unictype/ctype_alpha.c2
-rw-r--r--lib/unictype/ctype_blank.c2
-rw-r--r--lib/unictype/ctype_cntrl.c2
-rw-r--r--lib/unictype/ctype_digit.c2
-rw-r--r--lib/unictype/ctype_graph.c2
-rw-r--r--lib/unictype/ctype_lower.c2
-rw-r--r--lib/unictype/ctype_print.c2
-rw-r--r--lib/unictype/ctype_punct.c2
-rw-r--r--lib/unictype/ctype_space.c2
-rw-r--r--lib/unictype/ctype_upper.c2
-rw-r--r--lib/unictype/ctype_xdigit.c2
-rw-r--r--lib/unictype/decdigit.c2
-rw-r--r--lib/unictype/digit.c2
-rw-r--r--lib/unictype/identsyntaxmap.h2
-rw-r--r--lib/unictype/incb_byname.c10
-rw-r--r--lib/unictype/incb_byname.gperf2
-rw-r--r--lib/unictype/incb_byname.h11
-rw-r--r--lib/unictype/incb_name.c2
-rw-r--r--lib/unictype/incb_name.h2
-rw-r--r--lib/unictype/incb_of.c2
-rw-r--r--lib/unictype/joininggroup_byname.c10
-rw-r--r--lib/unictype/joininggroup_byname.gperf2
-rw-r--r--lib/unictype/joininggroup_name.c2
-rw-r--r--lib/unictype/joininggroup_name.h2
-rw-r--r--lib/unictype/joininggroup_of.c2
-rw-r--r--lib/unictype/joiningtype_byname.c10
-rw-r--r--lib/unictype/joiningtype_byname.gperf2
-rw-r--r--lib/unictype/joiningtype_byname.h11
-rw-r--r--lib/unictype/joiningtype_longname.c2
-rw-r--r--lib/unictype/joiningtype_name.c2
-rw-r--r--lib/unictype/joiningtype_of.c2
-rw-r--r--lib/unictype/mirror.c2
-rw-r--r--lib/unictype/numeric.c2
-rw-r--r--lib/unictype/pr_alphabetic.c2
-rw-r--r--lib/unictype/pr_ascii_hex_digit.c2
-rw-r--r--lib/unictype/pr_bidi_arabic_digit.c2
-rw-r--r--lib/unictype/pr_bidi_arabic_right_to_left.c2
-rw-r--r--lib/unictype/pr_bidi_block_separator.c2
-rw-r--r--lib/unictype/pr_bidi_boundary_neutral.c2
-rw-r--r--lib/unictype/pr_bidi_common_separator.c2
-rw-r--r--lib/unictype/pr_bidi_control.c2
-rw-r--r--lib/unictype/pr_bidi_embedding_or_override.c2
-rw-r--r--lib/unictype/pr_bidi_eur_num_separator.c2
-rw-r--r--lib/unictype/pr_bidi_eur_num_terminator.c2
-rw-r--r--lib/unictype/pr_bidi_european_digit.c2
-rw-r--r--lib/unictype/pr_bidi_hebrew_right_to_left.c2
-rw-r--r--lib/unictype/pr_bidi_left_to_right.c2
-rw-r--r--lib/unictype/pr_bidi_non_spacing_mark.c2
-rw-r--r--lib/unictype/pr_bidi_other_neutral.c2
-rw-r--r--lib/unictype/pr_bidi_pdf.c2
-rw-r--r--lib/unictype/pr_bidi_segment_separator.c2
-rw-r--r--lib/unictype/pr_bidi_whitespace.c2
-rw-r--r--lib/unictype/pr_byname.c42
-rw-r--r--lib/unictype/pr_byname.gperf2
-rw-r--r--lib/unictype/pr_byname.h27
-rw-r--r--lib/unictype/pr_case_ignorable.c2
-rw-r--r--lib/unictype/pr_cased.c2
-rw-r--r--lib/unictype/pr_changes_when_casefolded.c2
-rw-r--r--lib/unictype/pr_changes_when_casemapped.c2
-rw-r--r--lib/unictype/pr_changes_when_lowercased.c2
-rw-r--r--lib/unictype/pr_changes_when_titlecased.c2
-rw-r--r--lib/unictype/pr_changes_when_uppercased.c2
-rw-r--r--lib/unictype/pr_combining.c2
-rw-r--r--lib/unictype/pr_composite.c2
-rw-r--r--lib/unictype/pr_currency_symbol.c2
-rw-r--r--lib/unictype/pr_dash.c2
-rw-r--r--lib/unictype/pr_decimal_digit.c2
-rw-r--r--lib/unictype/pr_default_ignorable_code_point.c2
-rw-r--r--lib/unictype/pr_deprecated.c2
-rw-r--r--lib/unictype/pr_diacritic.c2
-rw-r--r--lib/unictype/pr_emoji.c2
-rw-r--r--lib/unictype/pr_emoji_component.c2
-rw-r--r--lib/unictype/pr_emoji_modifier.c2
-rw-r--r--lib/unictype/pr_emoji_modifier_base.c2
-rw-r--r--lib/unictype/pr_emoji_presentation.c2
-rw-r--r--lib/unictype/pr_extended_pictographic.c2
-rw-r--r--lib/unictype/pr_extender.c2
-rw-r--r--lib/unictype/pr_format_control.c2
-rw-r--r--lib/unictype/pr_grapheme_base.c2
-rw-r--r--lib/unictype/pr_grapheme_extend.c2
-rw-r--r--lib/unictype/pr_grapheme_link.c2
-rw-r--r--lib/unictype/pr_hex_digit.c2
-rw-r--r--lib/unictype/pr_hyphen.c2
-rw-r--r--lib/unictype/pr_id_compat_math_continue.c2
-rw-r--r--lib/unictype/pr_id_compat_math_start.c2
-rw-r--r--lib/unictype/pr_id_continue.c2
-rw-r--r--lib/unictype/pr_id_start.c2
-rw-r--r--lib/unictype/pr_ideographic.c2
-rw-r--r--lib/unictype/pr_ids_binary_operator.c2
-rw-r--r--lib/unictype/pr_ids_trinary_operator.c2
-rw-r--r--lib/unictype/pr_ids_unary_operator.c2
-rw-r--r--lib/unictype/pr_ignorable_control.c2
-rw-r--r--lib/unictype/pr_iso_control.c2
-rw-r--r--lib/unictype/pr_join_control.c2
-rw-r--r--lib/unictype/pr_left_of_pair.c2
-rw-r--r--lib/unictype/pr_line_separator.c2
-rw-r--r--lib/unictype/pr_logical_order_exception.c2
-rw-r--r--lib/unictype/pr_lowercase.c2
-rw-r--r--lib/unictype/pr_math.c2
-rw-r--r--lib/unictype/pr_modifier_combining_mark.c2
-rw-r--r--lib/unictype/pr_non_break.c2
-rw-r--r--lib/unictype/pr_not_a_character.c2
-rw-r--r--lib/unictype/pr_numeric.c2
-rw-r--r--lib/unictype/pr_other_alphabetic.c2
-rw-r--r--lib/unictype/pr_other_default_ignorable_code_point.c2
-rw-r--r--lib/unictype/pr_other_grapheme_extend.c2
-rw-r--r--lib/unictype/pr_other_id_continue.c2
-rw-r--r--lib/unictype/pr_other_id_start.c2
-rw-r--r--lib/unictype/pr_other_lowercase.c2
-rw-r--r--lib/unictype/pr_other_math.c2
-rw-r--r--lib/unictype/pr_other_uppercase.c2
-rw-r--r--lib/unictype/pr_paired_punctuation.c2
-rw-r--r--lib/unictype/pr_paragraph_separator.c2
-rw-r--r--lib/unictype/pr_pattern_syntax.c2
-rw-r--r--lib/unictype/pr_pattern_white_space.c2
-rw-r--r--lib/unictype/pr_prepended_concatenation_mark.c2
-rw-r--r--lib/unictype/pr_private_use.c2
-rw-r--r--lib/unictype/pr_punctuation.c2
-rw-r--r--lib/unictype/pr_quotation_mark.c2
-rw-r--r--lib/unictype/pr_radical.c2
-rw-r--r--lib/unictype/pr_regional_indicator.c2
-rw-r--r--lib/unictype/pr_sentence_terminal.c2
-rw-r--r--lib/unictype/pr_soft_dotted.c2
-rw-r--r--lib/unictype/pr_space.c2
-rw-r--r--lib/unictype/pr_terminal_punctuation.c2
-rw-r--r--lib/unictype/pr_test.c2
-rw-r--r--lib/unictype/pr_titlecase.c2
-rw-r--r--lib/unictype/pr_unassigned_code_value.c2
-rw-r--r--lib/unictype/pr_unified_ideograph.c2
-rw-r--r--lib/unictype/pr_uppercase.c2
-rw-r--r--lib/unictype/pr_variation_selector.c2
-rw-r--r--lib/unictype/pr_white_space.c2
-rw-r--r--lib/unictype/pr_xid_continue.c2
-rw-r--r--lib/unictype/pr_xid_start.c2
-rw-r--r--lib/unictype/pr_zero_width.c2
-rw-r--r--lib/unictype/scripts.c7
-rw-r--r--lib/unictype/sy_c_ident.c2
-rw-r--r--lib/unictype/sy_c_whitespace.c2
-rw-r--r--lib/unictype/sy_java_ident.c2
-rw-r--r--lib/unictype/sy_java_whitespace.c2
-rw-r--r--lib/unigbrk.in.h2
-rw-r--r--lib/unigbrk/u-grapheme-breaks.h2
-rw-r--r--lib/unigbrk/u-grapheme-next.h2
-rw-r--r--lib/unigbrk/u-grapheme-prev.h18
-rw-r--r--lib/unigbrk/u16-grapheme-breaks.c2
-rw-r--r--lib/unigbrk/u16-grapheme-next.c2
-rw-r--r--lib/unigbrk/u16-grapheme-prev.c2
-rw-r--r--lib/unigbrk/u32-grapheme-breaks.c2
-rw-r--r--lib/unigbrk/u32-grapheme-next.c2
-rw-r--r--lib/unigbrk/u32-grapheme-prev.c2
-rw-r--r--lib/unigbrk/u8-grapheme-breaks.c2
-rw-r--r--lib/unigbrk/u8-grapheme-next.c2
-rw-r--r--lib/unigbrk/u8-grapheme-prev.c2
-rw-r--r--lib/unigbrk/uc-gbrk-prop.c2
-rw-r--r--lib/unigbrk/uc-grapheme-breaks.c2
-rw-r--r--lib/unigbrk/uc-is-grapheme-break.c8
-rw-r--r--lib/unigbrk/ulc-grapheme-breaks.c17
-rw-r--r--lib/unilbrk.in.h2
-rw-r--r--lib/unilbrk/internal.h2
-rw-r--r--lib/unilbrk/lbrktables.h2
-rw-r--r--lib/unilbrk/u16-possible-linebreaks.c2
-rw-r--r--lib/unilbrk/u16-width-linebreaks.c19
-rw-r--r--lib/unilbrk/u32-possible-linebreaks.c2
-rw-r--r--lib/unilbrk/u32-width-linebreaks.c19
-rw-r--r--lib/unilbrk/u8-possible-linebreaks.c8
-rw-r--r--lib/unilbrk/u8-width-linebreaks.c25
-rw-r--r--lib/unilbrk/ulc-common.c2
-rw-r--r--lib/unilbrk/ulc-common.h2
-rw-r--r--lib/unilbrk/ulc-possible-linebreaks.c19
-rw-r--r--lib/unilbrk/ulc-width-linebreaks.c23
-rw-r--r--lib/unimetadata.in.h2
-rw-r--r--lib/uniname.in.h2
-rwxr-xr-xlib/uniname/gen-uninames.lisp2
-rw-r--r--lib/uniname/uniname.c57
-rw-r--r--lib/uninorm.in.h2
-rw-r--r--lib/uninorm/canonical-decomposition.c28
-rw-r--r--lib/uninorm/compat-decomposition.c2
-rw-r--r--lib/uninorm/composition.c6
-rw-r--r--lib/uninorm/decompose-internal.c2
-rw-r--r--lib/uninorm/decompose-internal.h2
-rw-r--r--lib/uninorm/decomposing-form.c2
-rw-r--r--lib/uninorm/decomposition-table.c2
-rw-r--r--lib/uninorm/decomposition-table.h2
-rw-r--r--lib/uninorm/decomposition.c28
-rw-r--r--lib/uninorm/nfc.c2
-rw-r--r--lib/uninorm/nfd.c2
-rw-r--r--lib/uninorm/nfkc.c2
-rw-r--r--lib/uninorm/nfkd.c2
-rw-r--r--lib/uninorm/normalize-internal.h2
-rw-r--r--lib/uninorm/u-normalize-internal.h117
-rw-r--r--lib/uninorm/u-normcmp.h22
-rw-r--r--lib/uninorm/u-normcoll.h24
-rw-r--r--lib/uninorm/u-normxfrm.h22
-rw-r--r--lib/uninorm/u16-normalize.c2
-rw-r--r--lib/uninorm/u16-normcmp.c2
-rw-r--r--lib/uninorm/u16-normcoll.c2
-rw-r--r--lib/uninorm/u16-normxfrm.c2
-rw-r--r--lib/uninorm/u32-normalize.c2
-rw-r--r--lib/uninorm/u32-normcmp.c2
-rw-r--r--lib/uninorm/u32-normcoll.c2
-rw-r--r--lib/uninorm/u32-normxfrm.c2
-rw-r--r--lib/uninorm/u8-normalize.c2
-rw-r--r--lib/uninorm/u8-normcmp.c2
-rw-r--r--lib/uninorm/u8-normcoll.c2
-rw-r--r--lib/uninorm/u8-normxfrm.c2
-rw-r--r--lib/uninorm/uninorm-filter.c102
-rw-r--r--lib/unistd.c2
-rw-r--r--lib/unistd.in.h59
-rw-r--r--lib/unistdio.in.h2
-rw-r--r--lib/unistdio/u-asnprintf.h6
-rw-r--r--lib/unistdio/u-asprintf.h6
-rw-r--r--lib/unistdio/u-printf-args.c2
-rw-r--r--lib/unistdio/u-printf-args.h2
-rw-r--r--lib/unistdio/u-printf-parse.h2
-rw-r--r--lib/unistdio/u-snprintf.h6
-rw-r--r--lib/unistdio/u-sprintf.h6
-rw-r--r--lib/unistdio/u-vasprintf.h2
-rw-r--r--lib/unistdio/u-vsnprintf.h5
-rw-r--r--lib/unistdio/u-vsprintf.h8
-rw-r--r--lib/unistdio/u16-asnprintf.c2
-rw-r--r--lib/unistdio/u16-asprintf.c2
-rw-r--r--lib/unistdio/u16-printf-parse.c2
-rw-r--r--lib/unistdio/u16-snprintf.c2
-rw-r--r--lib/unistdio/u16-sprintf.c2
-rw-r--r--lib/unistdio/u16-u16-asnprintf.c2
-rw-r--r--lib/unistdio/u16-u16-asprintf.c2
-rw-r--r--lib/unistdio/u16-u16-snprintf.c2
-rw-r--r--lib/unistdio/u16-u16-sprintf.c2
-rw-r--r--lib/unistdio/u16-u16-vasnprintf.c2
-rw-r--r--lib/unistdio/u16-u16-vasprintf.c2
-rw-r--r--lib/unistdio/u16-u16-vsnprintf.c2
-rw-r--r--lib/unistdio/u16-u16-vsprintf.c2
-rw-r--r--lib/unistdio/u16-vasnprintf.c2
-rw-r--r--lib/unistdio/u16-vasprintf.c2
-rw-r--r--lib/unistdio/u16-vsnprintf.c2
-rw-r--r--lib/unistdio/u16-vsprintf.c2
-rw-r--r--lib/unistdio/u32-asnprintf.c2
-rw-r--r--lib/unistdio/u32-asprintf.c2
-rw-r--r--lib/unistdio/u32-printf-parse.c2
-rw-r--r--lib/unistdio/u32-snprintf.c2
-rw-r--r--lib/unistdio/u32-sprintf.c2
-rw-r--r--lib/unistdio/u32-u32-asnprintf.c2
-rw-r--r--lib/unistdio/u32-u32-asprintf.c2
-rw-r--r--lib/unistdio/u32-u32-snprintf.c2
-rw-r--r--lib/unistdio/u32-u32-sprintf.c2
-rw-r--r--lib/unistdio/u32-u32-vasnprintf.c2
-rw-r--r--lib/unistdio/u32-u32-vasprintf.c2
-rw-r--r--lib/unistdio/u32-u32-vsnprintf.c2
-rw-r--r--lib/unistdio/u32-u32-vsprintf.c2
-rw-r--r--lib/unistdio/u32-vasnprintf.c2
-rw-r--r--lib/unistdio/u32-vasprintf.c2
-rw-r--r--lib/unistdio/u32-vsnprintf.c2
-rw-r--r--lib/unistdio/u32-vsprintf.c2
-rw-r--r--lib/unistdio/u8-asnprintf.c2
-rw-r--r--lib/unistdio/u8-asprintf.c2
-rw-r--r--lib/unistdio/u8-printf-parse.c2
-rw-r--r--lib/unistdio/u8-snprintf.c2
-rw-r--r--lib/unistdio/u8-sprintf.c2
-rw-r--r--lib/unistdio/u8-u8-asnprintf.c2
-rw-r--r--lib/unistdio/u8-u8-asprintf.c2
-rw-r--r--lib/unistdio/u8-u8-snprintf.c2
-rw-r--r--lib/unistdio/u8-u8-sprintf.c2
-rw-r--r--lib/unistdio/u8-u8-vasnprintf.c2
-rw-r--r--lib/unistdio/u8-u8-vasprintf.c2
-rw-r--r--lib/unistdio/u8-u8-vsnprintf.c2
-rw-r--r--lib/unistdio/u8-u8-vsprintf.c2
-rw-r--r--lib/unistdio/u8-vasnprintf.c2
-rw-r--r--lib/unistdio/u8-vasprintf.c2
-rw-r--r--lib/unistdio/u8-vsnprintf.c2
-rw-r--r--lib/unistdio/u8-vsprintf.c2
-rw-r--r--lib/unistdio/ulc-asnprintf.c2
-rw-r--r--lib/unistdio/ulc-asprintf.c2
-rw-r--r--lib/unistdio/ulc-fprintf.c13
-rw-r--r--lib/unistdio/ulc-printf-parse.c2
-rw-r--r--lib/unistdio/ulc-snprintf.c2
-rw-r--r--lib/unistdio/ulc-sprintf.c2
-rw-r--r--lib/unistdio/ulc-vasnprintf.c2
-rw-r--r--lib/unistdio/ulc-vasprintf.c2
-rw-r--r--lib/unistdio/ulc-vfprintf.c9
-rw-r--r--lib/unistdio/ulc-vsnprintf.c2
-rw-r--r--lib/unistdio/ulc-vsprintf.c2
-rw-r--r--lib/unistr.in.h6
-rw-r--r--lib/unistr/u-cmp2.h2
-rw-r--r--lib/unistr/u-cpy-alloc.h2
-rw-r--r--lib/unistr/u-cpy.h2
-rw-r--r--lib/unistr/u-endswith.h2
-rw-r--r--lib/unistr/u-move.h2
-rw-r--r--lib/unistr/u-pcpy.h2
-rw-r--r--lib/unistr/u-set.h2
-rw-r--r--lib/unistr/u-startswith.h2
-rw-r--r--lib/unistr/u-stpcpy.h2
-rw-r--r--lib/unistr/u-stpncpy.h2
-rw-r--r--lib/unistr/u-strcat.h2
-rw-r--r--lib/unistr/u-strcoll.h2
-rw-r--r--lib/unistr/u-strcpy.h2
-rw-r--r--lib/unistr/u-strcspn.h2
-rw-r--r--lib/unistr/u-strdup.h2
-rw-r--r--lib/unistr/u-strlen.h2
-rw-r--r--lib/unistr/u-strncat.h2
-rw-r--r--lib/unistr/u-strncpy.h2
-rw-r--r--lib/unistr/u-strnlen.h2
-rw-r--r--lib/unistr/u-strpbrk.h2
-rw-r--r--lib/unistr/u-strspn.h2
-rw-r--r--lib/unistr/u-strtok.h2
-rw-r--r--lib/unistr/u16-check.c2
-rw-r--r--lib/unistr/u16-chr.c38
-rw-r--r--lib/unistr/u16-cmp.c36
-rw-r--r--lib/unistr/u16-cmp2.c2
-rw-r--r--lib/unistr/u16-cpy-alloc.c2
-rw-r--r--lib/unistr/u16-cpy.c2
-rw-r--r--lib/unistr/u16-endswith.c2
-rw-r--r--lib/unistr/u16-mblen.c2
-rw-r--r--lib/unistr/u16-mbsnlen.c6
-rw-r--r--lib/unistr/u16-mbtouc-aux.c2
-rw-r--r--lib/unistr/u16-mbtouc-unsafe-aux.c2
-rw-r--r--lib/unistr/u16-mbtouc-unsafe.c2
-rw-r--r--lib/unistr/u16-mbtouc.c2
-rw-r--r--lib/unistr/u16-mbtoucr.c2
-rw-r--r--lib/unistr/u16-move.c2
-rw-r--r--lib/unistr/u16-next.c6
-rw-r--r--lib/unistr/u16-pcpy.c2
-rw-r--r--lib/unistr/u16-prev.c2
-rw-r--r--lib/unistr/u16-set.c2
-rw-r--r--lib/unistr/u16-startswith.c2
-rw-r--r--lib/unistr/u16-stpcpy.c2
-rw-r--r--lib/unistr/u16-stpncpy.c2
-rw-r--r--lib/unistr/u16-strcat.c2
-rw-r--r--lib/unistr/u16-strchr.c40
-rw-r--r--lib/unistr/u16-strcmp.c31
-rw-r--r--lib/unistr/u16-strcoll.c2
-rw-r--r--lib/unistr/u16-strcpy.c2
-rw-r--r--lib/unistr/u16-strcspn.c2
-rw-r--r--lib/unistr/u16-strdup.c2
-rw-r--r--lib/unistr/u16-strlen.c2
-rw-r--r--lib/unistr/u16-strmblen.c2
-rw-r--r--lib/unistr/u16-strmbtouc.c2
-rw-r--r--lib/unistr/u16-strncat.c2
-rw-r--r--lib/unistr/u16-strncmp.c36
-rw-r--r--lib/unistr/u16-strncpy.c2
-rw-r--r--lib/unistr/u16-strnlen.c2
-rw-r--r--lib/unistr/u16-strpbrk.c2
-rw-r--r--lib/unistr/u16-strrchr.c43
-rw-r--r--lib/unistr/u16-strspn.c2
-rw-r--r--lib/unistr/u16-strstr.c2
-rw-r--r--lib/unistr/u16-strtok.c2
-rw-r--r--lib/unistr/u16-to-u32.c22
-rw-r--r--lib/unistr/u16-to-u8.c22
-rw-r--r--lib/unistr/u16-uctomb-aux.c2
-rw-r--r--lib/unistr/u16-uctomb.c2
-rw-r--r--lib/unistr/u32-check.c2
-rw-r--r--lib/unistr/u32-chr.c2
-rw-r--r--lib/unistr/u32-cmp.c14
-rw-r--r--lib/unistr/u32-cmp2.c2
-rw-r--r--lib/unistr/u32-cpy-alloc.c2
-rw-r--r--lib/unistr/u32-cpy.c2
-rw-r--r--lib/unistr/u32-endswith.c2
-rw-r--r--lib/unistr/u32-mblen.c2
-rw-r--r--lib/unistr/u32-mbsnlen.c2
-rw-r--r--lib/unistr/u32-mbtouc-unsafe.c2
-rw-r--r--lib/unistr/u32-mbtouc.c2
-rw-r--r--lib/unistr/u32-mbtoucr.c2
-rw-r--r--lib/unistr/u32-move.c2
-rw-r--r--lib/unistr/u32-next.c6
-rw-r--r--lib/unistr/u32-pcpy.c2
-rw-r--r--lib/unistr/u32-prev.c2
-rw-r--r--lib/unistr/u32-set.c2
-rw-r--r--lib/unistr/u32-startswith.c2
-rw-r--r--lib/unistr/u32-stpcpy.c2
-rw-r--r--lib/unistr/u32-stpncpy.c2
-rw-r--r--lib/unistr/u32-strcat.c2
-rw-r--r--lib/unistr/u32-strchr.c2
-rw-r--r--lib/unistr/u32-strcmp.c13
-rw-r--r--lib/unistr/u32-strcoll.c2
-rw-r--r--lib/unistr/u32-strcpy.c2
-rw-r--r--lib/unistr/u32-strcspn.c2
-rw-r--r--lib/unistr/u32-strdup.c2
-rw-r--r--lib/unistr/u32-strlen.c2
-rw-r--r--lib/unistr/u32-strmblen.c2
-rw-r--r--lib/unistr/u32-strmbtouc.c2
-rw-r--r--lib/unistr/u32-strncat.c2
-rw-r--r--lib/unistr/u32-strncmp.c14
-rw-r--r--lib/unistr/u32-strncpy.c2
-rw-r--r--lib/unistr/u32-strnlen.c2
-rw-r--r--lib/unistr/u32-strpbrk.c2
-rw-r--r--lib/unistr/u32-strrchr.c2
-rw-r--r--lib/unistr/u32-strspn.c2
-rw-r--r--lib/unistr/u32-strstr.c2
-rw-r--r--lib/unistr/u32-strtok.c2
-rw-r--r--lib/unistr/u32-to-u16.c23
-rw-r--r--lib/unistr/u32-to-u8.c23
-rw-r--r--lib/unistr/u32-uctomb.c2
-rw-r--r--lib/unistr/u8-check.c2
-rw-r--r--lib/unistr/u8-chr.c5
-rw-r--r--lib/unistr/u8-cmp.c2
-rw-r--r--lib/unistr/u8-cmp2.c2
-rw-r--r--lib/unistr/u8-cpy-alloc.c2
-rw-r--r--lib/unistr/u8-cpy.c2
-rw-r--r--lib/unistr/u8-endswith.c2
-rw-r--r--lib/unistr/u8-mblen.c2
-rw-r--r--lib/unistr/u8-mbsnlen.c6
-rw-r--r--lib/unistr/u8-mbtouc-aux.c2
-rw-r--r--lib/unistr/u8-mbtouc-unsafe-aux.c2
-rw-r--r--lib/unistr/u8-mbtouc-unsafe.c2
-rw-r--r--lib/unistr/u8-mbtouc.c2
-rw-r--r--lib/unistr/u8-mbtoucr.c2
-rw-r--r--lib/unistr/u8-move.c2
-rw-r--r--lib/unistr/u8-next.c6
-rw-r--r--lib/unistr/u8-pcpy.c2
-rw-r--r--lib/unistr/u8-prev.c2
-rw-r--r--lib/unistr/u8-set.c2
-rw-r--r--lib/unistr/u8-startswith.c2
-rw-r--r--lib/unistr/u8-stpcpy.c2
-rw-r--r--lib/unistr/u8-stpncpy.c2
-rw-r--r--lib/unistr/u8-strcat.c2
-rw-r--r--lib/unistr/u8-strchr.c334
-rw-r--r--lib/unistr/u8-strcmp.c2
-rw-r--r--lib/unistr/u8-strcoll.c2
-rw-r--r--lib/unistr/u8-strcpy.c2
-rw-r--r--lib/unistr/u8-strcspn.c2
-rw-r--r--lib/unistr/u8-strdup.c2
-rw-r--r--lib/unistr/u8-strlen.c2
-rw-r--r--lib/unistr/u8-strmblen.c2
-rw-r--r--lib/unistr/u8-strmbtouc.c2
-rw-r--r--lib/unistr/u8-strncat.c2
-rw-r--r--lib/unistr/u8-strncmp.c2
-rw-r--r--lib/unistr/u8-strncpy.c2
-rw-r--r--lib/unistr/u8-strnlen.c2
-rw-r--r--lib/unistr/u8-strpbrk.c2
-rw-r--r--lib/unistr/u8-strrchr.c109
-rw-r--r--lib/unistr/u8-strspn.c2
-rw-r--r--lib/unistr/u8-strstr.c2
-rw-r--r--lib/unistr/u8-strtok.c2
-rw-r--r--lib/unistr/u8-to-u16.c22
-rw-r--r--lib/unistr/u8-to-u32.c22
-rw-r--r--lib/unistr/u8-uctomb-aux.c2
-rw-r--r--lib/unistr/u8-uctomb.c2
-rw-r--r--lib/unistring/cdefs.h13
-rw-r--r--lib/unitypes.in.h2
-rw-r--r--lib/uniwbrk.in.h2
-rw-r--r--lib/uniwbrk/u-wordbreaks.h2
-rw-r--r--lib/uniwbrk/u16-wordbreaks.c2
-rw-r--r--lib/uniwbrk/u32-wordbreaks.c2
-rw-r--r--lib/uniwbrk/u8-wordbreaks.c8
-rw-r--r--lib/uniwbrk/ulc-wordbreaks.c19
-rw-r--r--lib/uniwbrk/wbrktable.c2
-rw-r--r--lib/uniwbrk/wbrktable.h2
-rw-r--r--lib/uniwbrk/wordbreak-property.c2
-rw-r--r--lib/uniwidth.in.h2
-rw-r--r--lib/uniwidth/cjk.h4
-rw-r--r--lib/uniwidth/u16-strwidth.c2
-rw-r--r--lib/uniwidth/u16-width.c6
-rw-r--r--lib/uniwidth/u32-strwidth.c2
-rw-r--r--lib/uniwidth/u32-width.c5
-rw-r--r--lib/uniwidth/u8-strwidth.c2
-rw-r--r--lib/uniwidth/u8-width.c6
-rw-r--r--lib/uniwidth/width.c2
-rw-r--r--lib/vasnprintf.c656
-rw-r--r--lib/verify.h2
-rw-r--r--lib/warn-on-use.h2
-rw-r--r--lib/wchar.in.h45
-rw-r--r--lib/wcs-two-way.h170
-rw-r--r--lib/wcsstr-impl.h32
-rw-r--r--lib/wctype-h.c2
-rw-r--r--lib/wctype.in.h6
-rw-r--r--lib/wcwidth.c4
-rw-r--r--lib/windows-initguard.h2
-rw-r--r--lib/windows-mutex.c2
-rw-r--r--lib/windows-mutex.h2
-rw-r--r--lib/windows-once.c2
-rw-r--r--lib/windows-once.h2
-rw-r--r--lib/windows-recmutex.c2
-rw-r--r--lib/windows-recmutex.h2
-rw-r--r--lib/windows-rwlock.c24
-rw-r--r--lib/windows-rwlock.h2
-rw-r--r--lib/xalloc-oversized.h2
-rw-r--r--lib/xsize.c5
-rw-r--r--lib/xsize.h2
827 files changed, 4743 insertions, 5220 deletions
diff --git a/lib/Makefile.am b/lib/Makefile.am
index f1445800..c3ff1564 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -73,6 +73,9 @@ unistring/stdint.h : $(STDINT_H) stdint.mini.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
echo '#include <stddef.h>'; \
+ echo '#if __cplusplus >= 201103'; \
+ echo '#include <cstdint>'; \
+ echo '#else'; \
echo '#if __GLIBC__ >= 2'; \
echo '#include <stdint.h>'; \
echo '#else'; \
@@ -103,6 +106,7 @@ unistring/stdint.h : $(STDINT_H) stdint.mini.h
-e 's/@''HAVE_SYS_BITYPES_H''@/0/g' \
< $(srcdir)/stdint.mini.h; \
echo '#endif'; \
+ echo '#endif'; \
} > $@-t
mv $@-t $@
BUILT_SOURCES += unistring/stdint.h
diff --git a/lib/Makefile.gnulib b/lib/Makefile.gnulib
index a9fe4815..3cd77269 100644
--- a/lib/Makefile.gnulib
+++ b/lib/Makefile.gnulib
@@ -1,6 +1,6 @@
## DO NOT EDIT! GENERATED AUTOMATICALLY!
## Process this file with automake to produce Makefile.in.
-# Copyright (C) 2002-2025 Free Software Foundation, Inc.
+# Copyright (C) 2002-2026 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
@@ -687,10 +687,12 @@ fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
-e 's/@''GNULIB_NONBLOCKING''@/$(GL_GNULIB_NONBLOCKING)/g' \
-e 's/@''GNULIB_OPEN''@/$(GL_GNULIB_OPEN)/g' \
-e 's/@''GNULIB_OPENAT''@/$(GL_GNULIB_OPENAT)/g' \
+ -e 's/@''GNULIB_OPENAT2''@/$(GL_GNULIB_OPENAT2)/g' \
-e 's/@''GNULIB_MDA_CREAT''@/$(GL_GNULIB_MDA_CREAT)/g' \
-e 's/@''GNULIB_MDA_OPEN''@/$(GL_GNULIB_MDA_OPEN)/g' \
-e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \
-e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \
+ -e 's|@''HAVE_OPENAT2''@|$(HAVE_OPENAT2)|g' \
-e 's|@''REPLACE_CREAT''@|$(REPLACE_CREAT)|g' \
-e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \
-e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \
@@ -1265,8 +1267,11 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
-e 's/@''GNULIB_ILOGBF''@/$(GL_GNULIB_ILOGBF)/g' \
-e 's/@''GNULIB_ILOGBL''@/$(GL_GNULIB_ILOGBL)/g' \
-e 's/@''GNULIB_ISFINITE''@/$(GL_GNULIB_ISFINITE)/g' \
+ -e 's/@''GNULIB_ISFINITE_NO_CXX''@/$(GL_GNULIB_ISFINITE_NO_CXX)/g' \
-e 's/@''GNULIB_ISINF''@/$(GL_GNULIB_ISINF)/g' \
+ -e 's/@''GNULIB_ISINF_NO_CXX''@/$(GL_GNULIB_ISINF_NO_CXX)/g' \
-e 's/@''GNULIB_ISNAN''@/$(GL_GNULIB_ISNAN)/g' \
+ -e 's/@''GNULIB_ISNAN_NO_CXX''@/$(GL_GNULIB_ISNAN_NO_CXX)/g' \
-e 's/@''GNULIB_ISNANF''@/$(GL_GNULIB_ISNANF)/g' \
-e 's/@''GNULIB_ISNAND''@/$(GL_GNULIB_ISNAND)/g' \
-e 's/@''GNULIB_ISNANL''@/$(GL_GNULIB_ISNANL)/g' \
@@ -1311,6 +1316,7 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
-e 's/@''GNULIB_SETPAYLOADSIGF''@/$(GL_GNULIB_SETPAYLOADSIGF)/g' \
-e 's/@''GNULIB_SETPAYLOADSIGL''@/$(GL_GNULIB_SETPAYLOADSIGL)/g' \
-e 's/@''GNULIB_SIGNBIT''@/$(GL_GNULIB_SIGNBIT)/g' \
+ -e 's/@''GNULIB_SIGNBIT_NO_CXX''@/$(GL_GNULIB_SIGNBIT_NO_CXX)/g' \
-e 's/@''GNULIB_SINF''@/$(GL_GNULIB_SINF)/g' \
-e 's/@''GNULIB_SINL''@/$(GL_GNULIB_SINL)/g' \
-e 's/@''GNULIB_SINHF''@/$(GL_GNULIB_SINHF)/g' \
@@ -1530,6 +1536,7 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
-e 's|@''REPLACE_SIGNBIT_USING_BUILTINS''@|$(REPLACE_SIGNBIT_USING_BUILTINS)|g' \
-e 's|@''REPLACE_SINF''@|$(REPLACE_SINF)|g' \
-e 's|@''REPLACE_SINHF''@|$(REPLACE_SINHF)|g' \
+ -e 's|@''REPLACE_SINL''@|$(REPLACE_SINL)|g' \
-e 's|@''REPLACE_SQRTF''@|$(REPLACE_SQRTF)|g' \
-e 's|@''REPLACE_SQRTL''@|$(REPLACE_SQRTL)|g' \
-e 's|@''REPLACE_TANF''@|$(REPLACE_TANF)|g' \
@@ -1886,7 +1893,7 @@ EXTRA_DIST += setlocale_null.h
## end gnulib module setlocale-null-unlocked
-## begin gnulib module signbit
+## begin gnulib module signbit-no-c++
if GL_COND_OBJ_SIGNBIT3
libunistring_la_SOURCES += signbitf.c signbitd.c signbitl.c
@@ -1894,7 +1901,7 @@ endif
EXTRA_DIST += float+.h
-## end gnulib module signbit
+## end gnulib module signbit-no-c++
## begin gnulib module size_max
@@ -2170,6 +2177,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
-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_SYS_PROCESS_H''@|$(HAVE_SYS_PROCESS_H)|g' \
-e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \
-e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \
< $@-t1 > $@-t2
@@ -2230,12 +2238,12 @@ EXTRA_DIST += stdlib.in.h
## end gnulib module stdlib-h
-## begin gnulib module streq
+## begin gnulib module streq-opt
-EXTRA_DIST += streq.h
+EXTRA_DIST += streq-opt.h
-## end gnulib module streq
+## end gnulib module streq-opt
## begin gnulib module striconveh
@@ -2296,8 +2304,10 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
-e 's/@''GNULIB_STRDUP''@/$(GL_GNULIB_STRDUP)/g' \
-e 's/@''GNULIB_STRINGEQ''@/$(GL_GNULIB_STRINGEQ)/g' \
-e 's/@''GNULIB_STRNCAT''@/$(GL_GNULIB_STRNCAT)/g' \
+ -e 's/@''GNULIB_STRNCPY''@/$(GL_GNULIB_STRNCPY)/g' \
-e 's/@''GNULIB_STRNDUP''@/$(GL_GNULIB_STRNDUP)/g' \
-e 's/@''GNULIB_STRNLEN''@/$(GL_GNULIB_STRNLEN)/g' \
+ -e 's/@''GNULIB_STRNUL''@/$(GL_GNULIB_STRNUL)/g' \
-e 's/@''GNULIB_STRPBRK''@/$(GL_GNULIB_STRPBRK)/g' \
-e 's/@''GNULIB_STRSEP''@/$(GL_GNULIB_STRSEP)/g' \
-e 's/@''GNULIB_STRSTR''@/$(GL_GNULIB_STRSTR)/g' \
@@ -2357,6 +2367,7 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
-e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \
-e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
-e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \
+ -e 's|@''REPLACE_STRNCPY''@|$(REPLACE_STRNCPY)|g' \
-e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \
-e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \
-e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
@@ -2395,6 +2406,14 @@ endif
## end gnulib module strncat
+## begin gnulib module strncpy
+
+if GL_COND_OBJ_STRNCPY
+libunistring_la_SOURCES += strncpy.c
+endif
+
+## end gnulib module strncpy
+
## begin gnulib module strstr
diff --git a/lib/Makefile.in b/lib/Makefile.in
index a4a32d9d..4802478c 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -14,7 +14,7 @@
@SET_MAKE@
-# Copyright (C) 2002-2025 Free Software Foundation, Inc.
+# Copyright (C) 2002-2026 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
@@ -519,297 +519,298 @@ host_triplet = @host@
@GL_COND_OBJ_SETLOCALE_LOCK_TRUE@am__append_22 = setlocale-lock.c
@GL_COND_OBJ_SIGNBIT3_TRUE@am__append_23 = signbitf.c signbitd.c signbitl.c
@GL_COND_OBJ_STRNCAT_TRUE@am__append_24 = strncat.c
-@LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT_TRUE@am__append_25 = unicase/empty-prefix-context.c
-@LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT_TRUE@am__append_26 = unicase/empty-suffix-context.c
-@LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE_TRUE@am__append_27 = unicase/locale-language.c
-@LIBUNISTRING_COMPILE_UNICASE_TOLOWER_TRUE@am__append_28 = unicase/tolower.c
-@LIBUNISTRING_COMPILE_UNICASE_TOTITLE_TRUE@am__append_29 = unicase/totitle.c
-@LIBUNISTRING_COMPILE_UNICASE_TOUPPER_TRUE@am__append_30 = unicase/toupper.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP_TRUE@am__append_31 = unicase/u16-casecmp.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL_TRUE@am__append_32 = unicase/u16-casecoll.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD_TRUE@am__append_33 = unicase/u16-casefold.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM_TRUE@am__append_34 = unicase/u16-casexfrm.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD_TRUE@am__append_35 = unicase/u16-ct-casefold.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER_TRUE@am__append_36 = unicase/u16-ct-tolower.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE_TRUE@am__append_37 = unicase/u16-ct-totitle.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER_TRUE@am__append_38 = unicase/u16-ct-toupper.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED_TRUE@am__append_39 = unicase/u16-is-cased.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED_TRUE@am__append_40 = unicase/u16-is-casefolded.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE_TRUE@am__append_41 = unicase/u16-is-lowercase.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE_TRUE@am__append_42 = unicase/u16-is-titlecase.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE_TRUE@am__append_43 = unicase/u16-is-uppercase.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_PREFIX_CONTEXT_TRUE@am__append_44 = unicase/u16-prefix-context.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_SUFFIX_CONTEXT_TRUE@am__append_45 = unicase/u16-suffix-context.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER_TRUE@am__append_46 = unicase/u16-tolower.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE_TRUE@am__append_47 = unicase/u16-totitle.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER_TRUE@am__append_48 = unicase/u16-toupper.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP_TRUE@am__append_49 = unicase/u32-casecmp.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL_TRUE@am__append_50 = unicase/u32-casecoll.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD_TRUE@am__append_51 = unicase/u32-casefold.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM_TRUE@am__append_52 = unicase/u32-casexfrm.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD_TRUE@am__append_53 = unicase/u32-ct-casefold.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER_TRUE@am__append_54 = unicase/u32-ct-tolower.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE_TRUE@am__append_55 = unicase/u32-ct-totitle.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER_TRUE@am__append_56 = unicase/u32-ct-toupper.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED_TRUE@am__append_57 = unicase/u32-is-cased.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED_TRUE@am__append_58 = unicase/u32-is-casefolded.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE_TRUE@am__append_59 = unicase/u32-is-lowercase.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE_TRUE@am__append_60 = unicase/u32-is-titlecase.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE_TRUE@am__append_61 = unicase/u32-is-uppercase.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_PREFIX_CONTEXT_TRUE@am__append_62 = unicase/u32-prefix-context.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_SUFFIX_CONTEXT_TRUE@am__append_63 = unicase/u32-suffix-context.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER_TRUE@am__append_64 = unicase/u32-tolower.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE_TRUE@am__append_65 = unicase/u32-totitle.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER_TRUE@am__append_66 = unicase/u32-toupper.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP_TRUE@am__append_67 = unicase/u8-casecmp.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL_TRUE@am__append_68 = unicase/u8-casecoll.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD_TRUE@am__append_69 = unicase/u8-casefold.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM_TRUE@am__append_70 = unicase/u8-casexfrm.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD_TRUE@am__append_71 = unicase/u8-ct-casefold.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER_TRUE@am__append_72 = unicase/u8-ct-tolower.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE_TRUE@am__append_73 = unicase/u8-ct-totitle.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER_TRUE@am__append_74 = unicase/u8-ct-toupper.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED_TRUE@am__append_75 = unicase/u8-is-cased.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED_TRUE@am__append_76 = unicase/u8-is-casefolded.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE_TRUE@am__append_77 = unicase/u8-is-lowercase.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE_TRUE@am__append_78 = unicase/u8-is-titlecase.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE_TRUE@am__append_79 = unicase/u8-is-uppercase.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_PREFIX_CONTEXT_TRUE@am__append_80 = unicase/u8-prefix-context.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_SUFFIX_CONTEXT_TRUE@am__append_81 = unicase/u8-suffix-context.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER_TRUE@am__append_82 = unicase/u8-tolower.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE_TRUE@am__append_83 = unicase/u8-totitle.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER_TRUE@am__append_84 = unicase/u8-toupper.c
-@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP_TRUE@am__append_85 = unicase/ulc-casecmp.c
-@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL_TRUE@am__append_86 = unicase/ulc-casecoll.c
-@LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM_TRUE@am__append_87 = unicase/ulc-casexfrm.c
-@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC_TRUE@am__append_88 = uniconv/u16-conv-from-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC_TRUE@am__append_89 = uniconv/u16-conv-to-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC_TRUE@am__append_90 = uniconv/u16-strconv-from-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE_TRUE@am__append_91 = uniconv/u16-strconv-from-locale.c
-@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC_TRUE@am__append_92 = uniconv/u16-strconv-to-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE_TRUE@am__append_93 = uniconv/u16-strconv-to-locale.c
-@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC_TRUE@am__append_94 = uniconv/u32-conv-from-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC_TRUE@am__append_95 = uniconv/u32-conv-to-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC_TRUE@am__append_96 = uniconv/u32-strconv-from-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE_TRUE@am__append_97 = uniconv/u32-strconv-from-locale.c
-@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC_TRUE@am__append_98 = uniconv/u32-strconv-to-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE_TRUE@am__append_99 = uniconv/u32-strconv-to-locale.c
-@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE@am__append_100 = uniconv/u8-conv-from-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC_TRUE@am__append_101 = uniconv/u8-conv-to-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC_TRUE@am__append_102 = uniconv/u8-strconv-from-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE_TRUE@am__append_103 = uniconv/u8-strconv-from-locale.c
-@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC_TRUE@am__append_104 = uniconv/u8-strconv-to-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE_TRUE@am__append_105 = uniconv/u8-strconv-to-locale.c
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME_TRUE@am__append_106 = unictype/bidi_byname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME_TRUE@am__append_107 = unictype/bidi_longname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME_TRUE@am__append_108 = unictype/bidi_name.c
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF_TRUE@am__append_109 = unictype/bidi_of.c
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST_TRUE@am__append_110 = unictype/bidi_test.c
-@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST_TRUE@am__append_111 = unictype/blocks.c
-@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST_TRUE@am__append_112 = unictype/block_test.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C_TRUE@am__append_113 = unictype/categ_C.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC_TRUE@am__append_114 = unictype/categ_Cc.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF_TRUE@am__append_115 = unictype/categ_Cf.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN_TRUE@am__append_116 = unictype/categ_Cn.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO_TRUE@am__append_117 = unictype/categ_Co.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS_TRUE@am__append_118 = unictype/categ_Cs.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L_TRUE@am__append_119 = unictype/categ_L.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC_TRUE@am__append_120 = unictype/categ_LC.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL_TRUE@am__append_121 = unictype/categ_Ll.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM_TRUE@am__append_122 = unictype/categ_Lm.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO_TRUE@am__append_123 = unictype/categ_Lo.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT_TRUE@am__append_124 = unictype/categ_Lt.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU_TRUE@am__append_125 = unictype/categ_Lu.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M_TRUE@am__append_126 = unictype/categ_M.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC_TRUE@am__append_127 = unictype/categ_Mc.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME_TRUE@am__append_128 = unictype/categ_Me.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN_TRUE@am__append_129 = unictype/categ_Mn.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N_TRUE@am__append_130 = unictype/categ_N.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND_TRUE@am__append_131 = unictype/categ_Nd.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL_TRUE@am__append_132 = unictype/categ_Nl.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO_TRUE@am__append_133 = unictype/categ_No.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P_TRUE@am__append_134 = unictype/categ_P.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC_TRUE@am__append_135 = unictype/categ_Pc.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD_TRUE@am__append_136 = unictype/categ_Pd.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE_TRUE@am__append_137 = unictype/categ_Pe.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF_TRUE@am__append_138 = unictype/categ_Pf.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI_TRUE@am__append_139 = unictype/categ_Pi.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO_TRUE@am__append_140 = unictype/categ_Po.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS_TRUE@am__append_141 = unictype/categ_Ps.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S_TRUE@am__append_142 = unictype/categ_S.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC_TRUE@am__append_143 = unictype/categ_Sc.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK_TRUE@am__append_144 = unictype/categ_Sk.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM_TRUE@am__append_145 = unictype/categ_Sm.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO_TRUE@am__append_146 = unictype/categ_So.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z_TRUE@am__append_147 = unictype/categ_Z.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL_TRUE@am__append_148 = unictype/categ_Zl.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP_TRUE@am__append_149 = unictype/categ_Zp.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS_TRUE@am__append_150 = unictype/categ_Zs.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_TRUE@am__append_151 = unictype/categ_and.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT_TRUE@am__append_152 = unictype/categ_and_not.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME_TRUE@am__append_153 = unictype/categ_byname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME_TRUE@am__append_154 = unictype/categ_longname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME_TRUE@am__append_155 = unictype/categ_name.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF_TRUE@am__append_156 = unictype/categ_of.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR_TRUE@am__append_157 = unictype/categ_or.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST_TRUE@am__append_158 = unictype/categ_test.c
-@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_TRUE@am__append_159 = unictype/combiningclass.c
-@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME_TRUE@am__append_160 = unictype/combiningclass_byname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME_TRUE@am__append_161 = unictype/combiningclass_longname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME_TRUE@am__append_162 = unictype/combiningclass_name.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM_TRUE@am__append_163 = unictype/ctype_alnum.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA_TRUE@am__append_164 = unictype/ctype_alpha.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK_TRUE@am__append_165 = unictype/ctype_blank.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL_TRUE@am__append_166 = unictype/ctype_cntrl.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT_TRUE@am__append_167 = unictype/ctype_digit.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH_TRUE@am__append_168 = unictype/ctype_graph.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER_TRUE@am__append_169 = unictype/ctype_lower.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT_TRUE@am__append_170 = unictype/ctype_print.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT_TRUE@am__append_171 = unictype/ctype_punct.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE_TRUE@am__append_172 = unictype/ctype_space.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER_TRUE@am__append_173 = unictype/ctype_upper.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT_TRUE@am__append_174 = unictype/ctype_xdigit.c
-@LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT_TRUE@am__append_175 = unictype/decdigit.c
-@LIBUNISTRING_COMPILE_UNICTYPE_DIGIT_TRUE@am__append_176 = unictype/digit.c
-@LIBUNISTRING_COMPILE_UNICTYPE_INCB_BYNAME_TRUE@am__append_177 = unictype/incb_byname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_INCB_NAME_TRUE@am__append_178 = unictype/incb_name.c
-@LIBUNISTRING_COMPILE_UNICTYPE_INCB_OF_TRUE@am__append_179 = unictype/incb_of.c
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME_TRUE@am__append_180 = unictype/joininggroup_byname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME_TRUE@am__append_181 = unictype/joininggroup_name.c
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF_TRUE@am__append_182 = unictype/joininggroup_of.c
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME_TRUE@am__append_183 = unictype/joiningtype_byname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME_TRUE@am__append_184 = unictype/joiningtype_longname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME_TRUE@am__append_185 = unictype/joiningtype_name.c
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF_TRUE@am__append_186 = unictype/joiningtype_of.c
-@LIBUNISTRING_COMPILE_UNICTYPE_MIRROR_TRUE@am__append_187 = unictype/mirror.c
-@LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC_TRUE@am__append_188 = unictype/numeric.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC_TRUE@am__append_189 = unictype/pr_alphabetic.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_TRUE@am__append_190 = unictype/pr_ascii_hex_digit.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_TRUE@am__append_191 = unictype/pr_bidi_arabic_digit.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_TRUE@am__append_192 = unictype/pr_bidi_arabic_right_to_left.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_TRUE@am__append_193 = unictype/pr_bidi_block_separator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_TRUE@am__append_194 = unictype/pr_bidi_boundary_neutral.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_TRUE@am__append_195 = unictype/pr_bidi_common_separator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL_TRUE@am__append_196 = unictype/pr_bidi_control.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_TRUE@am__append_197 = unictype/pr_bidi_embedding_or_override.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_TRUE@am__append_198 = unictype/pr_bidi_eur_num_separator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_TRUE@am__append_199 = unictype/pr_bidi_eur_num_terminator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_TRUE@am__append_200 = unictype/pr_bidi_european_digit.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_TRUE@am__append_201 = unictype/pr_bidi_hebrew_right_to_left.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_TRUE@am__append_202 = unictype/pr_bidi_left_to_right.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_TRUE@am__append_203 = unictype/pr_bidi_non_spacing_mark.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_TRUE@am__append_204 = unictype/pr_bidi_other_neutral.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF_TRUE@am__append_205 = unictype/pr_bidi_pdf.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_TRUE@am__append_206 = unictype/pr_bidi_segment_separator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE_TRUE@am__append_207 = unictype/pr_bidi_whitespace.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME_TRUE@am__append_208 = unictype/pr_byname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE_TRUE@am__append_209 = unictype/pr_case_ignorable.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED_TRUE@am__append_210 = unictype/pr_cased.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_TRUE@am__append_211 = unictype/pr_changes_when_casefolded.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_TRUE@am__append_212 = unictype/pr_changes_when_casemapped.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_TRUE@am__append_213 = unictype/pr_changes_when_lowercased.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_TRUE@am__append_214 = unictype/pr_changes_when_titlecased.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_TRUE@am__append_215 = unictype/pr_changes_when_uppercased.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING_TRUE@am__append_216 = unictype/pr_combining.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE_TRUE@am__append_217 = unictype/pr_composite.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_TRUE@am__append_218 = unictype/pr_currency_symbol.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH_TRUE@am__append_219 = unictype/pr_dash.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT_TRUE@am__append_220 = unictype/pr_decimal_digit.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__append_221 = unictype/pr_default_ignorable_code_point.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED_TRUE@am__append_222 = unictype/pr_deprecated.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC_TRUE@am__append_223 = unictype/pr_diacritic.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_TRUE@am__append_224 = unictype/pr_emoji.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_COMPONENT_TRUE@am__append_225 = unictype/pr_emoji_component.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_MODIFIER_TRUE@am__append_226 = unictype/pr_emoji_modifier.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_MODIFIER_BASE_TRUE@am__append_227 = unictype/pr_emoji_modifier_base.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_PRESENTATION_TRUE@am__append_228 = unictype/pr_emoji_presentation.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDED_PICTOGRAPHIC_TRUE@am__append_229 = unictype/pr_extended_pictographic.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER_TRUE@am__append_230 = unictype/pr_extender.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL_TRUE@am__append_231 = unictype/pr_format_control.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE_TRUE@am__append_232 = unictype/pr_grapheme_base.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_TRUE@am__append_233 = unictype/pr_grapheme_extend.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK_TRUE@am__append_234 = unictype/pr_grapheme_link.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT_TRUE@am__append_235 = unictype/pr_hex_digit.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN_TRUE@am__append_236 = unictype/pr_hyphen.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_COMPAT_MATH_CONTINUE_TRUE@am__append_237 = unictype/pr_id_compat_math_continue.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_COMPAT_MATH_START_TRUE@am__append_238 = unictype/pr_id_compat_math_start.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE_TRUE@am__append_239 = unictype/pr_id_continue.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START_TRUE@am__append_240 = unictype/pr_id_start.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC_TRUE@am__append_241 = unictype/pr_ideographic.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_TRUE@am__append_242 = unictype/pr_ids_binary_operator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_TRUE@am__append_243 = unictype/pr_ids_trinary_operator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_UNARY_OPERATOR_TRUE@am__append_244 = unictype/pr_ids_unary_operator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_TRUE@am__append_245 = unictype/pr_ignorable_control.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL_TRUE@am__append_246 = unictype/pr_iso_control.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL_TRUE@am__append_247 = unictype/pr_join_control.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR_TRUE@am__append_248 = unictype/pr_left_of_pair.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR_TRUE@am__append_249 = unictype/pr_line_separator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_TRUE@am__append_250 = unictype/pr_logical_order_exception.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE_TRUE@am__append_251 = unictype/pr_lowercase.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH_TRUE@am__append_252 = unictype/pr_math.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MODIFIER_COMBINING_MARK_TRUE@am__append_253 = unictype/pr_modifier_combining_mark.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK_TRUE@am__append_254 = unictype/pr_non_break.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER_TRUE@am__append_255 = unictype/pr_not_a_character.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC_TRUE@am__append_256 = unictype/pr_numeric.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_TRUE@am__append_257 = unictype/pr_other_alphabetic.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__append_258 = unictype/pr_other_default_ignorable_code_point.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_TRUE@am__append_259 = unictype/pr_other_grapheme_extend.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_TRUE@am__append_260 = unictype/pr_other_id_continue.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START_TRUE@am__append_261 = unictype/pr_other_id_start.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE_TRUE@am__append_262 = unictype/pr_other_lowercase.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH_TRUE@am__append_263 = unictype/pr_other_math.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE_TRUE@am__append_264 = unictype/pr_other_uppercase.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_TRUE@am__append_265 = unictype/pr_paired_punctuation.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_TRUE@am__append_266 = unictype/pr_paragraph_separator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX_TRUE@am__append_267 = unictype/pr_pattern_syntax.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_TRUE@am__append_268 = unictype/pr_pattern_white_space.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PREPENDED_CONCATENATION_MARK_TRUE@am__append_269 = unictype/pr_prepended_concatenation_mark.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE_TRUE@am__append_270 = unictype/pr_private_use.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION_TRUE@am__append_271 = unictype/pr_punctuation.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK_TRUE@am__append_272 = unictype/pr_quotation_mark.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL_TRUE@am__append_273 = unictype/pr_radical.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_REGIONAL_INDICATOR_TRUE@am__append_274 = unictype/pr_regional_indicator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_TRUE@am__append_275 = unictype/pr_sentence_terminal.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED_TRUE@am__append_276 = unictype/pr_soft_dotted.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE_TRUE@am__append_277 = unictype/pr_space.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_TRUE@am__append_278 = unictype/pr_terminal_punctuation.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST_TRUE@am__append_279 = unictype/pr_test.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE_TRUE@am__append_280 = unictype/pr_titlecase.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_TRUE@am__append_281 = unictype/pr_unassigned_code_value.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_TRUE@am__append_282 = unictype/pr_unified_ideograph.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE_TRUE@am__append_283 = unictype/pr_uppercase.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR_TRUE@am__append_284 = unictype/pr_variation_selector.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE_TRUE@am__append_285 = unictype/pr_white_space.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE_TRUE@am__append_286 = unictype/pr_xid_continue.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START_TRUE@am__append_287 = unictype/pr_xid_start.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH_TRUE@am__append_288 = unictype/pr_zero_width.c
-@LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS_TRUE@am__append_289 = unictype/scripts.c
-@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT_TRUE@am__append_290 = unictype/sy_c_ident.c
-@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE_TRUE@am__append_291 = unictype/sy_c_whitespace.c
-@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT_TRUE@am__append_292 = unictype/sy_java_ident.c
-@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE_TRUE@am__append_293 = unictype/sy_java_whitespace.c
-@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS_TRUE@am__append_294 = unigbrk/u16-grapheme-breaks.c
-@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT_TRUE@am__append_295 = unigbrk/u16-grapheme-next.c
-@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV_TRUE@am__append_296 = unigbrk/u16-grapheme-prev.c
-@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS_TRUE@am__append_297 = unigbrk/u32-grapheme-breaks.c
-@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT_TRUE@am__append_298 = unigbrk/u32-grapheme-next.c
-@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV_TRUE@am__append_299 = unigbrk/u32-grapheme-prev.c
-@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS_TRUE@am__append_300 = unigbrk/u8-grapheme-breaks.c
-@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT_TRUE@am__append_301 = unigbrk/u8-grapheme-next.c
-@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV_TRUE@am__append_302 = unigbrk/u8-grapheme-prev.c
-@LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP_TRUE@am__append_303 = unigbrk/uc-gbrk-prop.c
-@LIBUNISTRING_COMPILE_UNIGBRK_UC_GRAPHEME_BREAKS_TRUE@am__append_304 = unigbrk/uc-grapheme-breaks.c
-@LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK_TRUE@am__append_305 = unigbrk/uc-is-grapheme-break.c
-@LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS_TRUE@am__append_306 = unigbrk/ulc-grapheme-breaks.c
-@LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS_TRUE@am__append_307 = unilbrk/u16-possible-linebreaks.c
-@LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS_TRUE@am__append_308 = unilbrk/u16-width-linebreaks.c
-@LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS_TRUE@am__append_309 = unilbrk/u32-possible-linebreaks.c
-@LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS_TRUE@am__append_310 = unilbrk/u32-width-linebreaks.c
-@LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS_TRUE@am__append_311 = unilbrk/u8-possible-linebreaks.c
-@LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS_TRUE@am__append_312 = unilbrk/u8-width-linebreaks.c
-@LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS_TRUE@am__append_313 = unilbrk/ulc-possible-linebreaks.c
-@LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS_TRUE@am__append_314 = unilbrk/ulc-width-linebreaks.c
-@LIBUNISTRING_COMPILE_UNIMETADATA_U_VERSION_TRUE@am__append_315 = unimetadata/u-version.c
+@GL_COND_OBJ_STRNCPY_TRUE@am__append_25 = strncpy.c
+@LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT_TRUE@am__append_26 = unicase/empty-prefix-context.c
+@LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT_TRUE@am__append_27 = unicase/empty-suffix-context.c
+@LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE_TRUE@am__append_28 = unicase/locale-language.c
+@LIBUNISTRING_COMPILE_UNICASE_TOLOWER_TRUE@am__append_29 = unicase/tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_TOTITLE_TRUE@am__append_30 = unicase/totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_TOUPPER_TRUE@am__append_31 = unicase/toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP_TRUE@am__append_32 = unicase/u16-casecmp.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL_TRUE@am__append_33 = unicase/u16-casecoll.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD_TRUE@am__append_34 = unicase/u16-casefold.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM_TRUE@am__append_35 = unicase/u16-casexfrm.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD_TRUE@am__append_36 = unicase/u16-ct-casefold.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER_TRUE@am__append_37 = unicase/u16-ct-tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE_TRUE@am__append_38 = unicase/u16-ct-totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER_TRUE@am__append_39 = unicase/u16-ct-toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED_TRUE@am__append_40 = unicase/u16-is-cased.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED_TRUE@am__append_41 = unicase/u16-is-casefolded.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE_TRUE@am__append_42 = unicase/u16-is-lowercase.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE_TRUE@am__append_43 = unicase/u16-is-titlecase.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE_TRUE@am__append_44 = unicase/u16-is-uppercase.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_PREFIX_CONTEXT_TRUE@am__append_45 = unicase/u16-prefix-context.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_SUFFIX_CONTEXT_TRUE@am__append_46 = unicase/u16-suffix-context.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER_TRUE@am__append_47 = unicase/u16-tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE_TRUE@am__append_48 = unicase/u16-totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER_TRUE@am__append_49 = unicase/u16-toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP_TRUE@am__append_50 = unicase/u32-casecmp.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL_TRUE@am__append_51 = unicase/u32-casecoll.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD_TRUE@am__append_52 = unicase/u32-casefold.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM_TRUE@am__append_53 = unicase/u32-casexfrm.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD_TRUE@am__append_54 = unicase/u32-ct-casefold.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER_TRUE@am__append_55 = unicase/u32-ct-tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE_TRUE@am__append_56 = unicase/u32-ct-totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER_TRUE@am__append_57 = unicase/u32-ct-toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED_TRUE@am__append_58 = unicase/u32-is-cased.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED_TRUE@am__append_59 = unicase/u32-is-casefolded.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE_TRUE@am__append_60 = unicase/u32-is-lowercase.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE_TRUE@am__append_61 = unicase/u32-is-titlecase.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE_TRUE@am__append_62 = unicase/u32-is-uppercase.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_PREFIX_CONTEXT_TRUE@am__append_63 = unicase/u32-prefix-context.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_SUFFIX_CONTEXT_TRUE@am__append_64 = unicase/u32-suffix-context.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER_TRUE@am__append_65 = unicase/u32-tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE_TRUE@am__append_66 = unicase/u32-totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER_TRUE@am__append_67 = unicase/u32-toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP_TRUE@am__append_68 = unicase/u8-casecmp.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL_TRUE@am__append_69 = unicase/u8-casecoll.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD_TRUE@am__append_70 = unicase/u8-casefold.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM_TRUE@am__append_71 = unicase/u8-casexfrm.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD_TRUE@am__append_72 = unicase/u8-ct-casefold.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER_TRUE@am__append_73 = unicase/u8-ct-tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE_TRUE@am__append_74 = unicase/u8-ct-totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER_TRUE@am__append_75 = unicase/u8-ct-toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED_TRUE@am__append_76 = unicase/u8-is-cased.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED_TRUE@am__append_77 = unicase/u8-is-casefolded.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE_TRUE@am__append_78 = unicase/u8-is-lowercase.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE_TRUE@am__append_79 = unicase/u8-is-titlecase.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE_TRUE@am__append_80 = unicase/u8-is-uppercase.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_PREFIX_CONTEXT_TRUE@am__append_81 = unicase/u8-prefix-context.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_SUFFIX_CONTEXT_TRUE@am__append_82 = unicase/u8-suffix-context.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER_TRUE@am__append_83 = unicase/u8-tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE_TRUE@am__append_84 = unicase/u8-totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER_TRUE@am__append_85 = unicase/u8-toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP_TRUE@am__append_86 = unicase/ulc-casecmp.c
+@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL_TRUE@am__append_87 = unicase/ulc-casecoll.c
+@LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM_TRUE@am__append_88 = unicase/ulc-casexfrm.c
+@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC_TRUE@am__append_89 = uniconv/u16-conv-from-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC_TRUE@am__append_90 = uniconv/u16-conv-to-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC_TRUE@am__append_91 = uniconv/u16-strconv-from-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE_TRUE@am__append_92 = uniconv/u16-strconv-from-locale.c
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC_TRUE@am__append_93 = uniconv/u16-strconv-to-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE_TRUE@am__append_94 = uniconv/u16-strconv-to-locale.c
+@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC_TRUE@am__append_95 = uniconv/u32-conv-from-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC_TRUE@am__append_96 = uniconv/u32-conv-to-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC_TRUE@am__append_97 = uniconv/u32-strconv-from-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE_TRUE@am__append_98 = uniconv/u32-strconv-from-locale.c
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC_TRUE@am__append_99 = uniconv/u32-strconv-to-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE_TRUE@am__append_100 = uniconv/u32-strconv-to-locale.c
+@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE@am__append_101 = uniconv/u8-conv-from-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC_TRUE@am__append_102 = uniconv/u8-conv-to-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC_TRUE@am__append_103 = uniconv/u8-strconv-from-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE_TRUE@am__append_104 = uniconv/u8-strconv-from-locale.c
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC_TRUE@am__append_105 = uniconv/u8-strconv-to-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE_TRUE@am__append_106 = uniconv/u8-strconv-to-locale.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME_TRUE@am__append_107 = unictype/bidi_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME_TRUE@am__append_108 = unictype/bidi_longname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME_TRUE@am__append_109 = unictype/bidi_name.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF_TRUE@am__append_110 = unictype/bidi_of.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST_TRUE@am__append_111 = unictype/bidi_test.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST_TRUE@am__append_112 = unictype/blocks.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST_TRUE@am__append_113 = unictype/block_test.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C_TRUE@am__append_114 = unictype/categ_C.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC_TRUE@am__append_115 = unictype/categ_Cc.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF_TRUE@am__append_116 = unictype/categ_Cf.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN_TRUE@am__append_117 = unictype/categ_Cn.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO_TRUE@am__append_118 = unictype/categ_Co.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS_TRUE@am__append_119 = unictype/categ_Cs.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L_TRUE@am__append_120 = unictype/categ_L.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC_TRUE@am__append_121 = unictype/categ_LC.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL_TRUE@am__append_122 = unictype/categ_Ll.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM_TRUE@am__append_123 = unictype/categ_Lm.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO_TRUE@am__append_124 = unictype/categ_Lo.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT_TRUE@am__append_125 = unictype/categ_Lt.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU_TRUE@am__append_126 = unictype/categ_Lu.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M_TRUE@am__append_127 = unictype/categ_M.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC_TRUE@am__append_128 = unictype/categ_Mc.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME_TRUE@am__append_129 = unictype/categ_Me.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN_TRUE@am__append_130 = unictype/categ_Mn.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N_TRUE@am__append_131 = unictype/categ_N.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND_TRUE@am__append_132 = unictype/categ_Nd.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL_TRUE@am__append_133 = unictype/categ_Nl.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO_TRUE@am__append_134 = unictype/categ_No.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P_TRUE@am__append_135 = unictype/categ_P.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC_TRUE@am__append_136 = unictype/categ_Pc.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD_TRUE@am__append_137 = unictype/categ_Pd.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE_TRUE@am__append_138 = unictype/categ_Pe.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF_TRUE@am__append_139 = unictype/categ_Pf.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI_TRUE@am__append_140 = unictype/categ_Pi.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO_TRUE@am__append_141 = unictype/categ_Po.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS_TRUE@am__append_142 = unictype/categ_Ps.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S_TRUE@am__append_143 = unictype/categ_S.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC_TRUE@am__append_144 = unictype/categ_Sc.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK_TRUE@am__append_145 = unictype/categ_Sk.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM_TRUE@am__append_146 = unictype/categ_Sm.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO_TRUE@am__append_147 = unictype/categ_So.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z_TRUE@am__append_148 = unictype/categ_Z.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL_TRUE@am__append_149 = unictype/categ_Zl.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP_TRUE@am__append_150 = unictype/categ_Zp.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS_TRUE@am__append_151 = unictype/categ_Zs.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_TRUE@am__append_152 = unictype/categ_and.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT_TRUE@am__append_153 = unictype/categ_and_not.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME_TRUE@am__append_154 = unictype/categ_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME_TRUE@am__append_155 = unictype/categ_longname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME_TRUE@am__append_156 = unictype/categ_name.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF_TRUE@am__append_157 = unictype/categ_of.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR_TRUE@am__append_158 = unictype/categ_or.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST_TRUE@am__append_159 = unictype/categ_test.c
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_TRUE@am__append_160 = unictype/combiningclass.c
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME_TRUE@am__append_161 = unictype/combiningclass_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME_TRUE@am__append_162 = unictype/combiningclass_longname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME_TRUE@am__append_163 = unictype/combiningclass_name.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM_TRUE@am__append_164 = unictype/ctype_alnum.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA_TRUE@am__append_165 = unictype/ctype_alpha.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK_TRUE@am__append_166 = unictype/ctype_blank.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL_TRUE@am__append_167 = unictype/ctype_cntrl.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT_TRUE@am__append_168 = unictype/ctype_digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH_TRUE@am__append_169 = unictype/ctype_graph.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER_TRUE@am__append_170 = unictype/ctype_lower.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT_TRUE@am__append_171 = unictype/ctype_print.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT_TRUE@am__append_172 = unictype/ctype_punct.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE_TRUE@am__append_173 = unictype/ctype_space.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER_TRUE@am__append_174 = unictype/ctype_upper.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT_TRUE@am__append_175 = unictype/ctype_xdigit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT_TRUE@am__append_176 = unictype/decdigit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_DIGIT_TRUE@am__append_177 = unictype/digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_INCB_BYNAME_TRUE@am__append_178 = unictype/incb_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_INCB_NAME_TRUE@am__append_179 = unictype/incb_name.c
+@LIBUNISTRING_COMPILE_UNICTYPE_INCB_OF_TRUE@am__append_180 = unictype/incb_of.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME_TRUE@am__append_181 = unictype/joininggroup_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME_TRUE@am__append_182 = unictype/joininggroup_name.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF_TRUE@am__append_183 = unictype/joininggroup_of.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME_TRUE@am__append_184 = unictype/joiningtype_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME_TRUE@am__append_185 = unictype/joiningtype_longname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME_TRUE@am__append_186 = unictype/joiningtype_name.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF_TRUE@am__append_187 = unictype/joiningtype_of.c
+@LIBUNISTRING_COMPILE_UNICTYPE_MIRROR_TRUE@am__append_188 = unictype/mirror.c
+@LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC_TRUE@am__append_189 = unictype/numeric.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC_TRUE@am__append_190 = unictype/pr_alphabetic.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_TRUE@am__append_191 = unictype/pr_ascii_hex_digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_TRUE@am__append_192 = unictype/pr_bidi_arabic_digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_TRUE@am__append_193 = unictype/pr_bidi_arabic_right_to_left.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_TRUE@am__append_194 = unictype/pr_bidi_block_separator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_TRUE@am__append_195 = unictype/pr_bidi_boundary_neutral.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_TRUE@am__append_196 = unictype/pr_bidi_common_separator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL_TRUE@am__append_197 = unictype/pr_bidi_control.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_TRUE@am__append_198 = unictype/pr_bidi_embedding_or_override.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_TRUE@am__append_199 = unictype/pr_bidi_eur_num_separator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_TRUE@am__append_200 = unictype/pr_bidi_eur_num_terminator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_TRUE@am__append_201 = unictype/pr_bidi_european_digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_TRUE@am__append_202 = unictype/pr_bidi_hebrew_right_to_left.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_TRUE@am__append_203 = unictype/pr_bidi_left_to_right.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_TRUE@am__append_204 = unictype/pr_bidi_non_spacing_mark.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_TRUE@am__append_205 = unictype/pr_bidi_other_neutral.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF_TRUE@am__append_206 = unictype/pr_bidi_pdf.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_TRUE@am__append_207 = unictype/pr_bidi_segment_separator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE_TRUE@am__append_208 = unictype/pr_bidi_whitespace.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME_TRUE@am__append_209 = unictype/pr_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE_TRUE@am__append_210 = unictype/pr_case_ignorable.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED_TRUE@am__append_211 = unictype/pr_cased.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_TRUE@am__append_212 = unictype/pr_changes_when_casefolded.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_TRUE@am__append_213 = unictype/pr_changes_when_casemapped.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_TRUE@am__append_214 = unictype/pr_changes_when_lowercased.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_TRUE@am__append_215 = unictype/pr_changes_when_titlecased.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_TRUE@am__append_216 = unictype/pr_changes_when_uppercased.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING_TRUE@am__append_217 = unictype/pr_combining.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE_TRUE@am__append_218 = unictype/pr_composite.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_TRUE@am__append_219 = unictype/pr_currency_symbol.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH_TRUE@am__append_220 = unictype/pr_dash.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT_TRUE@am__append_221 = unictype/pr_decimal_digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__append_222 = unictype/pr_default_ignorable_code_point.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED_TRUE@am__append_223 = unictype/pr_deprecated.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC_TRUE@am__append_224 = unictype/pr_diacritic.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_TRUE@am__append_225 = unictype/pr_emoji.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_COMPONENT_TRUE@am__append_226 = unictype/pr_emoji_component.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_MODIFIER_TRUE@am__append_227 = unictype/pr_emoji_modifier.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_MODIFIER_BASE_TRUE@am__append_228 = unictype/pr_emoji_modifier_base.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_PRESENTATION_TRUE@am__append_229 = unictype/pr_emoji_presentation.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDED_PICTOGRAPHIC_TRUE@am__append_230 = unictype/pr_extended_pictographic.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER_TRUE@am__append_231 = unictype/pr_extender.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL_TRUE@am__append_232 = unictype/pr_format_control.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE_TRUE@am__append_233 = unictype/pr_grapheme_base.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_TRUE@am__append_234 = unictype/pr_grapheme_extend.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK_TRUE@am__append_235 = unictype/pr_grapheme_link.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT_TRUE@am__append_236 = unictype/pr_hex_digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN_TRUE@am__append_237 = unictype/pr_hyphen.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_COMPAT_MATH_CONTINUE_TRUE@am__append_238 = unictype/pr_id_compat_math_continue.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_COMPAT_MATH_START_TRUE@am__append_239 = unictype/pr_id_compat_math_start.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE_TRUE@am__append_240 = unictype/pr_id_continue.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START_TRUE@am__append_241 = unictype/pr_id_start.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC_TRUE@am__append_242 = unictype/pr_ideographic.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_TRUE@am__append_243 = unictype/pr_ids_binary_operator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_TRUE@am__append_244 = unictype/pr_ids_trinary_operator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_UNARY_OPERATOR_TRUE@am__append_245 = unictype/pr_ids_unary_operator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_TRUE@am__append_246 = unictype/pr_ignorable_control.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL_TRUE@am__append_247 = unictype/pr_iso_control.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL_TRUE@am__append_248 = unictype/pr_join_control.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR_TRUE@am__append_249 = unictype/pr_left_of_pair.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR_TRUE@am__append_250 = unictype/pr_line_separator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_TRUE@am__append_251 = unictype/pr_logical_order_exception.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE_TRUE@am__append_252 = unictype/pr_lowercase.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH_TRUE@am__append_253 = unictype/pr_math.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MODIFIER_COMBINING_MARK_TRUE@am__append_254 = unictype/pr_modifier_combining_mark.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK_TRUE@am__append_255 = unictype/pr_non_break.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER_TRUE@am__append_256 = unictype/pr_not_a_character.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC_TRUE@am__append_257 = unictype/pr_numeric.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_TRUE@am__append_258 = unictype/pr_other_alphabetic.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__append_259 = unictype/pr_other_default_ignorable_code_point.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_TRUE@am__append_260 = unictype/pr_other_grapheme_extend.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_TRUE@am__append_261 = unictype/pr_other_id_continue.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START_TRUE@am__append_262 = unictype/pr_other_id_start.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE_TRUE@am__append_263 = unictype/pr_other_lowercase.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH_TRUE@am__append_264 = unictype/pr_other_math.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE_TRUE@am__append_265 = unictype/pr_other_uppercase.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_TRUE@am__append_266 = unictype/pr_paired_punctuation.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_TRUE@am__append_267 = unictype/pr_paragraph_separator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX_TRUE@am__append_268 = unictype/pr_pattern_syntax.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_TRUE@am__append_269 = unictype/pr_pattern_white_space.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PREPENDED_CONCATENATION_MARK_TRUE@am__append_270 = unictype/pr_prepended_concatenation_mark.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE_TRUE@am__append_271 = unictype/pr_private_use.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION_TRUE@am__append_272 = unictype/pr_punctuation.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK_TRUE@am__append_273 = unictype/pr_quotation_mark.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL_TRUE@am__append_274 = unictype/pr_radical.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_REGIONAL_INDICATOR_TRUE@am__append_275 = unictype/pr_regional_indicator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_TRUE@am__append_276 = unictype/pr_sentence_terminal.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED_TRUE@am__append_277 = unictype/pr_soft_dotted.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE_TRUE@am__append_278 = unictype/pr_space.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_TRUE@am__append_279 = unictype/pr_terminal_punctuation.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST_TRUE@am__append_280 = unictype/pr_test.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE_TRUE@am__append_281 = unictype/pr_titlecase.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_TRUE@am__append_282 = unictype/pr_unassigned_code_value.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_TRUE@am__append_283 = unictype/pr_unified_ideograph.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE_TRUE@am__append_284 = unictype/pr_uppercase.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR_TRUE@am__append_285 = unictype/pr_variation_selector.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE_TRUE@am__append_286 = unictype/pr_white_space.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE_TRUE@am__append_287 = unictype/pr_xid_continue.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START_TRUE@am__append_288 = unictype/pr_xid_start.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH_TRUE@am__append_289 = unictype/pr_zero_width.c
+@LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS_TRUE@am__append_290 = unictype/scripts.c
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT_TRUE@am__append_291 = unictype/sy_c_ident.c
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE_TRUE@am__append_292 = unictype/sy_c_whitespace.c
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT_TRUE@am__append_293 = unictype/sy_java_ident.c
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE_TRUE@am__append_294 = unictype/sy_java_whitespace.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS_TRUE@am__append_295 = unigbrk/u16-grapheme-breaks.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT_TRUE@am__append_296 = unigbrk/u16-grapheme-next.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV_TRUE@am__append_297 = unigbrk/u16-grapheme-prev.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS_TRUE@am__append_298 = unigbrk/u32-grapheme-breaks.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT_TRUE@am__append_299 = unigbrk/u32-grapheme-next.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV_TRUE@am__append_300 = unigbrk/u32-grapheme-prev.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS_TRUE@am__append_301 = unigbrk/u8-grapheme-breaks.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT_TRUE@am__append_302 = unigbrk/u8-grapheme-next.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV_TRUE@am__append_303 = unigbrk/u8-grapheme-prev.c
+@LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP_TRUE@am__append_304 = unigbrk/uc-gbrk-prop.c
+@LIBUNISTRING_COMPILE_UNIGBRK_UC_GRAPHEME_BREAKS_TRUE@am__append_305 = unigbrk/uc-grapheme-breaks.c
+@LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK_TRUE@am__append_306 = unigbrk/uc-is-grapheme-break.c
+@LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS_TRUE@am__append_307 = unigbrk/ulc-grapheme-breaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS_TRUE@am__append_308 = unilbrk/u16-possible-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS_TRUE@am__append_309 = unilbrk/u16-width-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS_TRUE@am__append_310 = unilbrk/u32-possible-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS_TRUE@am__append_311 = unilbrk/u32-width-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS_TRUE@am__append_312 = unilbrk/u8-possible-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS_TRUE@am__append_313 = unilbrk/u8-width-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS_TRUE@am__append_314 = unilbrk/ulc-possible-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS_TRUE@am__append_315 = unilbrk/ulc-width-linebreaks.c
+@LIBUNISTRING_COMPILE_UNIMETADATA_U_VERSION_TRUE@am__append_316 = unimetadata/u-version.c
# Note: Compilation of this file takes a long time with gcc ≥ 11 and option
# -fanalyzer. See <https://gcc.gnu.org/PR110112>.
@@ -818,234 +819,234 @@ host_triplet = @host@
# An alternative workaround would be to pass the option -fno-analyzer, using
# the technique from
# https://www.gnu.org/software/automake/manual/html_node/Per_002dObject-Flags.html
-@LIBUNISTRING_COMPILE_UNINAME_UNINAME_TRUE@am__append_316 = uniname/uniname.c
-@LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION_TRUE@am__append_317 = uninorm/canonical-decomposition.c
-@LIBUNISTRING_COMPILE_UNINORM_COMPOSITION_TRUE@am__append_318 = uninorm/composition.c
-@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM_TRUE@am__append_319 = uninorm/decomposing-form.c
-@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION_TRUE@am__append_320 = uninorm/decomposition.c
-@LIBUNISTRING_COMPILE_UNINORM_FILTER_TRUE@am__append_321 = uninorm/uninorm-filter.c
-@LIBUNISTRING_COMPILE_UNINORM_NFC_TRUE@am__append_322 = uninorm/nfc.c
-@LIBUNISTRING_COMPILE_UNINORM_NFD_TRUE@am__append_323 = uninorm/nfd.c
-@LIBUNISTRING_COMPILE_UNINORM_NFKC_TRUE@am__append_324 = uninorm/nfkc.c
-@LIBUNISTRING_COMPILE_UNINORM_NFKD_TRUE@am__append_325 = uninorm/nfkd.c
-@LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE_TRUE@am__append_326 = uninorm/u16-normalize.c
-@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP_TRUE@am__append_327 = uninorm/u16-normcmp.c
-@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL_TRUE@am__append_328 = uninorm/u16-normcoll.c
-@LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM_TRUE@am__append_329 = uninorm/u16-normxfrm.c
-@LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE_TRUE@am__append_330 = uninorm/u32-normalize.c
-@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP_TRUE@am__append_331 = uninorm/u32-normcmp.c
-@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL_TRUE@am__append_332 = uninorm/u32-normcoll.c
-@LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM_TRUE@am__append_333 = uninorm/u32-normxfrm.c
-@LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE_TRUE@am__append_334 = uninorm/u8-normalize.c
-@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP_TRUE@am__append_335 = uninorm/u8-normcmp.c
-@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL_TRUE@am__append_336 = uninorm/u8-normcoll.c
-@LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM_TRUE@am__append_337 = uninorm/u8-normxfrm.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF_TRUE@am__append_338 = unistdio/u16-asnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF_TRUE@am__append_339 = unistdio/u16-asprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF_TRUE@am__append_340 = unistdio/u16-snprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF_TRUE@am__append_341 = unistdio/u16-sprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF_TRUE@am__append_342 = unistdio/u16-u16-asnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF_TRUE@am__append_343 = unistdio/u16-u16-asprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF_TRUE@am__append_344 = unistdio/u16-u16-snprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF_TRUE@am__append_345 = unistdio/u16-u16-sprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF_TRUE@am__append_346 = unistdio/u16-u16-vasnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF_TRUE@am__append_347 = unistdio/u16-u16-vasprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF_TRUE@am__append_348 = unistdio/u16-u16-vsnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF_TRUE@am__append_349 = unistdio/u16-u16-vsprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF_TRUE@am__append_350 = unistdio/u16-vasnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF_TRUE@am__append_351 = unistdio/u16-vasprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF_TRUE@am__append_352 = unistdio/u16-vsnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF_TRUE@am__append_353 = unistdio/u16-vsprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF_TRUE@am__append_354 = unistdio/u32-asnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF_TRUE@am__append_355 = unistdio/u32-asprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF_TRUE@am__append_356 = unistdio/u32-snprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF_TRUE@am__append_357 = unistdio/u32-sprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF_TRUE@am__append_358 = unistdio/u32-u32-asnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF_TRUE@am__append_359 = unistdio/u32-u32-asprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF_TRUE@am__append_360 = unistdio/u32-u32-snprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF_TRUE@am__append_361 = unistdio/u32-u32-sprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF_TRUE@am__append_362 = unistdio/u32-u32-vasnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF_TRUE@am__append_363 = unistdio/u32-u32-vasprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF_TRUE@am__append_364 = unistdio/u32-u32-vsnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF_TRUE@am__append_365 = unistdio/u32-u32-vsprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF_TRUE@am__append_366 = unistdio/u32-vasnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF_TRUE@am__append_367 = unistdio/u32-vasprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF_TRUE@am__append_368 = unistdio/u32-vsnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF_TRUE@am__append_369 = unistdio/u32-vsprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF_TRUE@am__append_370 = unistdio/u8-asnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF_TRUE@am__append_371 = unistdio/u8-asprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF_TRUE@am__append_372 = unistdio/u8-snprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE@am__append_373 = unistdio/u8-sprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF_TRUE@am__append_374 = unistdio/u8-u8-asnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF_TRUE@am__append_375 = unistdio/u8-u8-asprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF_TRUE@am__append_376 = unistdio/u8-u8-snprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF_TRUE@am__append_377 = unistdio/u8-u8-sprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF_TRUE@am__append_378 = unistdio/u8-u8-vasnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF_TRUE@am__append_379 = unistdio/u8-u8-vasprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF_TRUE@am__append_380 = unistdio/u8-u8-vsnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF_TRUE@am__append_381 = unistdio/u8-u8-vsprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE@am__append_382 = unistdio/u8-vasnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF_TRUE@am__append_383 = unistdio/u8-vasprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF_TRUE@am__append_384 = unistdio/u8-vsnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE@am__append_385 = unistdio/u8-vsprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF_TRUE@am__append_386 = unistdio/ulc-asnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF_TRUE@am__append_387 = unistdio/ulc-asprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF_TRUE@am__append_388 = unistdio/ulc-fprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF_TRUE@am__append_389 = unistdio/ulc-snprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF_TRUE@am__append_390 = unistdio/ulc-sprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF_TRUE@am__append_391 = unistdio/ulc-vasnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF_TRUE@am__append_392 = unistdio/ulc-vasprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF_TRUE@am__append_393 = unistdio/ulc-vfprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF_TRUE@am__append_394 = unistdio/ulc-vsnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF_TRUE@am__append_395 = unistdio/ulc-vsprintf.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_CHECK_TRUE@am__append_396 = unistr/u16-check.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_CHR_TRUE@am__append_397 = unistr/u16-chr.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_CMP_TRUE@am__append_398 = unistr/u16-cmp.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_CMP2_TRUE@am__append_399 = unistr/u16-cmp2.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_TRUE@am__append_400 = unistr/u16-cpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC_TRUE@am__append_401 = unistr/u16-cpy-alloc.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH_TRUE@am__append_402 = unistr/u16-endswith.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN_TRUE@am__append_403 = unistr/u16-mblen.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN_TRUE@am__append_404 = unistr/u16-mbsnlen.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_TRUE@am__append_405 = unistr/u16-mbtouc.c unistr/u16-mbtouc-aux.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_TRUE@am__append_406 = unistr/u16-mbtouc-unsafe.c unistr/u16-mbtouc-unsafe-aux.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE@am__append_407 = unistr/u16-mbtoucr.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_MOVE_TRUE@am__append_408 = unistr/u16-move.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_NEXT_TRUE@am__append_409 = unistr/u16-next.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_PCPY_TRUE@am__append_410 = unistr/u16-pcpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_PREV_TRUE@am__append_411 = unistr/u16-prev.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_SET_TRUE@am__append_412 = unistr/u16-set.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH_TRUE@am__append_413 = unistr/u16-startswith.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY_TRUE@am__append_414 = unistr/u16-stpcpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY_TRUE@am__append_415 = unistr/u16-stpncpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT_TRUE@am__append_416 = unistr/u16-strcat.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR_TRUE@am__append_417 = unistr/u16-strchr.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP_TRUE@am__append_418 = unistr/u16-strcmp.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL_TRUE@am__append_419 = unistr/u16-strcoll.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY_TRUE@am__append_420 = unistr/u16-strcpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN_TRUE@am__append_421 = unistr/u16-strcspn.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP_TRUE@am__append_422 = unistr/u16-strdup.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE@am__append_423 = unistr/u16-strlen.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE@am__append_424 = unistr/u16-strmblen.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC_TRUE@am__append_425 = unistr/u16-strmbtouc.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT_TRUE@am__append_426 = unistr/u16-strncat.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP_TRUE@am__append_427 = unistr/u16-strncmp.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY_TRUE@am__append_428 = unistr/u16-strncpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN_TRUE@am__append_429 = unistr/u16-strnlen.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK_TRUE@am__append_430 = unistr/u16-strpbrk.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR_TRUE@am__append_431 = unistr/u16-strrchr.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN_TRUE@am__append_432 = unistr/u16-strspn.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR_TRUE@am__append_433 = unistr/u16-strstr.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK_TRUE@am__append_434 = unistr/u16-strtok.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32_TRUE@am__append_435 = unistr/u16-to-u32.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE@am__append_436 = unistr/u16-to-u8.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_TRUE@am__append_437 = unistr/u16-uctomb.c unistr/u16-uctomb-aux.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_CHECK_TRUE@am__append_438 = unistr/u32-check.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_CHR_TRUE@am__append_439 = unistr/u32-chr.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_CMP_TRUE@am__append_440 = unistr/u32-cmp.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_CMP2_TRUE@am__append_441 = unistr/u32-cmp2.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_TRUE@am__append_442 = unistr/u32-cpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC_TRUE@am__append_443 = unistr/u32-cpy-alloc.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH_TRUE@am__append_444 = unistr/u32-endswith.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN_TRUE@am__append_445 = unistr/u32-mblen.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN_TRUE@am__append_446 = unistr/u32-mbsnlen.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_TRUE@am__append_447 = unistr/u32-mbtouc.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE_TRUE@am__append_448 = unistr/u32-mbtouc-unsafe.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR_TRUE@am__append_449 = unistr/u32-mbtoucr.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_MOVE_TRUE@am__append_450 = unistr/u32-move.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_NEXT_TRUE@am__append_451 = unistr/u32-next.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_PCPY_TRUE@am__append_452 = unistr/u32-pcpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_PREV_TRUE@am__append_453 = unistr/u32-prev.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_SET_TRUE@am__append_454 = unistr/u32-set.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH_TRUE@am__append_455 = unistr/u32-startswith.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY_TRUE@am__append_456 = unistr/u32-stpcpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY_TRUE@am__append_457 = unistr/u32-stpncpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT_TRUE@am__append_458 = unistr/u32-strcat.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR_TRUE@am__append_459 = unistr/u32-strchr.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP_TRUE@am__append_460 = unistr/u32-strcmp.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL_TRUE@am__append_461 = unistr/u32-strcoll.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY_TRUE@am__append_462 = unistr/u32-strcpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN_TRUE@am__append_463 = unistr/u32-strcspn.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP_TRUE@am__append_464 = unistr/u32-strdup.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE@am__append_465 = unistr/u32-strlen.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE@am__append_466 = unistr/u32-strmblen.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC_TRUE@am__append_467 = unistr/u32-strmbtouc.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT_TRUE@am__append_468 = unistr/u32-strncat.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP_TRUE@am__append_469 = unistr/u32-strncmp.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY_TRUE@am__append_470 = unistr/u32-strncpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN_TRUE@am__append_471 = unistr/u32-strnlen.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK_TRUE@am__append_472 = unistr/u32-strpbrk.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR_TRUE@am__append_473 = unistr/u32-strrchr.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN_TRUE@am__append_474 = unistr/u32-strspn.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR_TRUE@am__append_475 = unistr/u32-strstr.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK_TRUE@am__append_476 = unistr/u32-strtok.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16_TRUE@am__append_477 = unistr/u32-to-u16.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE@am__append_478 = unistr/u32-to-u8.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB_TRUE@am__append_479 = unistr/u32-uctomb.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE@am__append_480 = unistr/u8-check.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_CHR_TRUE@am__append_481 = unistr/u8-chr.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_CMP_TRUE@am__append_482 = unistr/u8-cmp.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_CMP2_TRUE@am__append_483 = unistr/u8-cmp2.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE@am__append_484 = unistr/u8-cpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC_TRUE@am__append_485 = unistr/u8-cpy-alloc.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH_TRUE@am__append_486 = unistr/u8-endswith.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE@am__append_487 = unistr/u8-mblen.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE@am__append_488 = unistr/u8-mbsnlen.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE@am__append_489 = unistr/u8-mbtouc.c unistr/u8-mbtouc-aux.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE@am__append_490 = unistr/u8-mbtouc-unsafe.c unistr/u8-mbtouc-unsafe-aux.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__append_491 = unistr/u8-mbtoucr.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_MOVE_TRUE@am__append_492 = unistr/u8-move.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_NEXT_TRUE@am__append_493 = unistr/u8-next.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_PCPY_TRUE@am__append_494 = unistr/u8-pcpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE@am__append_495 = unistr/u8-prev.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE@am__append_496 = unistr/u8-set.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH_TRUE@am__append_497 = unistr/u8-startswith.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY_TRUE@am__append_498 = unistr/u8-stpcpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY_TRUE@am__append_499 = unistr/u8-stpncpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT_TRUE@am__append_500 = unistr/u8-strcat.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR_TRUE@am__append_501 = unistr/u8-strchr.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP_TRUE@am__append_502 = unistr/u8-strcmp.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL_TRUE@am__append_503 = unistr/u8-strcoll.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY_TRUE@am__append_504 = unistr/u8-strcpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN_TRUE@am__append_505 = unistr/u8-strcspn.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP_TRUE@am__append_506 = unistr/u8-strdup.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE@am__append_507 = unistr/u8-strlen.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE@am__append_508 = unistr/u8-strmblen.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC_TRUE@am__append_509 = unistr/u8-strmbtouc.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT_TRUE@am__append_510 = unistr/u8-strncat.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP_TRUE@am__append_511 = unistr/u8-strncmp.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY_TRUE@am__append_512 = unistr/u8-strncpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN_TRUE@am__append_513 = unistr/u8-strnlen.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK_TRUE@am__append_514 = unistr/u8-strpbrk.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR_TRUE@am__append_515 = unistr/u8-strrchr.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN_TRUE@am__append_516 = unistr/u8-strspn.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR_TRUE@am__append_517 = unistr/u8-strstr.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK_TRUE@am__append_518 = unistr/u8-strtok.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16_TRUE@am__append_519 = unistr/u8-to-u16.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32_TRUE@am__append_520 = unistr/u8-to-u32.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__append_521 = unistr/u8-uctomb.c unistr/u8-uctomb-aux.c
-@LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS_TRUE@am__append_522 = uniwbrk/u16-wordbreaks.c
-@LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS_TRUE@am__append_523 = uniwbrk/u32-wordbreaks.c
-@LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS_TRUE@am__append_524 = uniwbrk/u8-wordbreaks.c
-@LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS_TRUE@am__append_525 = uniwbrk/ulc-wordbreaks.c
-@LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY_TRUE@am__append_526 = uniwbrk/wordbreak-property.c
-@LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH_TRUE@am__append_527 = uniwidth/u16-strwidth.c
-@LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH_TRUE@am__append_528 = uniwidth/u16-width.c
-@LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH_TRUE@am__append_529 = uniwidth/u32-strwidth.c
-@LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH_TRUE@am__append_530 = uniwidth/u32-width.c
-@LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH_TRUE@am__append_531 = uniwidth/u8-strwidth.c
-@LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH_TRUE@am__append_532 = uniwidth/u8-width.c
-@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__append_533 = uniwidth/width.c
-@GL_COND_OBJ_WCWIDTH_TRUE@am__append_534 = wcwidth.c
-@GL_COND_OBJ_WINDOWS_MUTEX_TRUE@am__append_535 = windows-mutex.c
-@GL_COND_OBJ_WINDOWS_ONCE_TRUE@am__append_536 = windows-once.c
-@GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE@am__append_537 = windows-recmutex.c
-@GL_COND_OBJ_WINDOWS_RWLOCK_TRUE@am__append_538 = windows-rwlock.c
+@LIBUNISTRING_COMPILE_UNINAME_UNINAME_TRUE@am__append_317 = uniname/uniname.c
+@LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION_TRUE@am__append_318 = uninorm/canonical-decomposition.c
+@LIBUNISTRING_COMPILE_UNINORM_COMPOSITION_TRUE@am__append_319 = uninorm/composition.c
+@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM_TRUE@am__append_320 = uninorm/decomposing-form.c
+@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION_TRUE@am__append_321 = uninorm/decomposition.c
+@LIBUNISTRING_COMPILE_UNINORM_FILTER_TRUE@am__append_322 = uninorm/uninorm-filter.c
+@LIBUNISTRING_COMPILE_UNINORM_NFC_TRUE@am__append_323 = uninorm/nfc.c
+@LIBUNISTRING_COMPILE_UNINORM_NFD_TRUE@am__append_324 = uninorm/nfd.c
+@LIBUNISTRING_COMPILE_UNINORM_NFKC_TRUE@am__append_325 = uninorm/nfkc.c
+@LIBUNISTRING_COMPILE_UNINORM_NFKD_TRUE@am__append_326 = uninorm/nfkd.c
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE_TRUE@am__append_327 = uninorm/u16-normalize.c
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP_TRUE@am__append_328 = uninorm/u16-normcmp.c
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL_TRUE@am__append_329 = uninorm/u16-normcoll.c
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM_TRUE@am__append_330 = uninorm/u16-normxfrm.c
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE_TRUE@am__append_331 = uninorm/u32-normalize.c
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP_TRUE@am__append_332 = uninorm/u32-normcmp.c
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL_TRUE@am__append_333 = uninorm/u32-normcoll.c
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM_TRUE@am__append_334 = uninorm/u32-normxfrm.c
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE_TRUE@am__append_335 = uninorm/u8-normalize.c
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP_TRUE@am__append_336 = uninorm/u8-normcmp.c
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL_TRUE@am__append_337 = uninorm/u8-normcoll.c
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM_TRUE@am__append_338 = uninorm/u8-normxfrm.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF_TRUE@am__append_339 = unistdio/u16-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF_TRUE@am__append_340 = unistdio/u16-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF_TRUE@am__append_341 = unistdio/u16-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF_TRUE@am__append_342 = unistdio/u16-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF_TRUE@am__append_343 = unistdio/u16-u16-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF_TRUE@am__append_344 = unistdio/u16-u16-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF_TRUE@am__append_345 = unistdio/u16-u16-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF_TRUE@am__append_346 = unistdio/u16-u16-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF_TRUE@am__append_347 = unistdio/u16-u16-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF_TRUE@am__append_348 = unistdio/u16-u16-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF_TRUE@am__append_349 = unistdio/u16-u16-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF_TRUE@am__append_350 = unistdio/u16-u16-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF_TRUE@am__append_351 = unistdio/u16-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF_TRUE@am__append_352 = unistdio/u16-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF_TRUE@am__append_353 = unistdio/u16-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF_TRUE@am__append_354 = unistdio/u16-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF_TRUE@am__append_355 = unistdio/u32-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF_TRUE@am__append_356 = unistdio/u32-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF_TRUE@am__append_357 = unistdio/u32-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF_TRUE@am__append_358 = unistdio/u32-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF_TRUE@am__append_359 = unistdio/u32-u32-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF_TRUE@am__append_360 = unistdio/u32-u32-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF_TRUE@am__append_361 = unistdio/u32-u32-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF_TRUE@am__append_362 = unistdio/u32-u32-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF_TRUE@am__append_363 = unistdio/u32-u32-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF_TRUE@am__append_364 = unistdio/u32-u32-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF_TRUE@am__append_365 = unistdio/u32-u32-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF_TRUE@am__append_366 = unistdio/u32-u32-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF_TRUE@am__append_367 = unistdio/u32-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF_TRUE@am__append_368 = unistdio/u32-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF_TRUE@am__append_369 = unistdio/u32-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF_TRUE@am__append_370 = unistdio/u32-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF_TRUE@am__append_371 = unistdio/u8-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF_TRUE@am__append_372 = unistdio/u8-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF_TRUE@am__append_373 = unistdio/u8-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE@am__append_374 = unistdio/u8-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF_TRUE@am__append_375 = unistdio/u8-u8-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF_TRUE@am__append_376 = unistdio/u8-u8-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF_TRUE@am__append_377 = unistdio/u8-u8-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF_TRUE@am__append_378 = unistdio/u8-u8-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF_TRUE@am__append_379 = unistdio/u8-u8-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF_TRUE@am__append_380 = unistdio/u8-u8-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF_TRUE@am__append_381 = unistdio/u8-u8-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF_TRUE@am__append_382 = unistdio/u8-u8-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE@am__append_383 = unistdio/u8-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF_TRUE@am__append_384 = unistdio/u8-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF_TRUE@am__append_385 = unistdio/u8-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE@am__append_386 = unistdio/u8-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF_TRUE@am__append_387 = unistdio/ulc-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF_TRUE@am__append_388 = unistdio/ulc-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF_TRUE@am__append_389 = unistdio/ulc-fprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF_TRUE@am__append_390 = unistdio/ulc-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF_TRUE@am__append_391 = unistdio/ulc-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF_TRUE@am__append_392 = unistdio/ulc-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF_TRUE@am__append_393 = unistdio/ulc-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF_TRUE@am__append_394 = unistdio/ulc-vfprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF_TRUE@am__append_395 = unistdio/ulc-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF_TRUE@am__append_396 = unistdio/ulc-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_CHECK_TRUE@am__append_397 = unistr/u16-check.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_CHR_TRUE@am__append_398 = unistr/u16-chr.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_CMP_TRUE@am__append_399 = unistr/u16-cmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_CMP2_TRUE@am__append_400 = unistr/u16-cmp2.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_TRUE@am__append_401 = unistr/u16-cpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC_TRUE@am__append_402 = unistr/u16-cpy-alloc.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH_TRUE@am__append_403 = unistr/u16-endswith.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN_TRUE@am__append_404 = unistr/u16-mblen.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN_TRUE@am__append_405 = unistr/u16-mbsnlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_TRUE@am__append_406 = unistr/u16-mbtouc.c unistr/u16-mbtouc-aux.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_TRUE@am__append_407 = unistr/u16-mbtouc-unsafe.c unistr/u16-mbtouc-unsafe-aux.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE@am__append_408 = unistr/u16-mbtoucr.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_MOVE_TRUE@am__append_409 = unistr/u16-move.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_NEXT_TRUE@am__append_410 = unistr/u16-next.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_PCPY_TRUE@am__append_411 = unistr/u16-pcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_PREV_TRUE@am__append_412 = unistr/u16-prev.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_SET_TRUE@am__append_413 = unistr/u16-set.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH_TRUE@am__append_414 = unistr/u16-startswith.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY_TRUE@am__append_415 = unistr/u16-stpcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY_TRUE@am__append_416 = unistr/u16-stpncpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT_TRUE@am__append_417 = unistr/u16-strcat.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR_TRUE@am__append_418 = unistr/u16-strchr.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP_TRUE@am__append_419 = unistr/u16-strcmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL_TRUE@am__append_420 = unistr/u16-strcoll.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY_TRUE@am__append_421 = unistr/u16-strcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN_TRUE@am__append_422 = unistr/u16-strcspn.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP_TRUE@am__append_423 = unistr/u16-strdup.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE@am__append_424 = unistr/u16-strlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE@am__append_425 = unistr/u16-strmblen.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC_TRUE@am__append_426 = unistr/u16-strmbtouc.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT_TRUE@am__append_427 = unistr/u16-strncat.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP_TRUE@am__append_428 = unistr/u16-strncmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY_TRUE@am__append_429 = unistr/u16-strncpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN_TRUE@am__append_430 = unistr/u16-strnlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK_TRUE@am__append_431 = unistr/u16-strpbrk.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR_TRUE@am__append_432 = unistr/u16-strrchr.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN_TRUE@am__append_433 = unistr/u16-strspn.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR_TRUE@am__append_434 = unistr/u16-strstr.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK_TRUE@am__append_435 = unistr/u16-strtok.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32_TRUE@am__append_436 = unistr/u16-to-u32.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE@am__append_437 = unistr/u16-to-u8.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_TRUE@am__append_438 = unistr/u16-uctomb.c unistr/u16-uctomb-aux.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_CHECK_TRUE@am__append_439 = unistr/u32-check.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_CHR_TRUE@am__append_440 = unistr/u32-chr.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_CMP_TRUE@am__append_441 = unistr/u32-cmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_CMP2_TRUE@am__append_442 = unistr/u32-cmp2.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_TRUE@am__append_443 = unistr/u32-cpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC_TRUE@am__append_444 = unistr/u32-cpy-alloc.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH_TRUE@am__append_445 = unistr/u32-endswith.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN_TRUE@am__append_446 = unistr/u32-mblen.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN_TRUE@am__append_447 = unistr/u32-mbsnlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_TRUE@am__append_448 = unistr/u32-mbtouc.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE_TRUE@am__append_449 = unistr/u32-mbtouc-unsafe.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR_TRUE@am__append_450 = unistr/u32-mbtoucr.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_MOVE_TRUE@am__append_451 = unistr/u32-move.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_NEXT_TRUE@am__append_452 = unistr/u32-next.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_PCPY_TRUE@am__append_453 = unistr/u32-pcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_PREV_TRUE@am__append_454 = unistr/u32-prev.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_SET_TRUE@am__append_455 = unistr/u32-set.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH_TRUE@am__append_456 = unistr/u32-startswith.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY_TRUE@am__append_457 = unistr/u32-stpcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY_TRUE@am__append_458 = unistr/u32-stpncpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT_TRUE@am__append_459 = unistr/u32-strcat.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR_TRUE@am__append_460 = unistr/u32-strchr.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP_TRUE@am__append_461 = unistr/u32-strcmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL_TRUE@am__append_462 = unistr/u32-strcoll.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY_TRUE@am__append_463 = unistr/u32-strcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN_TRUE@am__append_464 = unistr/u32-strcspn.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP_TRUE@am__append_465 = unistr/u32-strdup.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE@am__append_466 = unistr/u32-strlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE@am__append_467 = unistr/u32-strmblen.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC_TRUE@am__append_468 = unistr/u32-strmbtouc.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT_TRUE@am__append_469 = unistr/u32-strncat.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP_TRUE@am__append_470 = unistr/u32-strncmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY_TRUE@am__append_471 = unistr/u32-strncpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN_TRUE@am__append_472 = unistr/u32-strnlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK_TRUE@am__append_473 = unistr/u32-strpbrk.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR_TRUE@am__append_474 = unistr/u32-strrchr.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN_TRUE@am__append_475 = unistr/u32-strspn.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR_TRUE@am__append_476 = unistr/u32-strstr.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK_TRUE@am__append_477 = unistr/u32-strtok.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16_TRUE@am__append_478 = unistr/u32-to-u16.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE@am__append_479 = unistr/u32-to-u8.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB_TRUE@am__append_480 = unistr/u32-uctomb.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE@am__append_481 = unistr/u8-check.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_CHR_TRUE@am__append_482 = unistr/u8-chr.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_CMP_TRUE@am__append_483 = unistr/u8-cmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_CMP2_TRUE@am__append_484 = unistr/u8-cmp2.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE@am__append_485 = unistr/u8-cpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC_TRUE@am__append_486 = unistr/u8-cpy-alloc.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH_TRUE@am__append_487 = unistr/u8-endswith.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE@am__append_488 = unistr/u8-mblen.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE@am__append_489 = unistr/u8-mbsnlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE@am__append_490 = unistr/u8-mbtouc.c unistr/u8-mbtouc-aux.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE@am__append_491 = unistr/u8-mbtouc-unsafe.c unistr/u8-mbtouc-unsafe-aux.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__append_492 = unistr/u8-mbtoucr.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_MOVE_TRUE@am__append_493 = unistr/u8-move.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_NEXT_TRUE@am__append_494 = unistr/u8-next.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_PCPY_TRUE@am__append_495 = unistr/u8-pcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE@am__append_496 = unistr/u8-prev.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE@am__append_497 = unistr/u8-set.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH_TRUE@am__append_498 = unistr/u8-startswith.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY_TRUE@am__append_499 = unistr/u8-stpcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY_TRUE@am__append_500 = unistr/u8-stpncpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT_TRUE@am__append_501 = unistr/u8-strcat.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR_TRUE@am__append_502 = unistr/u8-strchr.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP_TRUE@am__append_503 = unistr/u8-strcmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL_TRUE@am__append_504 = unistr/u8-strcoll.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY_TRUE@am__append_505 = unistr/u8-strcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN_TRUE@am__append_506 = unistr/u8-strcspn.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP_TRUE@am__append_507 = unistr/u8-strdup.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE@am__append_508 = unistr/u8-strlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE@am__append_509 = unistr/u8-strmblen.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC_TRUE@am__append_510 = unistr/u8-strmbtouc.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT_TRUE@am__append_511 = unistr/u8-strncat.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP_TRUE@am__append_512 = unistr/u8-strncmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY_TRUE@am__append_513 = unistr/u8-strncpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN_TRUE@am__append_514 = unistr/u8-strnlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK_TRUE@am__append_515 = unistr/u8-strpbrk.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR_TRUE@am__append_516 = unistr/u8-strrchr.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN_TRUE@am__append_517 = unistr/u8-strspn.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR_TRUE@am__append_518 = unistr/u8-strstr.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK_TRUE@am__append_519 = unistr/u8-strtok.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16_TRUE@am__append_520 = unistr/u8-to-u16.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32_TRUE@am__append_521 = unistr/u8-to-u32.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__append_522 = unistr/u8-uctomb.c unistr/u8-uctomb-aux.c
+@LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS_TRUE@am__append_523 = uniwbrk/u16-wordbreaks.c
+@LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS_TRUE@am__append_524 = uniwbrk/u32-wordbreaks.c
+@LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS_TRUE@am__append_525 = uniwbrk/u8-wordbreaks.c
+@LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS_TRUE@am__append_526 = uniwbrk/ulc-wordbreaks.c
+@LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY_TRUE@am__append_527 = uniwbrk/wordbreak-property.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH_TRUE@am__append_528 = uniwidth/u16-strwidth.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH_TRUE@am__append_529 = uniwidth/u16-width.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH_TRUE@am__append_530 = uniwidth/u32-strwidth.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH_TRUE@am__append_531 = uniwidth/u32-width.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH_TRUE@am__append_532 = uniwidth/u8-strwidth.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH_TRUE@am__append_533 = uniwidth/u8-width.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__append_534 = uniwidth/width.c
+@GL_COND_OBJ_WCWIDTH_TRUE@am__append_535 = wcwidth.c
+@GL_COND_OBJ_WINDOWS_MUTEX_TRUE@am__append_536 = windows-mutex.c
+@GL_COND_OBJ_WINDOWS_ONCE_TRUE@am__append_537 = windows-once.c
+@GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE@am__append_538 = windows-recmutex.c
+@GL_COND_OBJ_WINDOWS_RWLOCK_TRUE@am__append_539 = windows-rwlock.c
# Tell the mingw or Cygwin linker which symbols to export.
-@WOE32DLL_TRUE@am__append_539 = ../woe32dll/unistring-exports.c
-@PLATFORM_IS_MSVC_FALSE@@WOE32DLL_TRUE@am__append_540 = -Wl,--export-all-symbols
-@WOE32_TRUE@am__append_541 = libunistring.res.lo
+@WOE32DLL_TRUE@am__append_540 = ../woe32dll/unistring-exports.c
+@PLATFORM_IS_MSVC_FALSE@@WOE32DLL_TRUE@am__append_541 = -Wl,--export-all-symbols
+@WOE32_TRUE@am__append_542 = libunistring.res.lo
subdir = lib
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
@@ -1125,6 +1126,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.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/libdl.m4 \
$(top_srcdir)/gnulib-m4/libunistring-base.m4 \
$(top_srcdir)/gnulib-m4/limits-h.m4 \
$(top_srcdir)/gnulib-m4/localcharset.m4 \
@@ -1225,6 +1227,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
$(top_srcdir)/gnulib-m4/string_h.m4 \
$(top_srcdir)/gnulib-m4/stringeq.m4 \
$(top_srcdir)/gnulib-m4/strncat.m4 \
+ $(top_srcdir)/gnulib-m4/strncpy.m4 \
$(top_srcdir)/gnulib-m4/strstr.m4 \
$(top_srcdir)/gnulib-m4/symlink.m4 \
$(top_srcdir)/gnulib-m4/sys_cdefs_h.m4 \
@@ -1323,7 +1326,7 @@ am__libunistring_la_SOURCES_DIST = amemxfrm.c c-ctype.h c-ctype.c \
setlocale-lock.c setlocale_null-unlocked.c signbitf.c \
signbitd.c signbitl.c size_max.h stdlib.c striconveh.h \
striconveh.c striconveha.h striconveha.c string.c strncat.c \
- glthread/threadlib.c unicase/cased.c \
+ strncpy.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 \
@@ -1619,528 +1622,529 @@ am__dirstamp = $(am__leading_dot)dirstamp
@GL_COND_OBJ_SIGNBIT3_TRUE@ libunistring_la-signbitd.lo \
@GL_COND_OBJ_SIGNBIT3_TRUE@ libunistring_la-signbitl.lo
@GL_COND_OBJ_STRNCAT_TRUE@am__objects_24 = libunistring_la-strncat.lo
-@LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT_TRUE@am__objects_25 = unicase/libunistring_la-empty-prefix-context.lo
-@LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT_TRUE@am__objects_26 = unicase/libunistring_la-empty-suffix-context.lo
-@LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE_TRUE@am__objects_27 = unicase/libunistring_la-locale-language.lo
-@LIBUNISTRING_COMPILE_UNICASE_TOLOWER_TRUE@am__objects_28 = unicase/libunistring_la-tolower.lo
-@LIBUNISTRING_COMPILE_UNICASE_TOTITLE_TRUE@am__objects_29 = unicase/libunistring_la-totitle.lo
-@LIBUNISTRING_COMPILE_UNICASE_TOUPPER_TRUE@am__objects_30 = unicase/libunistring_la-toupper.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP_TRUE@am__objects_31 = unicase/libunistring_la-u16-casecmp.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL_TRUE@am__objects_32 = unicase/libunistring_la-u16-casecoll.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD_TRUE@am__objects_33 = unicase/libunistring_la-u16-casefold.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM_TRUE@am__objects_34 = unicase/libunistring_la-u16-casexfrm.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD_TRUE@am__objects_35 = unicase/libunistring_la-u16-ct-casefold.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER_TRUE@am__objects_36 = unicase/libunistring_la-u16-ct-tolower.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE_TRUE@am__objects_37 = unicase/libunistring_la-u16-ct-totitle.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER_TRUE@am__objects_38 = unicase/libunistring_la-u16-ct-toupper.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED_TRUE@am__objects_39 = unicase/libunistring_la-u16-is-cased.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED_TRUE@am__objects_40 = unicase/libunistring_la-u16-is-casefolded.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE_TRUE@am__objects_41 = unicase/libunistring_la-u16-is-lowercase.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE_TRUE@am__objects_42 = unicase/libunistring_la-u16-is-titlecase.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE_TRUE@am__objects_43 = unicase/libunistring_la-u16-is-uppercase.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_PREFIX_CONTEXT_TRUE@am__objects_44 = unicase/libunistring_la-u16-prefix-context.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_SUFFIX_CONTEXT_TRUE@am__objects_45 = unicase/libunistring_la-u16-suffix-context.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER_TRUE@am__objects_46 = unicase/libunistring_la-u16-tolower.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE_TRUE@am__objects_47 = unicase/libunistring_la-u16-totitle.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER_TRUE@am__objects_48 = unicase/libunistring_la-u16-toupper.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP_TRUE@am__objects_49 = unicase/libunistring_la-u32-casecmp.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL_TRUE@am__objects_50 = unicase/libunistring_la-u32-casecoll.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD_TRUE@am__objects_51 = unicase/libunistring_la-u32-casefold.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM_TRUE@am__objects_52 = unicase/libunistring_la-u32-casexfrm.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD_TRUE@am__objects_53 = unicase/libunistring_la-u32-ct-casefold.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER_TRUE@am__objects_54 = unicase/libunistring_la-u32-ct-tolower.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE_TRUE@am__objects_55 = unicase/libunistring_la-u32-ct-totitle.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER_TRUE@am__objects_56 = unicase/libunistring_la-u32-ct-toupper.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED_TRUE@am__objects_57 = unicase/libunistring_la-u32-is-cased.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED_TRUE@am__objects_58 = unicase/libunistring_la-u32-is-casefolded.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE_TRUE@am__objects_59 = unicase/libunistring_la-u32-is-lowercase.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE_TRUE@am__objects_60 = unicase/libunistring_la-u32-is-titlecase.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE_TRUE@am__objects_61 = unicase/libunistring_la-u32-is-uppercase.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_PREFIX_CONTEXT_TRUE@am__objects_62 = unicase/libunistring_la-u32-prefix-context.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_SUFFIX_CONTEXT_TRUE@am__objects_63 = unicase/libunistring_la-u32-suffix-context.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER_TRUE@am__objects_64 = unicase/libunistring_la-u32-tolower.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE_TRUE@am__objects_65 = unicase/libunistring_la-u32-totitle.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER_TRUE@am__objects_66 = unicase/libunistring_la-u32-toupper.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP_TRUE@am__objects_67 = unicase/libunistring_la-u8-casecmp.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL_TRUE@am__objects_68 = unicase/libunistring_la-u8-casecoll.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD_TRUE@am__objects_69 = unicase/libunistring_la-u8-casefold.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM_TRUE@am__objects_70 = unicase/libunistring_la-u8-casexfrm.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD_TRUE@am__objects_71 = unicase/libunistring_la-u8-ct-casefold.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER_TRUE@am__objects_72 = unicase/libunistring_la-u8-ct-tolower.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE_TRUE@am__objects_73 = unicase/libunistring_la-u8-ct-totitle.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER_TRUE@am__objects_74 = unicase/libunistring_la-u8-ct-toupper.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED_TRUE@am__objects_75 = unicase/libunistring_la-u8-is-cased.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED_TRUE@am__objects_76 = unicase/libunistring_la-u8-is-casefolded.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE_TRUE@am__objects_77 = unicase/libunistring_la-u8-is-lowercase.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE_TRUE@am__objects_78 = unicase/libunistring_la-u8-is-titlecase.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE_TRUE@am__objects_79 = unicase/libunistring_la-u8-is-uppercase.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_PREFIX_CONTEXT_TRUE@am__objects_80 = unicase/libunistring_la-u8-prefix-context.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_SUFFIX_CONTEXT_TRUE@am__objects_81 = unicase/libunistring_la-u8-suffix-context.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER_TRUE@am__objects_82 = unicase/libunistring_la-u8-tolower.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE_TRUE@am__objects_83 = unicase/libunistring_la-u8-totitle.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER_TRUE@am__objects_84 = unicase/libunistring_la-u8-toupper.lo
-@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP_TRUE@am__objects_85 = unicase/libunistring_la-ulc-casecmp.lo
-@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL_TRUE@am__objects_86 = unicase/libunistring_la-ulc-casecoll.lo
-@LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM_TRUE@am__objects_87 = unicase/libunistring_la-ulc-casexfrm.lo
-@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC_TRUE@am__objects_88 = uniconv/libunistring_la-u16-conv-from-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC_TRUE@am__objects_89 = uniconv/libunistring_la-u16-conv-to-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC_TRUE@am__objects_90 = uniconv/libunistring_la-u16-strconv-from-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE_TRUE@am__objects_91 = uniconv/libunistring_la-u16-strconv-from-locale.lo
-@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC_TRUE@am__objects_92 = uniconv/libunistring_la-u16-strconv-to-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE_TRUE@am__objects_93 = uniconv/libunistring_la-u16-strconv-to-locale.lo
-@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC_TRUE@am__objects_94 = uniconv/libunistring_la-u32-conv-from-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC_TRUE@am__objects_95 = uniconv/libunistring_la-u32-conv-to-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC_TRUE@am__objects_96 = uniconv/libunistring_la-u32-strconv-from-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE_TRUE@am__objects_97 = uniconv/libunistring_la-u32-strconv-from-locale.lo
-@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC_TRUE@am__objects_98 = uniconv/libunistring_la-u32-strconv-to-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE_TRUE@am__objects_99 = uniconv/libunistring_la-u32-strconv-to-locale.lo
-@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE@am__objects_100 = uniconv/libunistring_la-u8-conv-from-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC_TRUE@am__objects_101 = uniconv/libunistring_la-u8-conv-to-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC_TRUE@am__objects_102 = uniconv/libunistring_la-u8-strconv-from-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE_TRUE@am__objects_103 = uniconv/libunistring_la-u8-strconv-from-locale.lo
-@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC_TRUE@am__objects_104 = uniconv/libunistring_la-u8-strconv-to-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE_TRUE@am__objects_105 = uniconv/libunistring_la-u8-strconv-to-locale.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME_TRUE@am__objects_106 = unictype/libunistring_la-bidi_byname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME_TRUE@am__objects_107 = unictype/libunistring_la-bidi_longname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME_TRUE@am__objects_108 = unictype/libunistring_la-bidi_name.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF_TRUE@am__objects_109 = unictype/libunistring_la-bidi_of.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST_TRUE@am__objects_110 = unictype/libunistring_la-bidi_test.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST_TRUE@am__objects_111 = unictype/libunistring_la-blocks.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST_TRUE@am__objects_112 = unictype/libunistring_la-block_test.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C_TRUE@am__objects_113 = unictype/libunistring_la-categ_C.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC_TRUE@am__objects_114 = unictype/libunistring_la-categ_Cc.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF_TRUE@am__objects_115 = unictype/libunistring_la-categ_Cf.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN_TRUE@am__objects_116 = unictype/libunistring_la-categ_Cn.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO_TRUE@am__objects_117 = unictype/libunistring_la-categ_Co.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS_TRUE@am__objects_118 = unictype/libunistring_la-categ_Cs.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L_TRUE@am__objects_119 = unictype/libunistring_la-categ_L.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC_TRUE@am__objects_120 = unictype/libunistring_la-categ_LC.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL_TRUE@am__objects_121 = unictype/libunistring_la-categ_Ll.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM_TRUE@am__objects_122 = unictype/libunistring_la-categ_Lm.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO_TRUE@am__objects_123 = unictype/libunistring_la-categ_Lo.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT_TRUE@am__objects_124 = unictype/libunistring_la-categ_Lt.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU_TRUE@am__objects_125 = unictype/libunistring_la-categ_Lu.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M_TRUE@am__objects_126 = unictype/libunistring_la-categ_M.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC_TRUE@am__objects_127 = unictype/libunistring_la-categ_Mc.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME_TRUE@am__objects_128 = unictype/libunistring_la-categ_Me.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN_TRUE@am__objects_129 = unictype/libunistring_la-categ_Mn.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N_TRUE@am__objects_130 = unictype/libunistring_la-categ_N.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND_TRUE@am__objects_131 = unictype/libunistring_la-categ_Nd.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL_TRUE@am__objects_132 = unictype/libunistring_la-categ_Nl.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO_TRUE@am__objects_133 = unictype/libunistring_la-categ_No.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P_TRUE@am__objects_134 = unictype/libunistring_la-categ_P.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC_TRUE@am__objects_135 = unictype/libunistring_la-categ_Pc.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD_TRUE@am__objects_136 = unictype/libunistring_la-categ_Pd.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE_TRUE@am__objects_137 = unictype/libunistring_la-categ_Pe.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF_TRUE@am__objects_138 = unictype/libunistring_la-categ_Pf.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI_TRUE@am__objects_139 = unictype/libunistring_la-categ_Pi.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO_TRUE@am__objects_140 = unictype/libunistring_la-categ_Po.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS_TRUE@am__objects_141 = unictype/libunistring_la-categ_Ps.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S_TRUE@am__objects_142 = unictype/libunistring_la-categ_S.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC_TRUE@am__objects_143 = unictype/libunistring_la-categ_Sc.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK_TRUE@am__objects_144 = unictype/libunistring_la-categ_Sk.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM_TRUE@am__objects_145 = unictype/libunistring_la-categ_Sm.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO_TRUE@am__objects_146 = unictype/libunistring_la-categ_So.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z_TRUE@am__objects_147 = unictype/libunistring_la-categ_Z.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL_TRUE@am__objects_148 = unictype/libunistring_la-categ_Zl.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP_TRUE@am__objects_149 = unictype/libunistring_la-categ_Zp.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS_TRUE@am__objects_150 = unictype/libunistring_la-categ_Zs.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_TRUE@am__objects_151 = unictype/libunistring_la-categ_and.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT_TRUE@am__objects_152 = unictype/libunistring_la-categ_and_not.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME_TRUE@am__objects_153 = unictype/libunistring_la-categ_byname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME_TRUE@am__objects_154 = unictype/libunistring_la-categ_longname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME_TRUE@am__objects_155 = unictype/libunistring_la-categ_name.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF_TRUE@am__objects_156 = unictype/libunistring_la-categ_of.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR_TRUE@am__objects_157 = unictype/libunistring_la-categ_or.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST_TRUE@am__objects_158 = unictype/libunistring_la-categ_test.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_TRUE@am__objects_159 = unictype/libunistring_la-combiningclass.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME_TRUE@am__objects_160 = unictype/libunistring_la-combiningclass_byname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME_TRUE@am__objects_161 = unictype/libunistring_la-combiningclass_longname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME_TRUE@am__objects_162 = unictype/libunistring_la-combiningclass_name.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM_TRUE@am__objects_163 = unictype/libunistring_la-ctype_alnum.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA_TRUE@am__objects_164 = unictype/libunistring_la-ctype_alpha.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK_TRUE@am__objects_165 = unictype/libunistring_la-ctype_blank.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL_TRUE@am__objects_166 = unictype/libunistring_la-ctype_cntrl.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT_TRUE@am__objects_167 = unictype/libunistring_la-ctype_digit.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH_TRUE@am__objects_168 = unictype/libunistring_la-ctype_graph.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER_TRUE@am__objects_169 = unictype/libunistring_la-ctype_lower.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT_TRUE@am__objects_170 = unictype/libunistring_la-ctype_print.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT_TRUE@am__objects_171 = unictype/libunistring_la-ctype_punct.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE_TRUE@am__objects_172 = unictype/libunistring_la-ctype_space.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER_TRUE@am__objects_173 = unictype/libunistring_la-ctype_upper.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT_TRUE@am__objects_174 = unictype/libunistring_la-ctype_xdigit.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT_TRUE@am__objects_175 = unictype/libunistring_la-decdigit.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_DIGIT_TRUE@am__objects_176 = unictype/libunistring_la-digit.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_INCB_BYNAME_TRUE@am__objects_177 = unictype/libunistring_la-incb_byname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_INCB_NAME_TRUE@am__objects_178 = unictype/libunistring_la-incb_name.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_INCB_OF_TRUE@am__objects_179 = unictype/libunistring_la-incb_of.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME_TRUE@am__objects_180 = unictype/libunistring_la-joininggroup_byname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME_TRUE@am__objects_181 = unictype/libunistring_la-joininggroup_name.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF_TRUE@am__objects_182 = unictype/libunistring_la-joininggroup_of.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME_TRUE@am__objects_183 = unictype/libunistring_la-joiningtype_byname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME_TRUE@am__objects_184 = unictype/libunistring_la-joiningtype_longname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME_TRUE@am__objects_185 = unictype/libunistring_la-joiningtype_name.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF_TRUE@am__objects_186 = unictype/libunistring_la-joiningtype_of.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_MIRROR_TRUE@am__objects_187 = unictype/libunistring_la-mirror.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC_TRUE@am__objects_188 = unictype/libunistring_la-numeric.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC_TRUE@am__objects_189 = unictype/libunistring_la-pr_alphabetic.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_TRUE@am__objects_190 = unictype/libunistring_la-pr_ascii_hex_digit.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_TRUE@am__objects_191 = unictype/libunistring_la-pr_bidi_arabic_digit.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_TRUE@am__objects_192 = unictype/libunistring_la-pr_bidi_arabic_right_to_left.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_TRUE@am__objects_193 = unictype/libunistring_la-pr_bidi_block_separator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_TRUE@am__objects_194 = unictype/libunistring_la-pr_bidi_boundary_neutral.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_TRUE@am__objects_195 = unictype/libunistring_la-pr_bidi_common_separator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL_TRUE@am__objects_196 = unictype/libunistring_la-pr_bidi_control.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_TRUE@am__objects_197 = unictype/libunistring_la-pr_bidi_embedding_or_override.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_TRUE@am__objects_198 = unictype/libunistring_la-pr_bidi_eur_num_separator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_TRUE@am__objects_199 = unictype/libunistring_la-pr_bidi_eur_num_terminator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_TRUE@am__objects_200 = unictype/libunistring_la-pr_bidi_european_digit.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_TRUE@am__objects_201 = unictype/libunistring_la-pr_bidi_hebrew_right_to_left.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_TRUE@am__objects_202 = unictype/libunistring_la-pr_bidi_left_to_right.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_TRUE@am__objects_203 = unictype/libunistring_la-pr_bidi_non_spacing_mark.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_TRUE@am__objects_204 = unictype/libunistring_la-pr_bidi_other_neutral.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF_TRUE@am__objects_205 = unictype/libunistring_la-pr_bidi_pdf.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_TRUE@am__objects_206 = unictype/libunistring_la-pr_bidi_segment_separator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE_TRUE@am__objects_207 = unictype/libunistring_la-pr_bidi_whitespace.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME_TRUE@am__objects_208 = unictype/libunistring_la-pr_byname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE_TRUE@am__objects_209 = unictype/libunistring_la-pr_case_ignorable.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED_TRUE@am__objects_210 = unictype/libunistring_la-pr_cased.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_TRUE@am__objects_211 = unictype/libunistring_la-pr_changes_when_casefolded.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_TRUE@am__objects_212 = unictype/libunistring_la-pr_changes_when_casemapped.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_TRUE@am__objects_213 = unictype/libunistring_la-pr_changes_when_lowercased.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_TRUE@am__objects_214 = unictype/libunistring_la-pr_changes_when_titlecased.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_TRUE@am__objects_215 = unictype/libunistring_la-pr_changes_when_uppercased.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING_TRUE@am__objects_216 = unictype/libunistring_la-pr_combining.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE_TRUE@am__objects_217 = unictype/libunistring_la-pr_composite.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_TRUE@am__objects_218 = unictype/libunistring_la-pr_currency_symbol.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH_TRUE@am__objects_219 = unictype/libunistring_la-pr_dash.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT_TRUE@am__objects_220 = unictype/libunistring_la-pr_decimal_digit.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__objects_221 = unictype/libunistring_la-pr_default_ignorable_code_point.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED_TRUE@am__objects_222 = unictype/libunistring_la-pr_deprecated.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC_TRUE@am__objects_223 = unictype/libunistring_la-pr_diacritic.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_TRUE@am__objects_224 = unictype/libunistring_la-pr_emoji.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_COMPONENT_TRUE@am__objects_225 = unictype/libunistring_la-pr_emoji_component.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_MODIFIER_TRUE@am__objects_226 = unictype/libunistring_la-pr_emoji_modifier.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_MODIFIER_BASE_TRUE@am__objects_227 = unictype/libunistring_la-pr_emoji_modifier_base.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_PRESENTATION_TRUE@am__objects_228 = unictype/libunistring_la-pr_emoji_presentation.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDED_PICTOGRAPHIC_TRUE@am__objects_229 = unictype/libunistring_la-pr_extended_pictographic.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER_TRUE@am__objects_230 = unictype/libunistring_la-pr_extender.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL_TRUE@am__objects_231 = unictype/libunistring_la-pr_format_control.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE_TRUE@am__objects_232 = unictype/libunistring_la-pr_grapheme_base.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_TRUE@am__objects_233 = unictype/libunistring_la-pr_grapheme_extend.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK_TRUE@am__objects_234 = unictype/libunistring_la-pr_grapheme_link.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT_TRUE@am__objects_235 = unictype/libunistring_la-pr_hex_digit.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN_TRUE@am__objects_236 = unictype/libunistring_la-pr_hyphen.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_COMPAT_MATH_CONTINUE_TRUE@am__objects_237 = unictype/libunistring_la-pr_id_compat_math_continue.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_COMPAT_MATH_START_TRUE@am__objects_238 = unictype/libunistring_la-pr_id_compat_math_start.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE_TRUE@am__objects_239 = unictype/libunistring_la-pr_id_continue.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START_TRUE@am__objects_240 = unictype/libunistring_la-pr_id_start.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC_TRUE@am__objects_241 = unictype/libunistring_la-pr_ideographic.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_TRUE@am__objects_242 = unictype/libunistring_la-pr_ids_binary_operator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_TRUE@am__objects_243 = unictype/libunistring_la-pr_ids_trinary_operator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_UNARY_OPERATOR_TRUE@am__objects_244 = unictype/libunistring_la-pr_ids_unary_operator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_TRUE@am__objects_245 = unictype/libunistring_la-pr_ignorable_control.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL_TRUE@am__objects_246 = unictype/libunistring_la-pr_iso_control.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL_TRUE@am__objects_247 = unictype/libunistring_la-pr_join_control.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR_TRUE@am__objects_248 = unictype/libunistring_la-pr_left_of_pair.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR_TRUE@am__objects_249 = unictype/libunistring_la-pr_line_separator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_TRUE@am__objects_250 = unictype/libunistring_la-pr_logical_order_exception.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE_TRUE@am__objects_251 = unictype/libunistring_la-pr_lowercase.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH_TRUE@am__objects_252 = unictype/libunistring_la-pr_math.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MODIFIER_COMBINING_MARK_TRUE@am__objects_253 = unictype/libunistring_la-pr_modifier_combining_mark.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK_TRUE@am__objects_254 = unictype/libunistring_la-pr_non_break.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER_TRUE@am__objects_255 = unictype/libunistring_la-pr_not_a_character.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC_TRUE@am__objects_256 = unictype/libunistring_la-pr_numeric.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_TRUE@am__objects_257 = unictype/libunistring_la-pr_other_alphabetic.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__objects_258 = unictype/libunistring_la-pr_other_default_ignorable_code_point.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_TRUE@am__objects_259 = unictype/libunistring_la-pr_other_grapheme_extend.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_TRUE@am__objects_260 = unictype/libunistring_la-pr_other_id_continue.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START_TRUE@am__objects_261 = unictype/libunistring_la-pr_other_id_start.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE_TRUE@am__objects_262 = unictype/libunistring_la-pr_other_lowercase.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH_TRUE@am__objects_263 = unictype/libunistring_la-pr_other_math.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE_TRUE@am__objects_264 = unictype/libunistring_la-pr_other_uppercase.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_TRUE@am__objects_265 = unictype/libunistring_la-pr_paired_punctuation.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_TRUE@am__objects_266 = unictype/libunistring_la-pr_paragraph_separator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX_TRUE@am__objects_267 = unictype/libunistring_la-pr_pattern_syntax.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_TRUE@am__objects_268 = unictype/libunistring_la-pr_pattern_white_space.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PREPENDED_CONCATENATION_MARK_TRUE@am__objects_269 = unictype/libunistring_la-pr_prepended_concatenation_mark.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE_TRUE@am__objects_270 = unictype/libunistring_la-pr_private_use.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION_TRUE@am__objects_271 = unictype/libunistring_la-pr_punctuation.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK_TRUE@am__objects_272 = unictype/libunistring_la-pr_quotation_mark.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL_TRUE@am__objects_273 = unictype/libunistring_la-pr_radical.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_REGIONAL_INDICATOR_TRUE@am__objects_274 = unictype/libunistring_la-pr_regional_indicator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_TRUE@am__objects_275 = unictype/libunistring_la-pr_sentence_terminal.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED_TRUE@am__objects_276 = unictype/libunistring_la-pr_soft_dotted.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE_TRUE@am__objects_277 = unictype/libunistring_la-pr_space.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_TRUE@am__objects_278 = unictype/libunistring_la-pr_terminal_punctuation.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST_TRUE@am__objects_279 = unictype/libunistring_la-pr_test.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE_TRUE@am__objects_280 = unictype/libunistring_la-pr_titlecase.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_TRUE@am__objects_281 = unictype/libunistring_la-pr_unassigned_code_value.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_TRUE@am__objects_282 = unictype/libunistring_la-pr_unified_ideograph.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE_TRUE@am__objects_283 = unictype/libunistring_la-pr_uppercase.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR_TRUE@am__objects_284 = unictype/libunistring_la-pr_variation_selector.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE_TRUE@am__objects_285 = unictype/libunistring_la-pr_white_space.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE_TRUE@am__objects_286 = unictype/libunistring_la-pr_xid_continue.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START_TRUE@am__objects_287 = unictype/libunistring_la-pr_xid_start.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH_TRUE@am__objects_288 = unictype/libunistring_la-pr_zero_width.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS_TRUE@am__objects_289 = unictype/libunistring_la-scripts.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT_TRUE@am__objects_290 = unictype/libunistring_la-sy_c_ident.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE_TRUE@am__objects_291 = unictype/libunistring_la-sy_c_whitespace.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT_TRUE@am__objects_292 = unictype/libunistring_la-sy_java_ident.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE_TRUE@am__objects_293 = unictype/libunistring_la-sy_java_whitespace.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS_TRUE@am__objects_294 = unigbrk/libunistring_la-u16-grapheme-breaks.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT_TRUE@am__objects_295 = unigbrk/libunistring_la-u16-grapheme-next.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV_TRUE@am__objects_296 = unigbrk/libunistring_la-u16-grapheme-prev.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS_TRUE@am__objects_297 = unigbrk/libunistring_la-u32-grapheme-breaks.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT_TRUE@am__objects_298 = unigbrk/libunistring_la-u32-grapheme-next.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV_TRUE@am__objects_299 = unigbrk/libunistring_la-u32-grapheme-prev.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS_TRUE@am__objects_300 = unigbrk/libunistring_la-u8-grapheme-breaks.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT_TRUE@am__objects_301 = unigbrk/libunistring_la-u8-grapheme-next.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV_TRUE@am__objects_302 = unigbrk/libunistring_la-u8-grapheme-prev.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP_TRUE@am__objects_303 = unigbrk/libunistring_la-uc-gbrk-prop.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_UC_GRAPHEME_BREAKS_TRUE@am__objects_304 = unigbrk/libunistring_la-uc-grapheme-breaks.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK_TRUE@am__objects_305 = unigbrk/libunistring_la-uc-is-grapheme-break.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS_TRUE@am__objects_306 = unigbrk/libunistring_la-ulc-grapheme-breaks.lo
-@LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS_TRUE@am__objects_307 = unilbrk/libunistring_la-u16-possible-linebreaks.lo
-@LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS_TRUE@am__objects_308 = unilbrk/libunistring_la-u16-width-linebreaks.lo
-@LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS_TRUE@am__objects_309 = unilbrk/libunistring_la-u32-possible-linebreaks.lo
-@LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS_TRUE@am__objects_310 = unilbrk/libunistring_la-u32-width-linebreaks.lo
-@LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS_TRUE@am__objects_311 = unilbrk/libunistring_la-u8-possible-linebreaks.lo
-@LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS_TRUE@am__objects_312 = unilbrk/libunistring_la-u8-width-linebreaks.lo
-@LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS_TRUE@am__objects_313 = unilbrk/libunistring_la-ulc-possible-linebreaks.lo
-@LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS_TRUE@am__objects_314 = unilbrk/libunistring_la-ulc-width-linebreaks.lo
-@LIBUNISTRING_COMPILE_UNIMETADATA_U_VERSION_TRUE@am__objects_315 = unimetadata/libunistring_la-u-version.lo
-@LIBUNISTRING_COMPILE_UNINAME_UNINAME_TRUE@am__objects_316 = uniname/libunistring_la-uniname.lo
-@LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION_TRUE@am__objects_317 = uninorm/libunistring_la-canonical-decomposition.lo
-@LIBUNISTRING_COMPILE_UNINORM_COMPOSITION_TRUE@am__objects_318 = uninorm/libunistring_la-composition.lo
-@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM_TRUE@am__objects_319 = uninorm/libunistring_la-decomposing-form.lo
-@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION_TRUE@am__objects_320 = uninorm/libunistring_la-decomposition.lo
-@LIBUNISTRING_COMPILE_UNINORM_FILTER_TRUE@am__objects_321 = uninorm/libunistring_la-uninorm-filter.lo
-@LIBUNISTRING_COMPILE_UNINORM_NFC_TRUE@am__objects_322 = uninorm/libunistring_la-nfc.lo
-@LIBUNISTRING_COMPILE_UNINORM_NFD_TRUE@am__objects_323 = uninorm/libunistring_la-nfd.lo
-@LIBUNISTRING_COMPILE_UNINORM_NFKC_TRUE@am__objects_324 = uninorm/libunistring_la-nfkc.lo
-@LIBUNISTRING_COMPILE_UNINORM_NFKD_TRUE@am__objects_325 = uninorm/libunistring_la-nfkd.lo
-@LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE_TRUE@am__objects_326 = uninorm/libunistring_la-u16-normalize.lo
-@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP_TRUE@am__objects_327 = uninorm/libunistring_la-u16-normcmp.lo
-@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL_TRUE@am__objects_328 = uninorm/libunistring_la-u16-normcoll.lo
-@LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM_TRUE@am__objects_329 = uninorm/libunistring_la-u16-normxfrm.lo
-@LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE_TRUE@am__objects_330 = uninorm/libunistring_la-u32-normalize.lo
-@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP_TRUE@am__objects_331 = uninorm/libunistring_la-u32-normcmp.lo
-@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL_TRUE@am__objects_332 = uninorm/libunistring_la-u32-normcoll.lo
-@LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM_TRUE@am__objects_333 = uninorm/libunistring_la-u32-normxfrm.lo
-@LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE_TRUE@am__objects_334 = uninorm/libunistring_la-u8-normalize.lo
-@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP_TRUE@am__objects_335 = uninorm/libunistring_la-u8-normcmp.lo
-@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL_TRUE@am__objects_336 = uninorm/libunistring_la-u8-normcoll.lo
-@LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM_TRUE@am__objects_337 = uninorm/libunistring_la-u8-normxfrm.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF_TRUE@am__objects_338 = unistdio/libunistring_la-u16-asnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF_TRUE@am__objects_339 = unistdio/libunistring_la-u16-asprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF_TRUE@am__objects_340 = unistdio/libunistring_la-u16-snprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF_TRUE@am__objects_341 = unistdio/libunistring_la-u16-sprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF_TRUE@am__objects_342 = unistdio/libunistring_la-u16-u16-asnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF_TRUE@am__objects_343 = unistdio/libunistring_la-u16-u16-asprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF_TRUE@am__objects_344 = unistdio/libunistring_la-u16-u16-snprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF_TRUE@am__objects_345 = unistdio/libunistring_la-u16-u16-sprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF_TRUE@am__objects_346 = unistdio/libunistring_la-u16-u16-vasnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF_TRUE@am__objects_347 = unistdio/libunistring_la-u16-u16-vasprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF_TRUE@am__objects_348 = unistdio/libunistring_la-u16-u16-vsnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF_TRUE@am__objects_349 = unistdio/libunistring_la-u16-u16-vsprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF_TRUE@am__objects_350 = unistdio/libunistring_la-u16-vasnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF_TRUE@am__objects_351 = unistdio/libunistring_la-u16-vasprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF_TRUE@am__objects_352 = unistdio/libunistring_la-u16-vsnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF_TRUE@am__objects_353 = unistdio/libunistring_la-u16-vsprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF_TRUE@am__objects_354 = unistdio/libunistring_la-u32-asnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF_TRUE@am__objects_355 = unistdio/libunistring_la-u32-asprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF_TRUE@am__objects_356 = unistdio/libunistring_la-u32-snprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF_TRUE@am__objects_357 = unistdio/libunistring_la-u32-sprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF_TRUE@am__objects_358 = unistdio/libunistring_la-u32-u32-asnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF_TRUE@am__objects_359 = unistdio/libunistring_la-u32-u32-asprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF_TRUE@am__objects_360 = unistdio/libunistring_la-u32-u32-snprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF_TRUE@am__objects_361 = unistdio/libunistring_la-u32-u32-sprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF_TRUE@am__objects_362 = unistdio/libunistring_la-u32-u32-vasnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF_TRUE@am__objects_363 = unistdio/libunistring_la-u32-u32-vasprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF_TRUE@am__objects_364 = unistdio/libunistring_la-u32-u32-vsnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF_TRUE@am__objects_365 = unistdio/libunistring_la-u32-u32-vsprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF_TRUE@am__objects_366 = unistdio/libunistring_la-u32-vasnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF_TRUE@am__objects_367 = unistdio/libunistring_la-u32-vasprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF_TRUE@am__objects_368 = unistdio/libunistring_la-u32-vsnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF_TRUE@am__objects_369 = unistdio/libunistring_la-u32-vsprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF_TRUE@am__objects_370 = unistdio/libunistring_la-u8-asnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF_TRUE@am__objects_371 = unistdio/libunistring_la-u8-asprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF_TRUE@am__objects_372 = unistdio/libunistring_la-u8-snprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE@am__objects_373 = unistdio/libunistring_la-u8-sprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF_TRUE@am__objects_374 = unistdio/libunistring_la-u8-u8-asnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF_TRUE@am__objects_375 = unistdio/libunistring_la-u8-u8-asprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF_TRUE@am__objects_376 = unistdio/libunistring_la-u8-u8-snprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF_TRUE@am__objects_377 = unistdio/libunistring_la-u8-u8-sprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF_TRUE@am__objects_378 = unistdio/libunistring_la-u8-u8-vasnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF_TRUE@am__objects_379 = unistdio/libunistring_la-u8-u8-vasprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF_TRUE@am__objects_380 = unistdio/libunistring_la-u8-u8-vsnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF_TRUE@am__objects_381 = unistdio/libunistring_la-u8-u8-vsprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE@am__objects_382 = unistdio/libunistring_la-u8-vasnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF_TRUE@am__objects_383 = unistdio/libunistring_la-u8-vasprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF_TRUE@am__objects_384 = unistdio/libunistring_la-u8-vsnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE@am__objects_385 = unistdio/libunistring_la-u8-vsprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF_TRUE@am__objects_386 = unistdio/libunistring_la-ulc-asnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF_TRUE@am__objects_387 = unistdio/libunistring_la-ulc-asprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF_TRUE@am__objects_388 = unistdio/libunistring_la-ulc-fprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF_TRUE@am__objects_389 = unistdio/libunistring_la-ulc-snprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF_TRUE@am__objects_390 = unistdio/libunistring_la-ulc-sprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF_TRUE@am__objects_391 = unistdio/libunistring_la-ulc-vasnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF_TRUE@am__objects_392 = unistdio/libunistring_la-ulc-vasprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF_TRUE@am__objects_393 = unistdio/libunistring_la-ulc-vfprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF_TRUE@am__objects_394 = unistdio/libunistring_la-ulc-vsnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF_TRUE@am__objects_395 = unistdio/libunistring_la-ulc-vsprintf.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_CHECK_TRUE@am__objects_396 = unistr/libunistring_la-u16-check.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_CHR_TRUE@am__objects_397 = unistr/libunistring_la-u16-chr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_CMP_TRUE@am__objects_398 = unistr/libunistring_la-u16-cmp.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_CMP2_TRUE@am__objects_399 = unistr/libunistring_la-u16-cmp2.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_TRUE@am__objects_400 = unistr/libunistring_la-u16-cpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC_TRUE@am__objects_401 = unistr/libunistring_la-u16-cpy-alloc.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH_TRUE@am__objects_402 = unistr/libunistring_la-u16-endswith.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN_TRUE@am__objects_403 = unistr/libunistring_la-u16-mblen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN_TRUE@am__objects_404 = unistr/libunistring_la-u16-mbsnlen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_TRUE@am__objects_405 = unistr/libunistring_la-u16-mbtouc.lo \
+@GL_COND_OBJ_STRNCPY_TRUE@am__objects_25 = libunistring_la-strncpy.lo
+@LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT_TRUE@am__objects_26 = unicase/libunistring_la-empty-prefix-context.lo
+@LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT_TRUE@am__objects_27 = unicase/libunistring_la-empty-suffix-context.lo
+@LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE_TRUE@am__objects_28 = unicase/libunistring_la-locale-language.lo
+@LIBUNISTRING_COMPILE_UNICASE_TOLOWER_TRUE@am__objects_29 = unicase/libunistring_la-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_TOTITLE_TRUE@am__objects_30 = unicase/libunistring_la-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_TOUPPER_TRUE@am__objects_31 = unicase/libunistring_la-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP_TRUE@am__objects_32 = unicase/libunistring_la-u16-casecmp.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL_TRUE@am__objects_33 = unicase/libunistring_la-u16-casecoll.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD_TRUE@am__objects_34 = unicase/libunistring_la-u16-casefold.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM_TRUE@am__objects_35 = unicase/libunistring_la-u16-casexfrm.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD_TRUE@am__objects_36 = unicase/libunistring_la-u16-ct-casefold.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER_TRUE@am__objects_37 = unicase/libunistring_la-u16-ct-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE_TRUE@am__objects_38 = unicase/libunistring_la-u16-ct-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER_TRUE@am__objects_39 = unicase/libunistring_la-u16-ct-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED_TRUE@am__objects_40 = unicase/libunistring_la-u16-is-cased.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED_TRUE@am__objects_41 = unicase/libunistring_la-u16-is-casefolded.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE_TRUE@am__objects_42 = unicase/libunistring_la-u16-is-lowercase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE_TRUE@am__objects_43 = unicase/libunistring_la-u16-is-titlecase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE_TRUE@am__objects_44 = unicase/libunistring_la-u16-is-uppercase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_PREFIX_CONTEXT_TRUE@am__objects_45 = unicase/libunistring_la-u16-prefix-context.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_SUFFIX_CONTEXT_TRUE@am__objects_46 = unicase/libunistring_la-u16-suffix-context.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER_TRUE@am__objects_47 = unicase/libunistring_la-u16-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE_TRUE@am__objects_48 = unicase/libunistring_la-u16-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER_TRUE@am__objects_49 = unicase/libunistring_la-u16-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP_TRUE@am__objects_50 = unicase/libunistring_la-u32-casecmp.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL_TRUE@am__objects_51 = unicase/libunistring_la-u32-casecoll.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD_TRUE@am__objects_52 = unicase/libunistring_la-u32-casefold.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM_TRUE@am__objects_53 = unicase/libunistring_la-u32-casexfrm.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD_TRUE@am__objects_54 = unicase/libunistring_la-u32-ct-casefold.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER_TRUE@am__objects_55 = unicase/libunistring_la-u32-ct-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE_TRUE@am__objects_56 = unicase/libunistring_la-u32-ct-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER_TRUE@am__objects_57 = unicase/libunistring_la-u32-ct-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED_TRUE@am__objects_58 = unicase/libunistring_la-u32-is-cased.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED_TRUE@am__objects_59 = unicase/libunistring_la-u32-is-casefolded.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE_TRUE@am__objects_60 = unicase/libunistring_la-u32-is-lowercase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE_TRUE@am__objects_61 = unicase/libunistring_la-u32-is-titlecase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE_TRUE@am__objects_62 = unicase/libunistring_la-u32-is-uppercase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_PREFIX_CONTEXT_TRUE@am__objects_63 = unicase/libunistring_la-u32-prefix-context.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_SUFFIX_CONTEXT_TRUE@am__objects_64 = unicase/libunistring_la-u32-suffix-context.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER_TRUE@am__objects_65 = unicase/libunistring_la-u32-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE_TRUE@am__objects_66 = unicase/libunistring_la-u32-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER_TRUE@am__objects_67 = unicase/libunistring_la-u32-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP_TRUE@am__objects_68 = unicase/libunistring_la-u8-casecmp.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL_TRUE@am__objects_69 = unicase/libunistring_la-u8-casecoll.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD_TRUE@am__objects_70 = unicase/libunistring_la-u8-casefold.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM_TRUE@am__objects_71 = unicase/libunistring_la-u8-casexfrm.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD_TRUE@am__objects_72 = unicase/libunistring_la-u8-ct-casefold.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER_TRUE@am__objects_73 = unicase/libunistring_la-u8-ct-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE_TRUE@am__objects_74 = unicase/libunistring_la-u8-ct-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER_TRUE@am__objects_75 = unicase/libunistring_la-u8-ct-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED_TRUE@am__objects_76 = unicase/libunistring_la-u8-is-cased.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED_TRUE@am__objects_77 = unicase/libunistring_la-u8-is-casefolded.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE_TRUE@am__objects_78 = unicase/libunistring_la-u8-is-lowercase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE_TRUE@am__objects_79 = unicase/libunistring_la-u8-is-titlecase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE_TRUE@am__objects_80 = unicase/libunistring_la-u8-is-uppercase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_PREFIX_CONTEXT_TRUE@am__objects_81 = unicase/libunistring_la-u8-prefix-context.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_SUFFIX_CONTEXT_TRUE@am__objects_82 = unicase/libunistring_la-u8-suffix-context.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER_TRUE@am__objects_83 = unicase/libunistring_la-u8-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE_TRUE@am__objects_84 = unicase/libunistring_la-u8-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER_TRUE@am__objects_85 = unicase/libunistring_la-u8-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP_TRUE@am__objects_86 = unicase/libunistring_la-ulc-casecmp.lo
+@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL_TRUE@am__objects_87 = unicase/libunistring_la-ulc-casecoll.lo
+@LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM_TRUE@am__objects_88 = unicase/libunistring_la-ulc-casexfrm.lo
+@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC_TRUE@am__objects_89 = uniconv/libunistring_la-u16-conv-from-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC_TRUE@am__objects_90 = uniconv/libunistring_la-u16-conv-to-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC_TRUE@am__objects_91 = uniconv/libunistring_la-u16-strconv-from-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE_TRUE@am__objects_92 = uniconv/libunistring_la-u16-strconv-from-locale.lo
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC_TRUE@am__objects_93 = uniconv/libunistring_la-u16-strconv-to-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE_TRUE@am__objects_94 = uniconv/libunistring_la-u16-strconv-to-locale.lo
+@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC_TRUE@am__objects_95 = uniconv/libunistring_la-u32-conv-from-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC_TRUE@am__objects_96 = uniconv/libunistring_la-u32-conv-to-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC_TRUE@am__objects_97 = uniconv/libunistring_la-u32-strconv-from-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE_TRUE@am__objects_98 = uniconv/libunistring_la-u32-strconv-from-locale.lo
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC_TRUE@am__objects_99 = uniconv/libunistring_la-u32-strconv-to-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE_TRUE@am__objects_100 = uniconv/libunistring_la-u32-strconv-to-locale.lo
+@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE@am__objects_101 = uniconv/libunistring_la-u8-conv-from-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC_TRUE@am__objects_102 = uniconv/libunistring_la-u8-conv-to-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC_TRUE@am__objects_103 = uniconv/libunistring_la-u8-strconv-from-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE_TRUE@am__objects_104 = uniconv/libunistring_la-u8-strconv-from-locale.lo
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC_TRUE@am__objects_105 = uniconv/libunistring_la-u8-strconv-to-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE_TRUE@am__objects_106 = uniconv/libunistring_la-u8-strconv-to-locale.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME_TRUE@am__objects_107 = unictype/libunistring_la-bidi_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME_TRUE@am__objects_108 = unictype/libunistring_la-bidi_longname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME_TRUE@am__objects_109 = unictype/libunistring_la-bidi_name.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF_TRUE@am__objects_110 = unictype/libunistring_la-bidi_of.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST_TRUE@am__objects_111 = unictype/libunistring_la-bidi_test.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST_TRUE@am__objects_112 = unictype/libunistring_la-blocks.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST_TRUE@am__objects_113 = unictype/libunistring_la-block_test.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C_TRUE@am__objects_114 = unictype/libunistring_la-categ_C.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC_TRUE@am__objects_115 = unictype/libunistring_la-categ_Cc.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF_TRUE@am__objects_116 = unictype/libunistring_la-categ_Cf.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN_TRUE@am__objects_117 = unictype/libunistring_la-categ_Cn.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO_TRUE@am__objects_118 = unictype/libunistring_la-categ_Co.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS_TRUE@am__objects_119 = unictype/libunistring_la-categ_Cs.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L_TRUE@am__objects_120 = unictype/libunistring_la-categ_L.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC_TRUE@am__objects_121 = unictype/libunistring_la-categ_LC.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL_TRUE@am__objects_122 = unictype/libunistring_la-categ_Ll.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM_TRUE@am__objects_123 = unictype/libunistring_la-categ_Lm.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO_TRUE@am__objects_124 = unictype/libunistring_la-categ_Lo.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT_TRUE@am__objects_125 = unictype/libunistring_la-categ_Lt.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU_TRUE@am__objects_126 = unictype/libunistring_la-categ_Lu.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M_TRUE@am__objects_127 = unictype/libunistring_la-categ_M.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC_TRUE@am__objects_128 = unictype/libunistring_la-categ_Mc.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME_TRUE@am__objects_129 = unictype/libunistring_la-categ_Me.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN_TRUE@am__objects_130 = unictype/libunistring_la-categ_Mn.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N_TRUE@am__objects_131 = unictype/libunistring_la-categ_N.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND_TRUE@am__objects_132 = unictype/libunistring_la-categ_Nd.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL_TRUE@am__objects_133 = unictype/libunistring_la-categ_Nl.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO_TRUE@am__objects_134 = unictype/libunistring_la-categ_No.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P_TRUE@am__objects_135 = unictype/libunistring_la-categ_P.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC_TRUE@am__objects_136 = unictype/libunistring_la-categ_Pc.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD_TRUE@am__objects_137 = unictype/libunistring_la-categ_Pd.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE_TRUE@am__objects_138 = unictype/libunistring_la-categ_Pe.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF_TRUE@am__objects_139 = unictype/libunistring_la-categ_Pf.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI_TRUE@am__objects_140 = unictype/libunistring_la-categ_Pi.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO_TRUE@am__objects_141 = unictype/libunistring_la-categ_Po.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS_TRUE@am__objects_142 = unictype/libunistring_la-categ_Ps.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S_TRUE@am__objects_143 = unictype/libunistring_la-categ_S.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC_TRUE@am__objects_144 = unictype/libunistring_la-categ_Sc.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK_TRUE@am__objects_145 = unictype/libunistring_la-categ_Sk.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM_TRUE@am__objects_146 = unictype/libunistring_la-categ_Sm.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO_TRUE@am__objects_147 = unictype/libunistring_la-categ_So.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z_TRUE@am__objects_148 = unictype/libunistring_la-categ_Z.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL_TRUE@am__objects_149 = unictype/libunistring_la-categ_Zl.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP_TRUE@am__objects_150 = unictype/libunistring_la-categ_Zp.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS_TRUE@am__objects_151 = unictype/libunistring_la-categ_Zs.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_TRUE@am__objects_152 = unictype/libunistring_la-categ_and.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT_TRUE@am__objects_153 = unictype/libunistring_la-categ_and_not.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME_TRUE@am__objects_154 = unictype/libunistring_la-categ_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME_TRUE@am__objects_155 = unictype/libunistring_la-categ_longname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME_TRUE@am__objects_156 = unictype/libunistring_la-categ_name.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF_TRUE@am__objects_157 = unictype/libunistring_la-categ_of.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR_TRUE@am__objects_158 = unictype/libunistring_la-categ_or.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST_TRUE@am__objects_159 = unictype/libunistring_la-categ_test.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_TRUE@am__objects_160 = unictype/libunistring_la-combiningclass.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME_TRUE@am__objects_161 = unictype/libunistring_la-combiningclass_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME_TRUE@am__objects_162 = unictype/libunistring_la-combiningclass_longname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME_TRUE@am__objects_163 = unictype/libunistring_la-combiningclass_name.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM_TRUE@am__objects_164 = unictype/libunistring_la-ctype_alnum.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA_TRUE@am__objects_165 = unictype/libunistring_la-ctype_alpha.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK_TRUE@am__objects_166 = unictype/libunistring_la-ctype_blank.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL_TRUE@am__objects_167 = unictype/libunistring_la-ctype_cntrl.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT_TRUE@am__objects_168 = unictype/libunistring_la-ctype_digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH_TRUE@am__objects_169 = unictype/libunistring_la-ctype_graph.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER_TRUE@am__objects_170 = unictype/libunistring_la-ctype_lower.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT_TRUE@am__objects_171 = unictype/libunistring_la-ctype_print.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT_TRUE@am__objects_172 = unictype/libunistring_la-ctype_punct.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE_TRUE@am__objects_173 = unictype/libunistring_la-ctype_space.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER_TRUE@am__objects_174 = unictype/libunistring_la-ctype_upper.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT_TRUE@am__objects_175 = unictype/libunistring_la-ctype_xdigit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT_TRUE@am__objects_176 = unictype/libunistring_la-decdigit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_DIGIT_TRUE@am__objects_177 = unictype/libunistring_la-digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_INCB_BYNAME_TRUE@am__objects_178 = unictype/libunistring_la-incb_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_INCB_NAME_TRUE@am__objects_179 = unictype/libunistring_la-incb_name.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_INCB_OF_TRUE@am__objects_180 = unictype/libunistring_la-incb_of.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME_TRUE@am__objects_181 = unictype/libunistring_la-joininggroup_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME_TRUE@am__objects_182 = unictype/libunistring_la-joininggroup_name.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF_TRUE@am__objects_183 = unictype/libunistring_la-joininggroup_of.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME_TRUE@am__objects_184 = unictype/libunistring_la-joiningtype_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME_TRUE@am__objects_185 = unictype/libunistring_la-joiningtype_longname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME_TRUE@am__objects_186 = unictype/libunistring_la-joiningtype_name.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF_TRUE@am__objects_187 = unictype/libunistring_la-joiningtype_of.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_MIRROR_TRUE@am__objects_188 = unictype/libunistring_la-mirror.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC_TRUE@am__objects_189 = unictype/libunistring_la-numeric.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC_TRUE@am__objects_190 = unictype/libunistring_la-pr_alphabetic.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_TRUE@am__objects_191 = unictype/libunistring_la-pr_ascii_hex_digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_TRUE@am__objects_192 = unictype/libunistring_la-pr_bidi_arabic_digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_TRUE@am__objects_193 = unictype/libunistring_la-pr_bidi_arabic_right_to_left.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_TRUE@am__objects_194 = unictype/libunistring_la-pr_bidi_block_separator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_TRUE@am__objects_195 = unictype/libunistring_la-pr_bidi_boundary_neutral.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_TRUE@am__objects_196 = unictype/libunistring_la-pr_bidi_common_separator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL_TRUE@am__objects_197 = unictype/libunistring_la-pr_bidi_control.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_TRUE@am__objects_198 = unictype/libunistring_la-pr_bidi_embedding_or_override.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_TRUE@am__objects_199 = unictype/libunistring_la-pr_bidi_eur_num_separator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_TRUE@am__objects_200 = unictype/libunistring_la-pr_bidi_eur_num_terminator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_TRUE@am__objects_201 = unictype/libunistring_la-pr_bidi_european_digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_TRUE@am__objects_202 = unictype/libunistring_la-pr_bidi_hebrew_right_to_left.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_TRUE@am__objects_203 = unictype/libunistring_la-pr_bidi_left_to_right.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_TRUE@am__objects_204 = unictype/libunistring_la-pr_bidi_non_spacing_mark.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_TRUE@am__objects_205 = unictype/libunistring_la-pr_bidi_other_neutral.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF_TRUE@am__objects_206 = unictype/libunistring_la-pr_bidi_pdf.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_TRUE@am__objects_207 = unictype/libunistring_la-pr_bidi_segment_separator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE_TRUE@am__objects_208 = unictype/libunistring_la-pr_bidi_whitespace.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME_TRUE@am__objects_209 = unictype/libunistring_la-pr_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE_TRUE@am__objects_210 = unictype/libunistring_la-pr_case_ignorable.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED_TRUE@am__objects_211 = unictype/libunistring_la-pr_cased.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_TRUE@am__objects_212 = unictype/libunistring_la-pr_changes_when_casefolded.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_TRUE@am__objects_213 = unictype/libunistring_la-pr_changes_when_casemapped.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_TRUE@am__objects_214 = unictype/libunistring_la-pr_changes_when_lowercased.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_TRUE@am__objects_215 = unictype/libunistring_la-pr_changes_when_titlecased.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_TRUE@am__objects_216 = unictype/libunistring_la-pr_changes_when_uppercased.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING_TRUE@am__objects_217 = unictype/libunistring_la-pr_combining.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE_TRUE@am__objects_218 = unictype/libunistring_la-pr_composite.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_TRUE@am__objects_219 = unictype/libunistring_la-pr_currency_symbol.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH_TRUE@am__objects_220 = unictype/libunistring_la-pr_dash.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT_TRUE@am__objects_221 = unictype/libunistring_la-pr_decimal_digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__objects_222 = unictype/libunistring_la-pr_default_ignorable_code_point.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED_TRUE@am__objects_223 = unictype/libunistring_la-pr_deprecated.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC_TRUE@am__objects_224 = unictype/libunistring_la-pr_diacritic.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_TRUE@am__objects_225 = unictype/libunistring_la-pr_emoji.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_COMPONENT_TRUE@am__objects_226 = unictype/libunistring_la-pr_emoji_component.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_MODIFIER_TRUE@am__objects_227 = unictype/libunistring_la-pr_emoji_modifier.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_MODIFIER_BASE_TRUE@am__objects_228 = unictype/libunistring_la-pr_emoji_modifier_base.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_PRESENTATION_TRUE@am__objects_229 = unictype/libunistring_la-pr_emoji_presentation.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDED_PICTOGRAPHIC_TRUE@am__objects_230 = unictype/libunistring_la-pr_extended_pictographic.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER_TRUE@am__objects_231 = unictype/libunistring_la-pr_extender.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL_TRUE@am__objects_232 = unictype/libunistring_la-pr_format_control.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE_TRUE@am__objects_233 = unictype/libunistring_la-pr_grapheme_base.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_TRUE@am__objects_234 = unictype/libunistring_la-pr_grapheme_extend.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK_TRUE@am__objects_235 = unictype/libunistring_la-pr_grapheme_link.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT_TRUE@am__objects_236 = unictype/libunistring_la-pr_hex_digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN_TRUE@am__objects_237 = unictype/libunistring_la-pr_hyphen.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_COMPAT_MATH_CONTINUE_TRUE@am__objects_238 = unictype/libunistring_la-pr_id_compat_math_continue.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_COMPAT_MATH_START_TRUE@am__objects_239 = unictype/libunistring_la-pr_id_compat_math_start.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE_TRUE@am__objects_240 = unictype/libunistring_la-pr_id_continue.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START_TRUE@am__objects_241 = unictype/libunistring_la-pr_id_start.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC_TRUE@am__objects_242 = unictype/libunistring_la-pr_ideographic.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_TRUE@am__objects_243 = unictype/libunistring_la-pr_ids_binary_operator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_TRUE@am__objects_244 = unictype/libunistring_la-pr_ids_trinary_operator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_UNARY_OPERATOR_TRUE@am__objects_245 = unictype/libunistring_la-pr_ids_unary_operator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_TRUE@am__objects_246 = unictype/libunistring_la-pr_ignorable_control.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL_TRUE@am__objects_247 = unictype/libunistring_la-pr_iso_control.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL_TRUE@am__objects_248 = unictype/libunistring_la-pr_join_control.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR_TRUE@am__objects_249 = unictype/libunistring_la-pr_left_of_pair.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR_TRUE@am__objects_250 = unictype/libunistring_la-pr_line_separator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_TRUE@am__objects_251 = unictype/libunistring_la-pr_logical_order_exception.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE_TRUE@am__objects_252 = unictype/libunistring_la-pr_lowercase.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH_TRUE@am__objects_253 = unictype/libunistring_la-pr_math.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MODIFIER_COMBINING_MARK_TRUE@am__objects_254 = unictype/libunistring_la-pr_modifier_combining_mark.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK_TRUE@am__objects_255 = unictype/libunistring_la-pr_non_break.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER_TRUE@am__objects_256 = unictype/libunistring_la-pr_not_a_character.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC_TRUE@am__objects_257 = unictype/libunistring_la-pr_numeric.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_TRUE@am__objects_258 = unictype/libunistring_la-pr_other_alphabetic.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__objects_259 = unictype/libunistring_la-pr_other_default_ignorable_code_point.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_TRUE@am__objects_260 = unictype/libunistring_la-pr_other_grapheme_extend.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_TRUE@am__objects_261 = unictype/libunistring_la-pr_other_id_continue.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START_TRUE@am__objects_262 = unictype/libunistring_la-pr_other_id_start.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE_TRUE@am__objects_263 = unictype/libunistring_la-pr_other_lowercase.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH_TRUE@am__objects_264 = unictype/libunistring_la-pr_other_math.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE_TRUE@am__objects_265 = unictype/libunistring_la-pr_other_uppercase.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_TRUE@am__objects_266 = unictype/libunistring_la-pr_paired_punctuation.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_TRUE@am__objects_267 = unictype/libunistring_la-pr_paragraph_separator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX_TRUE@am__objects_268 = unictype/libunistring_la-pr_pattern_syntax.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_TRUE@am__objects_269 = unictype/libunistring_la-pr_pattern_white_space.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PREPENDED_CONCATENATION_MARK_TRUE@am__objects_270 = unictype/libunistring_la-pr_prepended_concatenation_mark.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE_TRUE@am__objects_271 = unictype/libunistring_la-pr_private_use.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION_TRUE@am__objects_272 = unictype/libunistring_la-pr_punctuation.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK_TRUE@am__objects_273 = unictype/libunistring_la-pr_quotation_mark.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL_TRUE@am__objects_274 = unictype/libunistring_la-pr_radical.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_REGIONAL_INDICATOR_TRUE@am__objects_275 = unictype/libunistring_la-pr_regional_indicator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_TRUE@am__objects_276 = unictype/libunistring_la-pr_sentence_terminal.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED_TRUE@am__objects_277 = unictype/libunistring_la-pr_soft_dotted.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE_TRUE@am__objects_278 = unictype/libunistring_la-pr_space.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_TRUE@am__objects_279 = unictype/libunistring_la-pr_terminal_punctuation.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST_TRUE@am__objects_280 = unictype/libunistring_la-pr_test.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE_TRUE@am__objects_281 = unictype/libunistring_la-pr_titlecase.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_TRUE@am__objects_282 = unictype/libunistring_la-pr_unassigned_code_value.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_TRUE@am__objects_283 = unictype/libunistring_la-pr_unified_ideograph.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE_TRUE@am__objects_284 = unictype/libunistring_la-pr_uppercase.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR_TRUE@am__objects_285 = unictype/libunistring_la-pr_variation_selector.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE_TRUE@am__objects_286 = unictype/libunistring_la-pr_white_space.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE_TRUE@am__objects_287 = unictype/libunistring_la-pr_xid_continue.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START_TRUE@am__objects_288 = unictype/libunistring_la-pr_xid_start.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH_TRUE@am__objects_289 = unictype/libunistring_la-pr_zero_width.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS_TRUE@am__objects_290 = unictype/libunistring_la-scripts.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT_TRUE@am__objects_291 = unictype/libunistring_la-sy_c_ident.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE_TRUE@am__objects_292 = unictype/libunistring_la-sy_c_whitespace.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT_TRUE@am__objects_293 = unictype/libunistring_la-sy_java_ident.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE_TRUE@am__objects_294 = unictype/libunistring_la-sy_java_whitespace.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS_TRUE@am__objects_295 = unigbrk/libunistring_la-u16-grapheme-breaks.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT_TRUE@am__objects_296 = unigbrk/libunistring_la-u16-grapheme-next.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV_TRUE@am__objects_297 = unigbrk/libunistring_la-u16-grapheme-prev.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS_TRUE@am__objects_298 = unigbrk/libunistring_la-u32-grapheme-breaks.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT_TRUE@am__objects_299 = unigbrk/libunistring_la-u32-grapheme-next.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV_TRUE@am__objects_300 = unigbrk/libunistring_la-u32-grapheme-prev.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS_TRUE@am__objects_301 = unigbrk/libunistring_la-u8-grapheme-breaks.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT_TRUE@am__objects_302 = unigbrk/libunistring_la-u8-grapheme-next.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV_TRUE@am__objects_303 = unigbrk/libunistring_la-u8-grapheme-prev.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP_TRUE@am__objects_304 = unigbrk/libunistring_la-uc-gbrk-prop.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_UC_GRAPHEME_BREAKS_TRUE@am__objects_305 = unigbrk/libunistring_la-uc-grapheme-breaks.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK_TRUE@am__objects_306 = unigbrk/libunistring_la-uc-is-grapheme-break.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS_TRUE@am__objects_307 = unigbrk/libunistring_la-ulc-grapheme-breaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS_TRUE@am__objects_308 = unilbrk/libunistring_la-u16-possible-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS_TRUE@am__objects_309 = unilbrk/libunistring_la-u16-width-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS_TRUE@am__objects_310 = unilbrk/libunistring_la-u32-possible-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS_TRUE@am__objects_311 = unilbrk/libunistring_la-u32-width-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS_TRUE@am__objects_312 = unilbrk/libunistring_la-u8-possible-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS_TRUE@am__objects_313 = unilbrk/libunistring_la-u8-width-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS_TRUE@am__objects_314 = unilbrk/libunistring_la-ulc-possible-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS_TRUE@am__objects_315 = unilbrk/libunistring_la-ulc-width-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNIMETADATA_U_VERSION_TRUE@am__objects_316 = unimetadata/libunistring_la-u-version.lo
+@LIBUNISTRING_COMPILE_UNINAME_UNINAME_TRUE@am__objects_317 = uniname/libunistring_la-uniname.lo
+@LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION_TRUE@am__objects_318 = uninorm/libunistring_la-canonical-decomposition.lo
+@LIBUNISTRING_COMPILE_UNINORM_COMPOSITION_TRUE@am__objects_319 = uninorm/libunistring_la-composition.lo
+@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM_TRUE@am__objects_320 = uninorm/libunistring_la-decomposing-form.lo
+@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION_TRUE@am__objects_321 = uninorm/libunistring_la-decomposition.lo
+@LIBUNISTRING_COMPILE_UNINORM_FILTER_TRUE@am__objects_322 = uninorm/libunistring_la-uninorm-filter.lo
+@LIBUNISTRING_COMPILE_UNINORM_NFC_TRUE@am__objects_323 = uninorm/libunistring_la-nfc.lo
+@LIBUNISTRING_COMPILE_UNINORM_NFD_TRUE@am__objects_324 = uninorm/libunistring_la-nfd.lo
+@LIBUNISTRING_COMPILE_UNINORM_NFKC_TRUE@am__objects_325 = uninorm/libunistring_la-nfkc.lo
+@LIBUNISTRING_COMPILE_UNINORM_NFKD_TRUE@am__objects_326 = uninorm/libunistring_la-nfkd.lo
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE_TRUE@am__objects_327 = uninorm/libunistring_la-u16-normalize.lo
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP_TRUE@am__objects_328 = uninorm/libunistring_la-u16-normcmp.lo
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL_TRUE@am__objects_329 = uninorm/libunistring_la-u16-normcoll.lo
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM_TRUE@am__objects_330 = uninorm/libunistring_la-u16-normxfrm.lo
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE_TRUE@am__objects_331 = uninorm/libunistring_la-u32-normalize.lo
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP_TRUE@am__objects_332 = uninorm/libunistring_la-u32-normcmp.lo
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL_TRUE@am__objects_333 = uninorm/libunistring_la-u32-normcoll.lo
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM_TRUE@am__objects_334 = uninorm/libunistring_la-u32-normxfrm.lo
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE_TRUE@am__objects_335 = uninorm/libunistring_la-u8-normalize.lo
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP_TRUE@am__objects_336 = uninorm/libunistring_la-u8-normcmp.lo
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL_TRUE@am__objects_337 = uninorm/libunistring_la-u8-normcoll.lo
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM_TRUE@am__objects_338 = uninorm/libunistring_la-u8-normxfrm.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF_TRUE@am__objects_339 = unistdio/libunistring_la-u16-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF_TRUE@am__objects_340 = unistdio/libunistring_la-u16-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF_TRUE@am__objects_341 = unistdio/libunistring_la-u16-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF_TRUE@am__objects_342 = unistdio/libunistring_la-u16-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF_TRUE@am__objects_343 = unistdio/libunistring_la-u16-u16-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF_TRUE@am__objects_344 = unistdio/libunistring_la-u16-u16-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF_TRUE@am__objects_345 = unistdio/libunistring_la-u16-u16-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF_TRUE@am__objects_346 = unistdio/libunistring_la-u16-u16-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF_TRUE@am__objects_347 = unistdio/libunistring_la-u16-u16-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF_TRUE@am__objects_348 = unistdio/libunistring_la-u16-u16-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF_TRUE@am__objects_349 = unistdio/libunistring_la-u16-u16-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF_TRUE@am__objects_350 = unistdio/libunistring_la-u16-u16-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF_TRUE@am__objects_351 = unistdio/libunistring_la-u16-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF_TRUE@am__objects_352 = unistdio/libunistring_la-u16-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF_TRUE@am__objects_353 = unistdio/libunistring_la-u16-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF_TRUE@am__objects_354 = unistdio/libunistring_la-u16-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF_TRUE@am__objects_355 = unistdio/libunistring_la-u32-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF_TRUE@am__objects_356 = unistdio/libunistring_la-u32-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF_TRUE@am__objects_357 = unistdio/libunistring_la-u32-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF_TRUE@am__objects_358 = unistdio/libunistring_la-u32-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF_TRUE@am__objects_359 = unistdio/libunistring_la-u32-u32-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF_TRUE@am__objects_360 = unistdio/libunistring_la-u32-u32-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF_TRUE@am__objects_361 = unistdio/libunistring_la-u32-u32-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF_TRUE@am__objects_362 = unistdio/libunistring_la-u32-u32-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF_TRUE@am__objects_363 = unistdio/libunistring_la-u32-u32-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF_TRUE@am__objects_364 = unistdio/libunistring_la-u32-u32-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF_TRUE@am__objects_365 = unistdio/libunistring_la-u32-u32-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF_TRUE@am__objects_366 = unistdio/libunistring_la-u32-u32-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF_TRUE@am__objects_367 = unistdio/libunistring_la-u32-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF_TRUE@am__objects_368 = unistdio/libunistring_la-u32-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF_TRUE@am__objects_369 = unistdio/libunistring_la-u32-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF_TRUE@am__objects_370 = unistdio/libunistring_la-u32-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF_TRUE@am__objects_371 = unistdio/libunistring_la-u8-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF_TRUE@am__objects_372 = unistdio/libunistring_la-u8-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF_TRUE@am__objects_373 = unistdio/libunistring_la-u8-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE@am__objects_374 = unistdio/libunistring_la-u8-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF_TRUE@am__objects_375 = unistdio/libunistring_la-u8-u8-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF_TRUE@am__objects_376 = unistdio/libunistring_la-u8-u8-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF_TRUE@am__objects_377 = unistdio/libunistring_la-u8-u8-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF_TRUE@am__objects_378 = unistdio/libunistring_la-u8-u8-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF_TRUE@am__objects_379 = unistdio/libunistring_la-u8-u8-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF_TRUE@am__objects_380 = unistdio/libunistring_la-u8-u8-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF_TRUE@am__objects_381 = unistdio/libunistring_la-u8-u8-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF_TRUE@am__objects_382 = unistdio/libunistring_la-u8-u8-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE@am__objects_383 = unistdio/libunistring_la-u8-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF_TRUE@am__objects_384 = unistdio/libunistring_la-u8-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF_TRUE@am__objects_385 = unistdio/libunistring_la-u8-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE@am__objects_386 = unistdio/libunistring_la-u8-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF_TRUE@am__objects_387 = unistdio/libunistring_la-ulc-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF_TRUE@am__objects_388 = unistdio/libunistring_la-ulc-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF_TRUE@am__objects_389 = unistdio/libunistring_la-ulc-fprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF_TRUE@am__objects_390 = unistdio/libunistring_la-ulc-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF_TRUE@am__objects_391 = unistdio/libunistring_la-ulc-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF_TRUE@am__objects_392 = unistdio/libunistring_la-ulc-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF_TRUE@am__objects_393 = unistdio/libunistring_la-ulc-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF_TRUE@am__objects_394 = unistdio/libunistring_la-ulc-vfprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF_TRUE@am__objects_395 = unistdio/libunistring_la-ulc-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF_TRUE@am__objects_396 = unistdio/libunistring_la-ulc-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_CHECK_TRUE@am__objects_397 = unistr/libunistring_la-u16-check.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_CHR_TRUE@am__objects_398 = unistr/libunistring_la-u16-chr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_CMP_TRUE@am__objects_399 = unistr/libunistring_la-u16-cmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_CMP2_TRUE@am__objects_400 = unistr/libunistring_la-u16-cmp2.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_TRUE@am__objects_401 = unistr/libunistring_la-u16-cpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC_TRUE@am__objects_402 = unistr/libunistring_la-u16-cpy-alloc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH_TRUE@am__objects_403 = unistr/libunistring_la-u16-endswith.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN_TRUE@am__objects_404 = unistr/libunistring_la-u16-mblen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN_TRUE@am__objects_405 = unistr/libunistring_la-u16-mbsnlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_TRUE@am__objects_406 = unistr/libunistring_la-u16-mbtouc.lo \
@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_TRUE@ unistr/libunistring_la-u16-mbtouc-aux.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_TRUE@am__objects_406 = unistr/libunistring_la-u16-mbtouc-unsafe.lo \
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_TRUE@am__objects_407 = unistr/libunistring_la-u16-mbtouc-unsafe.lo \
@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_TRUE@ unistr/libunistring_la-u16-mbtouc-unsafe-aux.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE@am__objects_407 = unistr/libunistring_la-u16-mbtoucr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_MOVE_TRUE@am__objects_408 = unistr/libunistring_la-u16-move.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_NEXT_TRUE@am__objects_409 = unistr/libunistring_la-u16-next.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_PCPY_TRUE@am__objects_410 = unistr/libunistring_la-u16-pcpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_PREV_TRUE@am__objects_411 = unistr/libunistring_la-u16-prev.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_SET_TRUE@am__objects_412 = unistr/libunistring_la-u16-set.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH_TRUE@am__objects_413 = unistr/libunistring_la-u16-startswith.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY_TRUE@am__objects_414 = unistr/libunistring_la-u16-stpcpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY_TRUE@am__objects_415 = unistr/libunistring_la-u16-stpncpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT_TRUE@am__objects_416 = unistr/libunistring_la-u16-strcat.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR_TRUE@am__objects_417 = unistr/libunistring_la-u16-strchr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP_TRUE@am__objects_418 = unistr/libunistring_la-u16-strcmp.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL_TRUE@am__objects_419 = unistr/libunistring_la-u16-strcoll.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY_TRUE@am__objects_420 = unistr/libunistring_la-u16-strcpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN_TRUE@am__objects_421 = unistr/libunistring_la-u16-strcspn.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP_TRUE@am__objects_422 = unistr/libunistring_la-u16-strdup.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE@am__objects_423 = unistr/libunistring_la-u16-strlen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE@am__objects_424 = unistr/libunistring_la-u16-strmblen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC_TRUE@am__objects_425 = unistr/libunistring_la-u16-strmbtouc.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT_TRUE@am__objects_426 = unistr/libunistring_la-u16-strncat.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP_TRUE@am__objects_427 = unistr/libunistring_la-u16-strncmp.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY_TRUE@am__objects_428 = unistr/libunistring_la-u16-strncpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN_TRUE@am__objects_429 = unistr/libunistring_la-u16-strnlen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK_TRUE@am__objects_430 = unistr/libunistring_la-u16-strpbrk.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR_TRUE@am__objects_431 = unistr/libunistring_la-u16-strrchr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN_TRUE@am__objects_432 = unistr/libunistring_la-u16-strspn.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR_TRUE@am__objects_433 = unistr/libunistring_la-u16-strstr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK_TRUE@am__objects_434 = unistr/libunistring_la-u16-strtok.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32_TRUE@am__objects_435 = unistr/libunistring_la-u16-to-u32.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE@am__objects_436 = unistr/libunistring_la-u16-to-u8.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_TRUE@am__objects_437 = unistr/libunistring_la-u16-uctomb.lo \
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE@am__objects_408 = unistr/libunistring_la-u16-mbtoucr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_MOVE_TRUE@am__objects_409 = unistr/libunistring_la-u16-move.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_NEXT_TRUE@am__objects_410 = unistr/libunistring_la-u16-next.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_PCPY_TRUE@am__objects_411 = unistr/libunistring_la-u16-pcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_PREV_TRUE@am__objects_412 = unistr/libunistring_la-u16-prev.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_SET_TRUE@am__objects_413 = unistr/libunistring_la-u16-set.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH_TRUE@am__objects_414 = unistr/libunistring_la-u16-startswith.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY_TRUE@am__objects_415 = unistr/libunistring_la-u16-stpcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY_TRUE@am__objects_416 = unistr/libunistring_la-u16-stpncpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT_TRUE@am__objects_417 = unistr/libunistring_la-u16-strcat.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR_TRUE@am__objects_418 = unistr/libunistring_la-u16-strchr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP_TRUE@am__objects_419 = unistr/libunistring_la-u16-strcmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL_TRUE@am__objects_420 = unistr/libunistring_la-u16-strcoll.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY_TRUE@am__objects_421 = unistr/libunistring_la-u16-strcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN_TRUE@am__objects_422 = unistr/libunistring_la-u16-strcspn.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP_TRUE@am__objects_423 = unistr/libunistring_la-u16-strdup.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE@am__objects_424 = unistr/libunistring_la-u16-strlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE@am__objects_425 = unistr/libunistring_la-u16-strmblen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC_TRUE@am__objects_426 = unistr/libunistring_la-u16-strmbtouc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT_TRUE@am__objects_427 = unistr/libunistring_la-u16-strncat.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP_TRUE@am__objects_428 = unistr/libunistring_la-u16-strncmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY_TRUE@am__objects_429 = unistr/libunistring_la-u16-strncpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN_TRUE@am__objects_430 = unistr/libunistring_la-u16-strnlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK_TRUE@am__objects_431 = unistr/libunistring_la-u16-strpbrk.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR_TRUE@am__objects_432 = unistr/libunistring_la-u16-strrchr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN_TRUE@am__objects_433 = unistr/libunistring_la-u16-strspn.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR_TRUE@am__objects_434 = unistr/libunistring_la-u16-strstr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK_TRUE@am__objects_435 = unistr/libunistring_la-u16-strtok.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32_TRUE@am__objects_436 = unistr/libunistring_la-u16-to-u32.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE@am__objects_437 = unistr/libunistring_la-u16-to-u8.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_TRUE@am__objects_438 = unistr/libunistring_la-u16-uctomb.lo \
@LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_TRUE@ unistr/libunistring_la-u16-uctomb-aux.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_CHECK_TRUE@am__objects_438 = unistr/libunistring_la-u32-check.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_CHR_TRUE@am__objects_439 = unistr/libunistring_la-u32-chr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_CMP_TRUE@am__objects_440 = unistr/libunistring_la-u32-cmp.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_CMP2_TRUE@am__objects_441 = unistr/libunistring_la-u32-cmp2.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_TRUE@am__objects_442 = unistr/libunistring_la-u32-cpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC_TRUE@am__objects_443 = unistr/libunistring_la-u32-cpy-alloc.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH_TRUE@am__objects_444 = unistr/libunistring_la-u32-endswith.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN_TRUE@am__objects_445 = unistr/libunistring_la-u32-mblen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN_TRUE@am__objects_446 = unistr/libunistring_la-u32-mbsnlen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_TRUE@am__objects_447 = unistr/libunistring_la-u32-mbtouc.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE_TRUE@am__objects_448 = unistr/libunistring_la-u32-mbtouc-unsafe.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR_TRUE@am__objects_449 = unistr/libunistring_la-u32-mbtoucr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_MOVE_TRUE@am__objects_450 = unistr/libunistring_la-u32-move.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_NEXT_TRUE@am__objects_451 = unistr/libunistring_la-u32-next.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_PCPY_TRUE@am__objects_452 = unistr/libunistring_la-u32-pcpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_PREV_TRUE@am__objects_453 = unistr/libunistring_la-u32-prev.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_SET_TRUE@am__objects_454 = unistr/libunistring_la-u32-set.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH_TRUE@am__objects_455 = unistr/libunistring_la-u32-startswith.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY_TRUE@am__objects_456 = unistr/libunistring_la-u32-stpcpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY_TRUE@am__objects_457 = unistr/libunistring_la-u32-stpncpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT_TRUE@am__objects_458 = unistr/libunistring_la-u32-strcat.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR_TRUE@am__objects_459 = unistr/libunistring_la-u32-strchr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP_TRUE@am__objects_460 = unistr/libunistring_la-u32-strcmp.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL_TRUE@am__objects_461 = unistr/libunistring_la-u32-strcoll.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY_TRUE@am__objects_462 = unistr/libunistring_la-u32-strcpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN_TRUE@am__objects_463 = unistr/libunistring_la-u32-strcspn.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP_TRUE@am__objects_464 = unistr/libunistring_la-u32-strdup.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE@am__objects_465 = unistr/libunistring_la-u32-strlen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE@am__objects_466 = unistr/libunistring_la-u32-strmblen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC_TRUE@am__objects_467 = unistr/libunistring_la-u32-strmbtouc.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT_TRUE@am__objects_468 = unistr/libunistring_la-u32-strncat.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP_TRUE@am__objects_469 = unistr/libunistring_la-u32-strncmp.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY_TRUE@am__objects_470 = unistr/libunistring_la-u32-strncpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN_TRUE@am__objects_471 = unistr/libunistring_la-u32-strnlen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK_TRUE@am__objects_472 = unistr/libunistring_la-u32-strpbrk.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR_TRUE@am__objects_473 = unistr/libunistring_la-u32-strrchr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN_TRUE@am__objects_474 = unistr/libunistring_la-u32-strspn.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR_TRUE@am__objects_475 = unistr/libunistring_la-u32-strstr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK_TRUE@am__objects_476 = unistr/libunistring_la-u32-strtok.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16_TRUE@am__objects_477 = unistr/libunistring_la-u32-to-u16.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE@am__objects_478 = unistr/libunistring_la-u32-to-u8.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB_TRUE@am__objects_479 = unistr/libunistring_la-u32-uctomb.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE@am__objects_480 = unistr/libunistring_la-u8-check.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_CHR_TRUE@am__objects_481 = unistr/libunistring_la-u8-chr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_CMP_TRUE@am__objects_482 = unistr/libunistring_la-u8-cmp.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_CMP2_TRUE@am__objects_483 = unistr/libunistring_la-u8-cmp2.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE@am__objects_484 = unistr/libunistring_la-u8-cpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC_TRUE@am__objects_485 = unistr/libunistring_la-u8-cpy-alloc.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH_TRUE@am__objects_486 = unistr/libunistring_la-u8-endswith.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE@am__objects_487 = unistr/libunistring_la-u8-mblen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE@am__objects_488 = unistr/libunistring_la-u8-mbsnlen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE@am__objects_489 = unistr/libunistring_la-u8-mbtouc.lo \
+@LIBUNISTRING_COMPILE_UNISTR_U32_CHECK_TRUE@am__objects_439 = unistr/libunistring_la-u32-check.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_CHR_TRUE@am__objects_440 = unistr/libunistring_la-u32-chr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_CMP_TRUE@am__objects_441 = unistr/libunistring_la-u32-cmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_CMP2_TRUE@am__objects_442 = unistr/libunistring_la-u32-cmp2.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_TRUE@am__objects_443 = unistr/libunistring_la-u32-cpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC_TRUE@am__objects_444 = unistr/libunistring_la-u32-cpy-alloc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH_TRUE@am__objects_445 = unistr/libunistring_la-u32-endswith.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN_TRUE@am__objects_446 = unistr/libunistring_la-u32-mblen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN_TRUE@am__objects_447 = unistr/libunistring_la-u32-mbsnlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_TRUE@am__objects_448 = unistr/libunistring_la-u32-mbtouc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE_TRUE@am__objects_449 = unistr/libunistring_la-u32-mbtouc-unsafe.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR_TRUE@am__objects_450 = unistr/libunistring_la-u32-mbtoucr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_MOVE_TRUE@am__objects_451 = unistr/libunistring_la-u32-move.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_NEXT_TRUE@am__objects_452 = unistr/libunistring_la-u32-next.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_PCPY_TRUE@am__objects_453 = unistr/libunistring_la-u32-pcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_PREV_TRUE@am__objects_454 = unistr/libunistring_la-u32-prev.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_SET_TRUE@am__objects_455 = unistr/libunistring_la-u32-set.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH_TRUE@am__objects_456 = unistr/libunistring_la-u32-startswith.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY_TRUE@am__objects_457 = unistr/libunistring_la-u32-stpcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY_TRUE@am__objects_458 = unistr/libunistring_la-u32-stpncpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT_TRUE@am__objects_459 = unistr/libunistring_la-u32-strcat.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR_TRUE@am__objects_460 = unistr/libunistring_la-u32-strchr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP_TRUE@am__objects_461 = unistr/libunistring_la-u32-strcmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL_TRUE@am__objects_462 = unistr/libunistring_la-u32-strcoll.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY_TRUE@am__objects_463 = unistr/libunistring_la-u32-strcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN_TRUE@am__objects_464 = unistr/libunistring_la-u32-strcspn.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP_TRUE@am__objects_465 = unistr/libunistring_la-u32-strdup.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE@am__objects_466 = unistr/libunistring_la-u32-strlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE@am__objects_467 = unistr/libunistring_la-u32-strmblen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC_TRUE@am__objects_468 = unistr/libunistring_la-u32-strmbtouc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT_TRUE@am__objects_469 = unistr/libunistring_la-u32-strncat.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP_TRUE@am__objects_470 = unistr/libunistring_la-u32-strncmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY_TRUE@am__objects_471 = unistr/libunistring_la-u32-strncpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN_TRUE@am__objects_472 = unistr/libunistring_la-u32-strnlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK_TRUE@am__objects_473 = unistr/libunistring_la-u32-strpbrk.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR_TRUE@am__objects_474 = unistr/libunistring_la-u32-strrchr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN_TRUE@am__objects_475 = unistr/libunistring_la-u32-strspn.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR_TRUE@am__objects_476 = unistr/libunistring_la-u32-strstr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK_TRUE@am__objects_477 = unistr/libunistring_la-u32-strtok.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16_TRUE@am__objects_478 = unistr/libunistring_la-u32-to-u16.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE@am__objects_479 = unistr/libunistring_la-u32-to-u8.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB_TRUE@am__objects_480 = unistr/libunistring_la-u32-uctomb.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE@am__objects_481 = unistr/libunistring_la-u8-check.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_CHR_TRUE@am__objects_482 = unistr/libunistring_la-u8-chr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_CMP_TRUE@am__objects_483 = unistr/libunistring_la-u8-cmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_CMP2_TRUE@am__objects_484 = unistr/libunistring_la-u8-cmp2.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE@am__objects_485 = unistr/libunistring_la-u8-cpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC_TRUE@am__objects_486 = unistr/libunistring_la-u8-cpy-alloc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH_TRUE@am__objects_487 = unistr/libunistring_la-u8-endswith.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE@am__objects_488 = unistr/libunistring_la-u8-mblen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE@am__objects_489 = unistr/libunistring_la-u8-mbsnlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE@am__objects_490 = unistr/libunistring_la-u8-mbtouc.lo \
@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE@ unistr/libunistring_la-u8-mbtouc-aux.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE@am__objects_490 = unistr/libunistring_la-u8-mbtouc-unsafe.lo \
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE@am__objects_491 = unistr/libunistring_la-u8-mbtouc-unsafe.lo \
@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE@ unistr/libunistring_la-u8-mbtouc-unsafe-aux.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__objects_491 = unistr/libunistring_la-u8-mbtoucr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_MOVE_TRUE@am__objects_492 = unistr/libunistring_la-u8-move.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_NEXT_TRUE@am__objects_493 = unistr/libunistring_la-u8-next.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_PCPY_TRUE@am__objects_494 = unistr/libunistring_la-u8-pcpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE@am__objects_495 = unistr/libunistring_la-u8-prev.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE@am__objects_496 = unistr/libunistring_la-u8-set.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH_TRUE@am__objects_497 = unistr/libunistring_la-u8-startswith.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY_TRUE@am__objects_498 = unistr/libunistring_la-u8-stpcpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY_TRUE@am__objects_499 = unistr/libunistring_la-u8-stpncpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT_TRUE@am__objects_500 = unistr/libunistring_la-u8-strcat.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR_TRUE@am__objects_501 = unistr/libunistring_la-u8-strchr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP_TRUE@am__objects_502 = unistr/libunistring_la-u8-strcmp.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL_TRUE@am__objects_503 = unistr/libunistring_la-u8-strcoll.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY_TRUE@am__objects_504 = unistr/libunistring_la-u8-strcpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN_TRUE@am__objects_505 = unistr/libunistring_la-u8-strcspn.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP_TRUE@am__objects_506 = unistr/libunistring_la-u8-strdup.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE@am__objects_507 = unistr/libunistring_la-u8-strlen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE@am__objects_508 = unistr/libunistring_la-u8-strmblen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC_TRUE@am__objects_509 = unistr/libunistring_la-u8-strmbtouc.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT_TRUE@am__objects_510 = unistr/libunistring_la-u8-strncat.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP_TRUE@am__objects_511 = unistr/libunistring_la-u8-strncmp.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY_TRUE@am__objects_512 = unistr/libunistring_la-u8-strncpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN_TRUE@am__objects_513 = unistr/libunistring_la-u8-strnlen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK_TRUE@am__objects_514 = unistr/libunistring_la-u8-strpbrk.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR_TRUE@am__objects_515 = unistr/libunistring_la-u8-strrchr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN_TRUE@am__objects_516 = unistr/libunistring_la-u8-strspn.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR_TRUE@am__objects_517 = unistr/libunistring_la-u8-strstr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK_TRUE@am__objects_518 = unistr/libunistring_la-u8-strtok.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16_TRUE@am__objects_519 = unistr/libunistring_la-u8-to-u16.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32_TRUE@am__objects_520 = unistr/libunistring_la-u8-to-u32.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__objects_521 = unistr/libunistring_la-u8-uctomb.lo \
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__objects_492 = unistr/libunistring_la-u8-mbtoucr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_MOVE_TRUE@am__objects_493 = unistr/libunistring_la-u8-move.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_NEXT_TRUE@am__objects_494 = unistr/libunistring_la-u8-next.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_PCPY_TRUE@am__objects_495 = unistr/libunistring_la-u8-pcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE@am__objects_496 = unistr/libunistring_la-u8-prev.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE@am__objects_497 = unistr/libunistring_la-u8-set.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH_TRUE@am__objects_498 = unistr/libunistring_la-u8-startswith.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY_TRUE@am__objects_499 = unistr/libunistring_la-u8-stpcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY_TRUE@am__objects_500 = unistr/libunistring_la-u8-stpncpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT_TRUE@am__objects_501 = unistr/libunistring_la-u8-strcat.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR_TRUE@am__objects_502 = unistr/libunistring_la-u8-strchr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP_TRUE@am__objects_503 = unistr/libunistring_la-u8-strcmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL_TRUE@am__objects_504 = unistr/libunistring_la-u8-strcoll.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY_TRUE@am__objects_505 = unistr/libunistring_la-u8-strcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN_TRUE@am__objects_506 = unistr/libunistring_la-u8-strcspn.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP_TRUE@am__objects_507 = unistr/libunistring_la-u8-strdup.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE@am__objects_508 = unistr/libunistring_la-u8-strlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE@am__objects_509 = unistr/libunistring_la-u8-strmblen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC_TRUE@am__objects_510 = unistr/libunistring_la-u8-strmbtouc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT_TRUE@am__objects_511 = unistr/libunistring_la-u8-strncat.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP_TRUE@am__objects_512 = unistr/libunistring_la-u8-strncmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY_TRUE@am__objects_513 = unistr/libunistring_la-u8-strncpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN_TRUE@am__objects_514 = unistr/libunistring_la-u8-strnlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK_TRUE@am__objects_515 = unistr/libunistring_la-u8-strpbrk.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR_TRUE@am__objects_516 = unistr/libunistring_la-u8-strrchr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN_TRUE@am__objects_517 = unistr/libunistring_la-u8-strspn.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR_TRUE@am__objects_518 = unistr/libunistring_la-u8-strstr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK_TRUE@am__objects_519 = unistr/libunistring_la-u8-strtok.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16_TRUE@am__objects_520 = unistr/libunistring_la-u8-to-u16.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32_TRUE@am__objects_521 = unistr/libunistring_la-u8-to-u32.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__objects_522 = unistr/libunistring_la-u8-uctomb.lo \
@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@ unistr/libunistring_la-u8-uctomb-aux.lo
-@LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS_TRUE@am__objects_522 = uniwbrk/libunistring_la-u16-wordbreaks.lo
-@LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS_TRUE@am__objects_523 = uniwbrk/libunistring_la-u32-wordbreaks.lo
-@LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS_TRUE@am__objects_524 = uniwbrk/libunistring_la-u8-wordbreaks.lo
-@LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS_TRUE@am__objects_525 = uniwbrk/libunistring_la-ulc-wordbreaks.lo
-@LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY_TRUE@am__objects_526 = uniwbrk/libunistring_la-wordbreak-property.lo
-@LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH_TRUE@am__objects_527 = uniwidth/libunistring_la-u16-strwidth.lo
-@LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH_TRUE@am__objects_528 = uniwidth/libunistring_la-u16-width.lo
-@LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH_TRUE@am__objects_529 = uniwidth/libunistring_la-u32-strwidth.lo
-@LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH_TRUE@am__objects_530 = uniwidth/libunistring_la-u32-width.lo
-@LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH_TRUE@am__objects_531 = uniwidth/libunistring_la-u8-strwidth.lo
-@LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH_TRUE@am__objects_532 = uniwidth/libunistring_la-u8-width.lo
-@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__objects_533 = uniwidth/libunistring_la-width.lo
-@GL_COND_OBJ_WCWIDTH_TRUE@am__objects_534 = \
+@LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS_TRUE@am__objects_523 = uniwbrk/libunistring_la-u16-wordbreaks.lo
+@LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS_TRUE@am__objects_524 = uniwbrk/libunistring_la-u32-wordbreaks.lo
+@LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS_TRUE@am__objects_525 = uniwbrk/libunistring_la-u8-wordbreaks.lo
+@LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS_TRUE@am__objects_526 = uniwbrk/libunistring_la-ulc-wordbreaks.lo
+@LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY_TRUE@am__objects_527 = uniwbrk/libunistring_la-wordbreak-property.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH_TRUE@am__objects_528 = uniwidth/libunistring_la-u16-strwidth.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH_TRUE@am__objects_529 = uniwidth/libunistring_la-u16-width.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH_TRUE@am__objects_530 = uniwidth/libunistring_la-u32-strwidth.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH_TRUE@am__objects_531 = uniwidth/libunistring_la-u32-width.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH_TRUE@am__objects_532 = uniwidth/libunistring_la-u8-strwidth.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH_TRUE@am__objects_533 = uniwidth/libunistring_la-u8-width.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__objects_534 = uniwidth/libunistring_la-width.lo
+@GL_COND_OBJ_WCWIDTH_TRUE@am__objects_535 = \
@GL_COND_OBJ_WCWIDTH_TRUE@ libunistring_la-wcwidth.lo
-@GL_COND_OBJ_WINDOWS_MUTEX_TRUE@am__objects_535 = libunistring_la-windows-mutex.lo
-@GL_COND_OBJ_WINDOWS_ONCE_TRUE@am__objects_536 = libunistring_la-windows-once.lo
-@GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE@am__objects_537 = libunistring_la-windows-recmutex.lo
-@GL_COND_OBJ_WINDOWS_RWLOCK_TRUE@am__objects_538 = libunistring_la-windows-rwlock.lo
-@WOE32DLL_TRUE@am__objects_539 = ../woe32dll/libunistring_la-unistring-exports.lo
+@GL_COND_OBJ_WINDOWS_MUTEX_TRUE@am__objects_536 = libunistring_la-windows-mutex.lo
+@GL_COND_OBJ_WINDOWS_ONCE_TRUE@am__objects_537 = libunistring_la-windows-once.lo
+@GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE@am__objects_538 = libunistring_la-windows-recmutex.lo
+@GL_COND_OBJ_WINDOWS_RWLOCK_TRUE@am__objects_539 = libunistring_la-windows-rwlock.lo
+@WOE32DLL_TRUE@am__objects_540 = ../woe32dll/libunistring_la-unistring-exports.lo
am_libunistring_la_OBJECTS = libunistring_la-amemxfrm.lo \
libunistring_la-c-ctype.lo libunistring_la-c-strcasecmp.lo \
libunistring_la-c32isalnum.lo libunistring_la-c32isalpha.lo \
@@ -2172,204 +2176,204 @@ am_libunistring_la_OBJECTS = libunistring_la-amemxfrm.lo \
$(am__objects_22) libunistring_la-setlocale_null-unlocked.lo \
$(am__objects_23) libunistring_la-stdlib.lo \
libunistring_la-striconveh.lo libunistring_la-striconveha.lo \
- libunistring_la-string.lo $(am__objects_24) \
+ libunistring_la-string.lo $(am__objects_24) $(am__objects_25) \
glthread/libunistring_la-threadlib.lo \
- unicase/libunistring_la-cased.lo $(am__objects_25) \
- $(am__objects_26) unicase/libunistring_la-ignorable.lo \
- $(am__objects_27) unicase/libunistring_la-special-casing.lo \
- unicase/libunistring_la-tocasefold.lo $(am__objects_28) \
- $(am__objects_29) $(am__objects_30) $(am__objects_31) \
- $(am__objects_32) $(am__objects_33) \
- unicase/libunistring_la-u16-casemap.lo $(am__objects_34) \
- $(am__objects_35) $(am__objects_36) $(am__objects_37) \
- $(am__objects_38) $(am__objects_39) $(am__objects_40) \
- unicase/libunistring_la-u16-is-invariant.lo $(am__objects_41) \
- $(am__objects_42) $(am__objects_43) $(am__objects_44) \
- $(am__objects_45) $(am__objects_46) $(am__objects_47) \
- $(am__objects_48) $(am__objects_49) $(am__objects_50) \
- $(am__objects_51) unicase/libunistring_la-u32-casemap.lo \
- $(am__objects_52) $(am__objects_53) $(am__objects_54) \
- $(am__objects_55) $(am__objects_56) $(am__objects_57) \
- $(am__objects_58) unicase/libunistring_la-u32-is-invariant.lo \
- $(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) \
- unicase/libunistring_la-u8-casemap.lo $(am__objects_70) \
- $(am__objects_71) $(am__objects_72) $(am__objects_73) \
- $(am__objects_74) $(am__objects_75) $(am__objects_76) \
- unicase/libunistring_la-u8-is-invariant.lo $(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) \
- unictype/libunistring_la-categ_none.lo $(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) \
- $(am__objects_262) $(am__objects_263) $(am__objects_264) \
- $(am__objects_265) $(am__objects_266) $(am__objects_267) \
- $(am__objects_268) $(am__objects_269) $(am__objects_270) \
- $(am__objects_271) $(am__objects_272) $(am__objects_273) \
- $(am__objects_274) $(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) \
- $(am__objects_292) $(am__objects_293) $(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) \
- unilbrk/libunistring_la-lbrktables.lo $(am__objects_307) \
- $(am__objects_308) $(am__objects_309) $(am__objects_310) \
- $(am__objects_311) $(am__objects_312) \
- unilbrk/libunistring_la-ulc-common.lo $(am__objects_313) \
- $(am__objects_314) $(am__objects_315) $(am__objects_316) \
- $(am__objects_317) \
- uninorm/libunistring_la-compat-decomposition.lo \
+ unicase/libunistring_la-cased.lo $(am__objects_26) \
+ $(am__objects_27) unicase/libunistring_la-ignorable.lo \
+ $(am__objects_28) unicase/libunistring_la-special-casing.lo \
+ unicase/libunistring_la-tocasefold.lo $(am__objects_29) \
+ $(am__objects_30) $(am__objects_31) $(am__objects_32) \
+ $(am__objects_33) $(am__objects_34) \
+ unicase/libunistring_la-u16-casemap.lo $(am__objects_35) \
+ $(am__objects_36) $(am__objects_37) $(am__objects_38) \
+ $(am__objects_39) $(am__objects_40) $(am__objects_41) \
+ unicase/libunistring_la-u16-is-invariant.lo $(am__objects_42) \
+ $(am__objects_43) $(am__objects_44) $(am__objects_45) \
+ $(am__objects_46) $(am__objects_47) $(am__objects_48) \
+ $(am__objects_49) $(am__objects_50) $(am__objects_51) \
+ $(am__objects_52) unicase/libunistring_la-u32-casemap.lo \
+ $(am__objects_53) $(am__objects_54) $(am__objects_55) \
+ $(am__objects_56) $(am__objects_57) $(am__objects_58) \
+ $(am__objects_59) unicase/libunistring_la-u32-is-invariant.lo \
+ $(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) \
+ unicase/libunistring_la-u8-casemap.lo $(am__objects_71) \
+ $(am__objects_72) $(am__objects_73) $(am__objects_74) \
+ $(am__objects_75) $(am__objects_76) $(am__objects_77) \
+ unicase/libunistring_la-u8-is-invariant.lo $(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) \
+ unictype/libunistring_la-categ_none.lo $(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) $(am__objects_262) \
+ $(am__objects_263) $(am__objects_264) $(am__objects_265) \
+ $(am__objects_266) $(am__objects_267) $(am__objects_268) \
+ $(am__objects_269) $(am__objects_270) $(am__objects_271) \
+ $(am__objects_272) $(am__objects_273) $(am__objects_274) \
+ $(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) $(am__objects_292) \
+ $(am__objects_293) $(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) \
+ unilbrk/libunistring_la-lbrktables.lo $(am__objects_308) \
+ $(am__objects_309) $(am__objects_310) $(am__objects_311) \
+ $(am__objects_312) $(am__objects_313) \
+ unilbrk/libunistring_la-ulc-common.lo $(am__objects_314) \
+ $(am__objects_315) $(am__objects_316) $(am__objects_317) \
$(am__objects_318) \
+ uninorm/libunistring_la-compat-decomposition.lo \
+ $(am__objects_319) \
uninorm/libunistring_la-decompose-internal.lo \
- $(am__objects_319) $(am__objects_320) \
+ $(am__objects_320) $(am__objects_321) \
uninorm/libunistring_la-decomposition-table.lo \
- $(am__objects_321) $(am__objects_322) $(am__objects_323) \
- $(am__objects_324) $(am__objects_325) $(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_322) $(am__objects_323) $(am__objects_324) \
+ $(am__objects_325) $(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) \
libunistring_la-unistd.lo \
- unistdio/libunistring_la-u-printf-args.lo $(am__objects_338) \
- $(am__objects_339) \
+ unistdio/libunistring_la-u-printf-args.lo $(am__objects_339) \
+ $(am__objects_340) \
unistdio/libunistring_la-u16-printf-parse.lo \
- $(am__objects_340) $(am__objects_341) $(am__objects_342) \
- $(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_341) $(am__objects_342) $(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) \
unistdio/libunistring_la-u32-printf-parse.lo \
- $(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) unistdio/libunistring_la-u8-printf-parse.lo \
- $(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_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) unistdio/libunistring_la-u8-printf-parse.lo \
+ $(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) \
unistdio/libunistring_la-ulc-printf-parse.lo \
- $(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) \
- $(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) \
- $(am__objects_485) $(am__objects_486) $(am__objects_487) \
- $(am__objects_488) $(am__objects_489) $(am__objects_490) \
- $(am__objects_491) $(am__objects_492) $(am__objects_493) \
- $(am__objects_494) $(am__objects_495) $(am__objects_496) \
- $(am__objects_497) $(am__objects_498) $(am__objects_499) \
- $(am__objects_500) $(am__objects_501) $(am__objects_502) \
- $(am__objects_503) $(am__objects_504) $(am__objects_505) \
- $(am__objects_506) $(am__objects_507) $(am__objects_508) \
- $(am__objects_509) $(am__objects_510) $(am__objects_511) \
- $(am__objects_512) $(am__objects_513) $(am__objects_514) \
- $(am__objects_515) $(am__objects_516) $(am__objects_517) \
- $(am__objects_518) $(am__objects_519) $(am__objects_520) \
- $(am__objects_521) uniwbrk/libunistring_la-wbrktable.lo \
- $(am__objects_522) $(am__objects_523) $(am__objects_524) \
- $(am__objects_525) $(am__objects_526) $(am__objects_527) \
- $(am__objects_528) $(am__objects_529) $(am__objects_530) \
- $(am__objects_531) $(am__objects_532) $(am__objects_533) \
- libunistring_la-wctype-h.lo $(am__objects_534) \
- $(am__objects_535) $(am__objects_536) $(am__objects_537) \
- $(am__objects_538) libunistring_la-xsize.lo \
- libunistring_la-version.lo $(am__objects_539)
+ $(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) $(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) $(am__objects_485) \
+ $(am__objects_486) $(am__objects_487) $(am__objects_488) \
+ $(am__objects_489) $(am__objects_490) $(am__objects_491) \
+ $(am__objects_492) $(am__objects_493) $(am__objects_494) \
+ $(am__objects_495) $(am__objects_496) $(am__objects_497) \
+ $(am__objects_498) $(am__objects_499) $(am__objects_500) \
+ $(am__objects_501) $(am__objects_502) $(am__objects_503) \
+ $(am__objects_504) $(am__objects_505) $(am__objects_506) \
+ $(am__objects_507) $(am__objects_508) $(am__objects_509) \
+ $(am__objects_510) $(am__objects_511) $(am__objects_512) \
+ $(am__objects_513) $(am__objects_514) $(am__objects_515) \
+ $(am__objects_516) $(am__objects_517) $(am__objects_518) \
+ $(am__objects_519) $(am__objects_520) $(am__objects_521) \
+ $(am__objects_522) uniwbrk/libunistring_la-wbrktable.lo \
+ $(am__objects_523) $(am__objects_524) $(am__objects_525) \
+ $(am__objects_526) $(am__objects_527) $(am__objects_528) \
+ $(am__objects_529) $(am__objects_530) $(am__objects_531) \
+ $(am__objects_532) $(am__objects_533) $(am__objects_534) \
+ libunistring_la-wctype-h.lo $(am__objects_535) \
+ $(am__objects_536) $(am__objects_537) $(am__objects_538) \
+ $(am__objects_539) libunistring_la-xsize.lo \
+ libunistring_la-version.lo $(am__objects_540)
libunistring_la_OBJECTS = $(am_libunistring_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -2687,13 +2691,16 @@ GL_GNULIB_ISBLANK_L = @GL_GNULIB_ISBLANK_L@
GL_GNULIB_ISCNTRL_L = @GL_GNULIB_ISCNTRL_L@
GL_GNULIB_ISDIGIT_L = @GL_GNULIB_ISDIGIT_L@
GL_GNULIB_ISFINITE = @GL_GNULIB_ISFINITE@
+GL_GNULIB_ISFINITE_NO_CXX = @GL_GNULIB_ISFINITE_NO_CXX@
GL_GNULIB_ISGRAPH_L = @GL_GNULIB_ISGRAPH_L@
GL_GNULIB_ISINF = @GL_GNULIB_ISINF@
+GL_GNULIB_ISINF_NO_CXX = @GL_GNULIB_ISINF_NO_CXX@
GL_GNULIB_ISLOWER_L = @GL_GNULIB_ISLOWER_L@
GL_GNULIB_ISNAN = @GL_GNULIB_ISNAN@
GL_GNULIB_ISNAND = @GL_GNULIB_ISNAND@
GL_GNULIB_ISNANF = @GL_GNULIB_ISNANF@
GL_GNULIB_ISNANL = @GL_GNULIB_ISNANL@
+GL_GNULIB_ISNAN_NO_CXX = @GL_GNULIB_ISNAN_NO_CXX@
GL_GNULIB_ISPRINT_L = @GL_GNULIB_ISPRINT_L@
GL_GNULIB_ISPUNCT_L = @GL_GNULIB_ISPUNCT_L@
GL_GNULIB_ISSPACE_L = @GL_GNULIB_ISSPACE_L@
@@ -2841,6 +2848,7 @@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@
GL_GNULIB_OBSTACK_ZPRINTF = @GL_GNULIB_OBSTACK_ZPRINTF@
GL_GNULIB_OPEN = @GL_GNULIB_OPEN@
GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@
+GL_GNULIB_OPENAT2 = @GL_GNULIB_OPENAT2@
GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@
GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@
GL_GNULIB_PERROR = @GL_GNULIB_PERROR@
@@ -2922,6 +2930,7 @@ GL_GNULIB_SIGACTION = @GL_GNULIB_SIGACTION@
GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@
GL_GNULIB_SIGNAL_H_SIGPIPE = @GL_GNULIB_SIGNAL_H_SIGPIPE@
GL_GNULIB_SIGNBIT = @GL_GNULIB_SIGNBIT@
+GL_GNULIB_SIGNBIT_NO_CXX = @GL_GNULIB_SIGNBIT_NO_CXX@
GL_GNULIB_SIGPROCMASK = @GL_GNULIB_SIGPROCMASK@
GL_GNULIB_SINF = @GL_GNULIB_SINF@
GL_GNULIB_SINHF = @GL_GNULIB_SINHF@
@@ -2949,8 +2958,10 @@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@
GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@
GL_GNULIB_STRINGEQ = @GL_GNULIB_STRINGEQ@
GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@
+GL_GNULIB_STRNCPY = @GL_GNULIB_STRNCPY@
GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@
GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@
+GL_GNULIB_STRNUL = @GL_GNULIB_STRNUL@
GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@
GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@
GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@
@@ -3465,6 +3476,7 @@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
HAVE_NEWLOCALE = @HAVE_NEWLOCALE@
HAVE_OFF64_T = @HAVE_OFF64_T@
HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENAT2 = @HAVE_OPENAT2@
HAVE_OS_H = @HAVE_OS_H@
HAVE_PCLOSE = @HAVE_PCLOSE@
HAVE_PIPE = @HAVE_PIPE@
@@ -3622,6 +3634,7 @@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@
HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_PROCESS_H = @HAVE_SYS_PROCESS_H@
HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@
HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
@@ -3722,6 +3735,7 @@ LC_NUMERIC_IMPLEMENTED = @LC_NUMERIC_IMPLEMENTED@
LC_TIME_IMPLEMENTED = @LC_TIME_IMPLEMENTED@
LD = @LD@
LDFLAGS = @LDFLAGS@
+LIBDL = @LIBDL@
LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
LIBMULTITHREAD = @LIBMULTITHREAD@
@@ -4167,6 +4181,7 @@ REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
REPLACE_SIGNBIT_USING_BUILTINS = @REPLACE_SIGNBIT_USING_BUILTINS@
REPLACE_SINF = @REPLACE_SINF@
REPLACE_SINHF = @REPLACE_SINHF@
+REPLACE_SINL = @REPLACE_SINL@
REPLACE_SLEEP = @REPLACE_SLEEP@
REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
REPLACE_SPRINTF = @REPLACE_SPRINTF@
@@ -4186,6 +4201,7 @@ REPLACE_STRERROR_L = @REPLACE_STRERROR_L@
REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
REPLACE_STRFTIME = @REPLACE_STRFTIME@
REPLACE_STRNCAT = @REPLACE_STRNCAT@
+REPLACE_STRNCPY = @REPLACE_STRNCPY@
REPLACE_STRNDUP = @REPLACE_STRNDUP@
REPLACE_STRNLEN = @REPLACE_STRNLEN@
REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
@@ -4393,12 +4409,13 @@ EXTRA_DIST = alloca.in.h amemxfrm.h array-mergesort.h assert.in.h \
setlocale-fixes.h setlocale_null.h windows-initguard.h \
setlocale_null.h float+.h _Noreturn.h arg-nonnull.h c++defs.h \
warn-on-use.h intprops-internal.h stdckdint.in.h stddef.in.h \
- stdint.in.h stdlib.in.h streq.h iconveh.h string.in.h strstr.c \
- str-two-way.h strstr.c sys_types.in.h thread-optim.h time.in.h \
- uchar.in.h 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 \
+ stdint.in.h stdlib.in.h streq-opt.h iconveh.h string.in.h \
+ strstr.c str-two-way.h strstr.c sys_types.in.h thread-optim.h \
+ time.in.h uchar.in.h 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.in.h \
unicase/casefold.h unicase/simple-mapping.h \
unicase/tocasefold.h unicase/simple-mapping.h \
@@ -4718,7 +4735,7 @@ MOSTLYCLEANFILES = core *.stackdump core *.stackdump alloca.h \
wchar.h wchar.h-t1 wchar.h-t2 wchar.h-t3 wctype.h wctype.h-t \
unistring/stdint.h-t unistring/localcharset.h-t \
unistring/iconveh.h-t libunistring.sym-t1 libunistring.sym-t2 \
- config.h config.h-t $(am__append_541)
+ config.h config.h-t $(am__append_542)
MOSTLYCLEANDIRS = sys
CLEANFILES = unistring/stdint.h unistring/localcharset.h \
unistring/iconveh.h
@@ -4782,28 +4799,28 @@ libunistring_la_SOURCES = amemxfrm.c c-ctype.h c-ctype.c \
$(am__append_21) setlocale_null.c $(am__append_22) \
setlocale_null-unlocked.c $(am__append_23) size_max.h stdlib.c \
striconveh.h striconveh.c striconveha.h striconveha.c string.c \
- $(am__append_24) glthread/threadlib.c unicase/cased.c \
- $(am__append_25) $(am__append_26) unicase/ignorable.c \
- $(am__append_27) unicase/special-casing.c unicase/tocasefold.c \
- $(am__append_28) $(am__append_29) $(am__append_30) \
+ $(am__append_24) $(am__append_25) glthread/threadlib.c \
+ unicase/cased.c $(am__append_26) $(am__append_27) \
+ unicase/ignorable.c $(am__append_28) unicase/special-casing.c \
+ unicase/tocasefold.c $(am__append_29) $(am__append_30) \
$(am__append_31) $(am__append_32) $(am__append_33) \
- unicase/u16-casemap.c $(am__append_34) $(am__append_35) \
+ $(am__append_34) unicase/u16-casemap.c $(am__append_35) \
$(am__append_36) $(am__append_37) $(am__append_38) \
- $(am__append_39) $(am__append_40) unicase/u16-is-invariant.c \
- $(am__append_41) $(am__append_42) $(am__append_43) \
+ $(am__append_39) $(am__append_40) $(am__append_41) \
+ unicase/u16-is-invariant.c $(am__append_42) $(am__append_43) \
$(am__append_44) $(am__append_45) $(am__append_46) \
$(am__append_47) $(am__append_48) $(am__append_49) \
- $(am__append_50) $(am__append_51) unicase/u32-casemap.c \
- $(am__append_52) $(am__append_53) $(am__append_54) \
+ $(am__append_50) $(am__append_51) $(am__append_52) \
+ unicase/u32-casemap.c $(am__append_53) $(am__append_54) \
$(am__append_55) $(am__append_56) $(am__append_57) \
- $(am__append_58) unicase/u32-is-invariant.c $(am__append_59) \
+ $(am__append_58) $(am__append_59) unicase/u32-is-invariant.c \
$(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) unicase/u8-casemap.c $(am__append_70) \
+ $(am__append_69) $(am__append_70) unicase/u8-casemap.c \
$(am__append_71) $(am__append_72) $(am__append_73) \
$(am__append_74) $(am__append_75) $(am__append_76) \
- unicase/u8-is-invariant.c $(am__append_77) $(am__append_78) \
+ $(am__append_77) unicase/u8-is-invariant.c $(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) \
@@ -4829,8 +4846,8 @@ libunistring_la_SOURCES = amemxfrm.c c-ctype.h c-ctype.c \
$(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) unictype/categ_none.c \
- $(am__append_156) $(am__append_157) $(am__append_158) \
+ $(am__append_154) $(am__append_155) $(am__append_156) \
+ unictype/categ_none.c $(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) \
@@ -4880,91 +4897,91 @@ libunistring_la_SOURCES = amemxfrm.c c-ctype.h c-ctype.c \
$(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) unilbrk/lbrktables.c $(am__append_307) \
+ $(am__append_306) $(am__append_307) unilbrk/lbrktables.c \
$(am__append_308) $(am__append_309) $(am__append_310) \
- $(am__append_311) $(am__append_312) unilbrk/ulc-common.c \
- $(am__append_313) $(am__append_314) $(am__append_315) \
- $(am__append_316) $(am__append_317) \
- uninorm/compat-decomposition.c $(am__append_318) \
- uninorm/decompose-internal.c $(am__append_319) \
- $(am__append_320) uninorm/decomposition-table.c \
- $(am__append_321) $(am__append_322) $(am__append_323) \
- $(am__append_324) $(am__append_325) $(am__append_326) \
- $(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) unistd.c \
- unistdio/u-printf-args.c $(am__append_338) $(am__append_339) \
- unistdio/u16-printf-parse.c $(am__append_340) \
- $(am__append_341) $(am__append_342) $(am__append_343) \
- $(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) \
- unistdio/u32-printf-parse.c $(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) \
- unistdio/u8-printf-parse.c $(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) \
- unistdio/ulc-printf-parse.c $(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) \
- $(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) \
- $(am__append_486) $(am__append_487) $(am__append_488) \
- $(am__append_489) $(am__append_490) $(am__append_491) \
- $(am__append_492) $(am__append_493) $(am__append_494) \
- $(am__append_495) $(am__append_496) $(am__append_497) \
- $(am__append_498) $(am__append_499) $(am__append_500) \
- $(am__append_501) $(am__append_502) $(am__append_503) \
- $(am__append_504) $(am__append_505) $(am__append_506) \
- $(am__append_507) $(am__append_508) $(am__append_509) \
- $(am__append_510) $(am__append_511) $(am__append_512) \
- $(am__append_513) $(am__append_514) $(am__append_515) \
- $(am__append_516) $(am__append_517) $(am__append_518) \
- $(am__append_519) $(am__append_520) $(am__append_521) \
- uniwbrk/wbrktable.c $(am__append_522) $(am__append_523) \
- $(am__append_524) $(am__append_525) $(am__append_526) \
- $(am__append_527) $(am__append_528) $(am__append_529) \
- $(am__append_530) $(am__append_531) $(am__append_532) \
- $(am__append_533) wctype-h.c $(am__append_534) \
- $(am__append_535) $(am__append_536) $(am__append_537) \
- $(am__append_538) xsize.h xsize.c version.c $(am__append_539)
+ $(am__append_311) $(am__append_312) $(am__append_313) \
+ unilbrk/ulc-common.c $(am__append_314) $(am__append_315) \
+ $(am__append_316) $(am__append_317) $(am__append_318) \
+ uninorm/compat-decomposition.c $(am__append_319) \
+ uninorm/decompose-internal.c $(am__append_320) \
+ $(am__append_321) uninorm/decomposition-table.c \
+ $(am__append_322) $(am__append_323) $(am__append_324) \
+ $(am__append_325) $(am__append_326) $(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) unistd.c \
+ unistdio/u-printf-args.c $(am__append_339) $(am__append_340) \
+ unistdio/u16-printf-parse.c $(am__append_341) \
+ $(am__append_342) $(am__append_343) $(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) \
+ unistdio/u32-printf-parse.c $(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) \
+ unistdio/u8-printf-parse.c $(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) \
+ unistdio/ulc-printf-parse.c $(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) $(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) $(am__append_486) \
+ $(am__append_487) $(am__append_488) $(am__append_489) \
+ $(am__append_490) $(am__append_491) $(am__append_492) \
+ $(am__append_493) $(am__append_494) $(am__append_495) \
+ $(am__append_496) $(am__append_497) $(am__append_498) \
+ $(am__append_499) $(am__append_500) $(am__append_501) \
+ $(am__append_502) $(am__append_503) $(am__append_504) \
+ $(am__append_505) $(am__append_506) $(am__append_507) \
+ $(am__append_508) $(am__append_509) $(am__append_510) \
+ $(am__append_511) $(am__append_512) $(am__append_513) \
+ $(am__append_514) $(am__append_515) $(am__append_516) \
+ $(am__append_517) $(am__append_518) $(am__append_519) \
+ $(am__append_520) $(am__append_521) $(am__append_522) \
+ uniwbrk/wbrktable.c $(am__append_523) $(am__append_524) \
+ $(am__append_525) $(am__append_526) $(am__append_527) \
+ $(am__append_528) $(am__append_529) $(am__append_530) \
+ $(am__append_531) $(am__append_532) $(am__append_533) \
+ $(am__append_534) wctype-h.c $(am__append_535) \
+ $(am__append_536) $(am__append_537) $(am__append_538) \
+ $(am__append_539) xsize.h xsize.c version.c $(am__append_540)
libunistring_la_CFLAGS = $(AM_CFLAGS) $(GL_CFLAG_GNULIB_WARNINGS) $(GL_CFLAG_ALLOW_WARNINGS)
libunistring_la_LIBADD = $(gl_libunistring_LTLIBOBJS) $(WOE32_LIBADD)
libunistring_la_DEPENDENCIES = $(gl_libunistring_LTLIBOBJS) \
@@ -4982,7 +4999,7 @@ libunistring_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined \
$(GETLOCALENAME_L_LIB) $(HARD_LOCALE_LIB) $(LIBPTHREAD) \
$(LIBTHREAD) $(LTLIBC32CONV) $(LTLIBICONV) $(LTLIBUNISTRING) \
$(MBRTOWC_LIB) $(PTHREAD_ONCE_LIB) $(SETLOCALE_NULL_LIB) \
- @INTL_MACOSX_LIBS@ $(LTLIBICONV) $(am__append_540) \
+ @INTL_MACOSX_LIBS@ $(LTLIBICONV) $(am__append_541) \
-version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) -rpath \
$(libdir)
@@ -6100,6 +6117,9 @@ libunistring_la-string.lo: string.c
libunistring_la-strncat.lo: strncat.c
$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libunistring_la_CFLAGS) $(CFLAGS) -c -o libunistring_la-strncat.lo `test -f 'strncat.c' || echo '$(srcdir)/'`strncat.c
+libunistring_la-strncpy.lo: strncpy.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libunistring_la_CFLAGS) $(CFLAGS) -c -o libunistring_la-strncpy.lo `test -f 'strncpy.c' || echo '$(srcdir)/'`strncpy.c
+
glthread/libunistring_la-threadlib.lo: glthread/threadlib.c
$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libunistring_la_CFLAGS) $(CFLAGS) -c -o glthread/libunistring_la-threadlib.lo `test -f 'glthread/threadlib.c' || echo '$(srcdir)/'`glthread/threadlib.c
@@ -8176,10 +8196,12 @@ fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
-e 's/@''GNULIB_NONBLOCKING''@/$(GL_GNULIB_NONBLOCKING)/g' \
-e 's/@''GNULIB_OPEN''@/$(GL_GNULIB_OPEN)/g' \
-e 's/@''GNULIB_OPENAT''@/$(GL_GNULIB_OPENAT)/g' \
+ -e 's/@''GNULIB_OPENAT2''@/$(GL_GNULIB_OPENAT2)/g' \
-e 's/@''GNULIB_MDA_CREAT''@/$(GL_GNULIB_MDA_CREAT)/g' \
-e 's/@''GNULIB_MDA_OPEN''@/$(GL_GNULIB_MDA_OPEN)/g' \
-e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \
-e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \
+ -e 's|@''HAVE_OPENAT2''@|$(HAVE_OPENAT2)|g' \
-e 's|@''REPLACE_CREAT''@|$(REPLACE_CREAT)|g' \
-e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \
-e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \
@@ -8401,8 +8423,11 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
-e 's/@''GNULIB_ILOGBF''@/$(GL_GNULIB_ILOGBF)/g' \
-e 's/@''GNULIB_ILOGBL''@/$(GL_GNULIB_ILOGBL)/g' \
-e 's/@''GNULIB_ISFINITE''@/$(GL_GNULIB_ISFINITE)/g' \
+ -e 's/@''GNULIB_ISFINITE_NO_CXX''@/$(GL_GNULIB_ISFINITE_NO_CXX)/g' \
-e 's/@''GNULIB_ISINF''@/$(GL_GNULIB_ISINF)/g' \
+ -e 's/@''GNULIB_ISINF_NO_CXX''@/$(GL_GNULIB_ISINF_NO_CXX)/g' \
-e 's/@''GNULIB_ISNAN''@/$(GL_GNULIB_ISNAN)/g' \
+ -e 's/@''GNULIB_ISNAN_NO_CXX''@/$(GL_GNULIB_ISNAN_NO_CXX)/g' \
-e 's/@''GNULIB_ISNANF''@/$(GL_GNULIB_ISNANF)/g' \
-e 's/@''GNULIB_ISNAND''@/$(GL_GNULIB_ISNAND)/g' \
-e 's/@''GNULIB_ISNANL''@/$(GL_GNULIB_ISNANL)/g' \
@@ -8447,6 +8472,7 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
-e 's/@''GNULIB_SETPAYLOADSIGF''@/$(GL_GNULIB_SETPAYLOADSIGF)/g' \
-e 's/@''GNULIB_SETPAYLOADSIGL''@/$(GL_GNULIB_SETPAYLOADSIGL)/g' \
-e 's/@''GNULIB_SIGNBIT''@/$(GL_GNULIB_SIGNBIT)/g' \
+ -e 's/@''GNULIB_SIGNBIT_NO_CXX''@/$(GL_GNULIB_SIGNBIT_NO_CXX)/g' \
-e 's/@''GNULIB_SINF''@/$(GL_GNULIB_SINF)/g' \
-e 's/@''GNULIB_SINL''@/$(GL_GNULIB_SINL)/g' \
-e 's/@''GNULIB_SINHF''@/$(GL_GNULIB_SINHF)/g' \
@@ -8666,6 +8692,7 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
-e 's|@''REPLACE_SIGNBIT_USING_BUILTINS''@|$(REPLACE_SIGNBIT_USING_BUILTINS)|g' \
-e 's|@''REPLACE_SINF''@|$(REPLACE_SINF)|g' \
-e 's|@''REPLACE_SINHF''@|$(REPLACE_SINHF)|g' \
+ -e 's|@''REPLACE_SINL''@|$(REPLACE_SINL)|g' \
-e 's|@''REPLACE_SQRTF''@|$(REPLACE_SQRTF)|g' \
-e 's|@''REPLACE_SQRTL''@|$(REPLACE_SQRTL)|g' \
-e 's|@''REPLACE_TANF''@|$(REPLACE_TANF)|g' \
@@ -9025,6 +9052,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
-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_SYS_PROCESS_H''@|$(HAVE_SYS_PROCESS_H)|g' \
-e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \
-e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \
< $@-t1 > $@-t2
@@ -9120,8 +9148,10 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
-e 's/@''GNULIB_STRDUP''@/$(GL_GNULIB_STRDUP)/g' \
-e 's/@''GNULIB_STRINGEQ''@/$(GL_GNULIB_STRINGEQ)/g' \
-e 's/@''GNULIB_STRNCAT''@/$(GL_GNULIB_STRNCAT)/g' \
+ -e 's/@''GNULIB_STRNCPY''@/$(GL_GNULIB_STRNCPY)/g' \
-e 's/@''GNULIB_STRNDUP''@/$(GL_GNULIB_STRNDUP)/g' \
-e 's/@''GNULIB_STRNLEN''@/$(GL_GNULIB_STRNLEN)/g' \
+ -e 's/@''GNULIB_STRNUL''@/$(GL_GNULIB_STRNUL)/g' \
-e 's/@''GNULIB_STRPBRK''@/$(GL_GNULIB_STRPBRK)/g' \
-e 's/@''GNULIB_STRSEP''@/$(GL_GNULIB_STRSEP)/g' \
-e 's/@''GNULIB_STRSTR''@/$(GL_GNULIB_STRSTR)/g' \
@@ -9181,6 +9211,7 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
-e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \
-e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
-e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \
+ -e 's|@''REPLACE_STRNCPY''@|$(REPLACE_STRNCPY)|g' \
-e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \
-e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \
-e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
@@ -10057,6 +10088,9 @@ unistring/stdint.h : $(STDINT_H) stdint.mini.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
echo '#include <stddef.h>'; \
+ echo '#if __cplusplus >= 201103'; \
+ echo '#include <cstdint>'; \
+ echo '#else'; \
echo '#if __GLIBC__ >= 2'; \
echo '#include <stdint.h>'; \
echo '#else'; \
@@ -10087,6 +10121,7 @@ unistring/stdint.h : $(STDINT_H) stdint.mini.h
-e 's/@''HAVE_SYS_BITYPES_H''@/0/g' \
< $(srcdir)/stdint.mini.h; \
echo '#endif'; \
+ echo '#endif'; \
} > $@-t
mv $@-t $@
unistring/localcharset.h : localcharset.h
diff --git a/lib/_Noreturn.h b/lib/_Noreturn.h
index d42f15ee..0bab051e 100644
--- a/lib/_Noreturn.h
+++ b/lib/_Noreturn.h
@@ -1,5 +1,5 @@
/* A C macro for declaring that a function does not return.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 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/alloca.in.h b/lib/alloca.in.h
index afb00caf..bb2cb881 100644
--- a/lib/alloca.in.h
+++ b/lib/alloca.in.h
@@ -1,6 +1,6 @@
/* Memory allocation on the stack.
- Copyright (C) 1995, 1999, 2001-2004, 2006-2025 Free Software Foundation,
+ Copyright (C) 1995, 1999, 2001-2004, 2006-2026 Free Software Foundation,
Inc.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/amemxfrm.c b/lib/amemxfrm.c
index 2ddff632..6402f9e3 100644
--- a/lib/amemxfrm.c
+++ b/lib/amemxfrm.c
@@ -1,5 +1,5 @@
/* Locale dependent memory area transformation for comparison.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
@@ -29,12 +29,7 @@ amemxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp)
{
/* Result accumulator. */
char *result;
- size_t length;
size_t allocated;
-
- char orig_sentinel;
-
- /* Initial memory allocation. */
if (resultbuf != NULL && *lengthp > 0)
{
result = resultbuf;
@@ -47,10 +42,10 @@ amemxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp)
if (result == NULL)
goto out_of_memory_2;
}
- length = 0;
+ size_t length = 0;
/* Add sentinel.byte. */
- orig_sentinel = s[n];
+ char orig_sentinel = s[n];
s[n] = '\0';
/* Iterate through S, transforming each NUL terminated segment.
@@ -60,16 +55,13 @@ amemxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp)
const char *p_end = s + n + 1;
const char *p;
- p = s;
- for (;;)
+ for (p = s;;)
{
/* Search next NUL byte. */
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
@@ -79,14 +71,13 @@ amemxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp)
if (3 * l >= allocated - length)
{
/* Grow the result buffer. */
- size_t new_allocated;
- char *new_result;
-
- new_allocated = length + 3 * l + 1;
+ size_t new_allocated = length + 3 * l + 1;
if (new_allocated < 2 * allocated)
new_allocated = 2 * allocated;
if (new_allocated < 64)
new_allocated = 64;
+
+ char *new_result;
if (result == resultbuf)
new_result = (char *) malloc (new_allocated);
else
@@ -99,20 +90,19 @@ amemxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp)
}
errno = 0;
- k = strxfrm (result + length, p, allocated - length);
+ size_t k = strxfrm (result + length, p, allocated - length);
if (errno != 0)
goto fail;
if (k >= allocated - length)
{
/* Grow the result buffer. */
- size_t new_allocated;
- char *new_result;
-
- new_allocated = length + k + 1;
+ size_t new_allocated = length + k + 1;
if (new_allocated < 2 * allocated)
new_allocated = 2 * allocated;
if (new_allocated < 64)
new_allocated = 64;
+
+ char *new_result;
if (result == resultbuf)
new_result = (char *) malloc (new_allocated);
else
diff --git a/lib/amemxfrm.h b/lib/amemxfrm.h
index 9c88693c..5177a333 100644
--- a/lib/amemxfrm.h
+++ b/lib/amemxfrm.h
@@ -1,5 +1,5 @@
/* Locale dependent memory area transformation for comparison.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/arg-nonnull.h b/lib/arg-nonnull.h
index 747bb413..d370d139 100644
--- a/lib/arg-nonnull.h
+++ b/lib/arg-nonnull.h
@@ -1,5 +1,5 @@
/* A C macro for declaring that specific arguments must not be NULL.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 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/array-mergesort.h b/lib/array-mergesort.h
index 4b1ae6d7..468b7a77 100644
--- a/lib/array-mergesort.h
+++ b/lib/array-mergesort.h
@@ -1,5 +1,5 @@
/* Stable-sorting of an array using mergesort.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/assert.in.h b/lib/assert.in.h
index 87339abc..8a564670 100644
--- a/lib/assert.in.h
+++ b/lib/assert.in.h
@@ -1,5 +1,5 @@
/* Substitute for and wrapper around <assert.h>
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/attribute.h b/lib/attribute.h
index c85412d9..c50befdf 100644
--- a/lib/attribute.h
+++ b/lib/attribute.h
@@ -1,6 +1,6 @@
/* ATTRIBUTE_* macros for using attributes in GCC and similar compilers
- Copyright 2020-2025 Free Software Foundation, Inc.
+ Copyright 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -89,7 +89,7 @@
_GL_ATTRIBUTE_NONNULL_IF_NONZERO, _GL_ATTRIBUTE_NONSTRING,
_GL_ATTRIBUTE_NOTHROW, _GL_ATTRIBUTE_PACKED, _GL_ATTRIBUTE_PURE,
_GL_ATTRIBUTE_REPRODUCIBLE, _GL_ATTRIBUTE_RETURNS_NONNULL,
- _GL_ATTRIBUTE_SENTINEL, _GL_ATTRIBUTE_UNSEQUENCED. */
+ _GL_ATTRIBUTE_SENTINEL, _GL_ATTRIBUTE_UNSEQUENCED, _GL_UNNAMED. */
#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
@@ -240,62 +240,68 @@
/* Applies to: functions. */
#define ATTRIBUTE_ALWAYS_INLINE _GL_ATTRIBUTE_ALWAYS_INLINE
-/* It is OK for a compiler to move calls to the function and to omit
- calls to the function if another call has the same arguments or the
- result is not used.
- This attribute is safe for a function that neither depends on
- nor affects state, and always returns exactly once -
+/* It is OK for a compiler to move a call, or omit a duplicate call
+ and reuse a cached return value, even if the state changes between calls.
+ It is also OK to omit a call if the result is not used.
+ This attribute is safe if the function does not change observable state,
+ returns a value determined solely by its arguments' values
+ without examining state, and always returns exactly once -
e.g., does not raise an exception, call longjmp, or loop forever.
- (This attribute is stricter than ATTRIBUTE_PURE because the
- function cannot observe state. It is stricter than UNSEQUENCED
- because the function must return exactly once and cannot depend on
- state addressed by its arguments.) */
+ (This attribute is stricter than _GL_ATTRIBUTE_PURE because the
+ function cannot observe state. Unlike _GL_ATTRIBUTE_UNSEQUENCED
+ the function must return exactly once and cannot access state
+ addressed by its pointer arguments or that happens to have the same
+ value for all calls to the function, but the function is allowed to
+ return a pointer to storage that can be modified later. */
/* Applies to: functions. */
#define ATTRIBUTE_CONST _GL_ATTRIBUTE_CONST
-/* It is OK for a compiler to move calls to the function and to omit duplicate
- calls to the function with the same arguments, so long as the state
- addressed by its arguments is the same.
+/* It is OK for a compiler to move a call, or omit a duplicate call
+ and reuse a cached value returned either directly or indirectly via
+ a pointer, if the state addressed by its pointer arguments is the same;
+ however, pointer arguments cannot alias.
This attribute is safe for a function that is effectless, idempotent,
- stateless, and independent; see ISO C 23 § 6.7.12.7 for a definition of
+ stateless, and independent; see ISO C 23 § 6.7.13.8 for a definition of
these terms.
- (This attribute is stricter than REPRODUCIBLE because the function
- must be stateless and independent. It is looser than ATTRIBUTE_CONST
- because the function need not return exactly once and can depend
- on state addressed by its arguments.)
+ (This attribute is stricter than _GL_ATTRIBUTE_REPRODUCIBLE because
+ the function must be stateless and independent. Unlike
+ _GL_ATTRIBUTE_CONST the function need not return exactly once, and
+ can depend on state accessed via its pointer arguments or that
+ happens to have the same value for all calls to the function, but
+ the function cannot return a pointer to storage whose contents
+ change later.)
See also <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2956.htm> and
- <https://stackoverflow.com/questions/76847905/>.
- ATTENTION! Efforts are underway to change the meaning of this attribute.
- See <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3424.htm>. */
+ <https://stackoverflow.com/questions/76847905/>. */
/* Applies to: functions, pointer to functions, function type. */
#define UNSEQUENCED _GL_ATTRIBUTE_UNSEQUENCED
-/* It is OK for a compiler to move calls to the function and to omit
- calls to the function if another call has the same arguments or the
- result is not used, and if observable state is the same.
- This attribute is safe for a function that does not affect observable state
- and always returns exactly once.
- (This attribute is looser than ATTRIBUTE_CONST because the function
- can depend on observable state. It is stricter than REPRODUCIBLE
- because the function must return exactly once and cannot affect
- state addressed by its arguments.) */
+/* It is OK for a compiler to move a call, or omit a duplicate call
+ and reuse a cached return value, if observable state is the same.
+ It is also OK to omit a call if the return value is not used.
+ This attribute is safe if the function does not change observable state,
+ returns a value determined solely by its arguments's values
+ together with observable state, and always returns exactly once.
+ (This attribute is looser than _GL_ATTRIBUTE_CONST because the function
+ can depend on observable state.
+ Unlike _GL_ATTRIBUTE_REPRODUCIBLE the function must return exactly
+ once and cannot change state addressed by its arguments, but the
+ function can return a pointer to storage whose contents change later.) */
/* Applies to: functions. */
#define ATTRIBUTE_PURE _GL_ATTRIBUTE_PURE
-/* It is OK for a compiler to move calls to the function and to omit duplicate
- calls to the function with the same arguments, so long as the state
- addressed by its arguments is the same and is updated in time for
- the rest of the program.
- This attribute is safe for a function that is effectless and idempotent; see
- ISO C 23 § 6.7.12.7 for a definition of these terms.
- (This attribute is looser than UNSEQUENCED because the function need
- not be stateless and idempotent. It is looser than ATTRIBUTE_PURE
- because the function need not return exactly once and can affect
- state addressed by its arguments.)
+/* It is OK for a compiler to move a call, or omit a duplicate call
+ and reuse a cached value returned either directly or indirectly via
+ a pointer, if other observable state is the same;
+ however, pointer arguments cannot alias.
+ This attribute is safe for a function that is effectless and idempotent;
+ see ISO C 23 § 6.7.13.8 for a definition of these terms.
+ (This attribute is looser than _GL_ATTRIBUTE_UNSEQUENCED because
+ the function need not be stateless or independent.
+ Unlike _GL_ATTRIBUTE_PURE the function need not return exactly once
+ and can change state addressed by its pointer arguments, but the
+ function cannot return a pointer to storage whose contents change later.)
See also <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2956.htm> and
- <https://stackoverflow.com/questions/76847905/>.
- ATTENTION! Efforts are underway to change the meaning of this attribute.
- See <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3424.htm>. */
+ <https://stackoverflow.com/questions/76847905/>. */
/* Applies to: functions, pointer to functions, function type. */
#define REPRODUCIBLE _GL_ATTRIBUTE_REPRODUCIBLE
@@ -328,4 +334,18 @@
#define ATTRIBUTE_MAY_ALIAS _GL_ATTRIBUTE_MAY_ALIAS
+/* ==================== Unnamed function parameters ======================== */
+
+/* Although UNNAMED is not an attribute, it is related to MAYBE_UNUSED
+ and so is defined here for convenience. */
+
+/* UNNAMED (ID) is the "name" of an unnamed function parameter.
+ Each of the function's unnamed parameters should have a unique "name".
+ The "name" cannot be used. This ports both to C17 and earlier, which
+ lack unnamed parameters, and to C++ and later C, which have them. */
+/* Applies to:
+ - function parameters. */
+#define UNNAMED(id) _GL_UNNAMED (id)
+
+
#endif /* _GL_ATTRIBUTE_H */
diff --git a/lib/c++defs.h b/lib/c++defs.h
index b77979a3..cfe68cb1 100644
--- a/lib/c++defs.h
+++ b/lib/c++defs.h
@@ -1,5 +1,5 @@
/* C++ compatible function declaration macros.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 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
@@ -127,6 +127,16 @@
#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \
_GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters
+/* _GL_FUNCDECL_SYS_NAME (func) expands to plain func if C++, and to
+ parenthesized func otherwise. Parenthesization is needed in C23 if
+ the function is like strchr and so is a qualifier-generic macro
+ that expands to something more complicated. */
+#ifdef __cplusplus
+# define _GL_FUNCDECL_SYS_NAME(func) func
+#else
+# define _GL_FUNCDECL_SYS_NAME(func) (func)
+#endif
+
/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]);
declares the system function, named func, with the given prototype,
consisting of return type, parameters, and attributes.
@@ -139,7 +149,7 @@
_GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD);
*/
#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \
- _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters
+ _GL_EXTERN_C_FUNC __VA_ARGS__ rettype _GL_FUNCDECL_SYS_NAME (func) parameters
/* _GL_CXXALIAS_RPL (func, rettype, parameters);
declares a C++ alias called GNULIB_NAMESPACE::func
diff --git a/lib/c-ctype.c b/lib/c-ctype.c
index ecf2c083..cd9a205a 100644
--- a/lib/c-ctype.c
+++ b/lib/c-ctype.c
@@ -1,6 +1,6 @@
/* Character handling in C locale.
- Copyright (C) 2003-2025 Free Software Foundation, Inc.
+ Copyright (C) 2003-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -15,7 +15,6 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define C_CTYPE_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "c-ctype.h"
diff --git a/lib/c-ctype.h b/lib/c-ctype.h
index 39063142..e3448a43 100644
--- a/lib/c-ctype.h
+++ b/lib/c-ctype.h
@@ -5,7 +5,7 @@
<ctype.h> functions' behaviour depends on the current locale set via
setlocale.
- Copyright (C) 2000-2003, 2006, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2000-2003, 2006, 2008-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c-strcase.h b/lib/c-strcase.h
index 9bef992b..996ea6f7 100644
--- a/lib/c-strcase.h
+++ b/lib/c-strcase.h
@@ -1,5 +1,5 @@
/* Case-insensitive string comparison functions in C locale.
- Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2025 Free Software
+ Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2026 Free Software
Foundation, Inc.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/c-strcasecmp.c b/lib/c-strcasecmp.c
index 2d963c30..2e7f5405 100644
--- a/lib/c-strcasecmp.c
+++ b/lib/c-strcasecmp.c
@@ -1,5 +1,5 @@
/* c-strcasecmp.c -- case insensitive string comparator in C locale
- Copyright (C) 1998-1999, 2005-2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1998-1999, 2005-2006, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -28,29 +28,24 @@ c_strcasecmp (const char *s1, const char *s2)
{
register const unsigned char *p1 = (const unsigned char *) s1;
register const unsigned char *p2 = (const unsigned char *) s2;
- unsigned char c1, c2;
if (p1 == p2)
return 0;
- do
+ for (;; p1++, p2++)
{
- c1 = c_tolower (*p1);
- c2 = c_tolower (*p2);
-
- if (c1 == '\0')
- break;
-
- ++p1;
- ++p2;
+ unsigned char c1 = c_tolower (*p1);
+ unsigned char c2 = c_tolower (*p2);
+
+ if (c1 == '\0' || c1 != c2)
+ {
+ if (UCHAR_MAX <= INT_MAX)
+ return c1 - c2;
+ else
+ /* On machines where 'char' and 'int' are types of the same size,
+ the difference of two 'unsigned char' values - including the
+ sign bit - doesn't fit in an 'int'. */
+ return _GL_CMP (c1, c2);
+ }
}
- while (c1 == c2);
-
- if (UCHAR_MAX <= INT_MAX)
- return c1 - c2;
- else
- /* On machines where 'char' and 'int' are types of the same size, the
- difference of two 'unsigned char' values - including the sign bit -
- doesn't fit in an 'int'. */
- return _GL_CMP (c1, c2);
}
diff --git a/lib/c-strcaseeq.h b/lib/c-strcaseeq.h
index 4a368100..c135f068 100644
--- a/lib/c-strcaseeq.h
+++ b/lib/c-strcaseeq.h
@@ -1,5 +1,5 @@
/* Optimized case-insensitive string comparison in C locale.
- Copyright (C) 2001-2002, 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32is-impl.h b/lib/c32is-impl.h
index 2a8c4aeb..2cd03dc4 100644
--- a/lib/c32is-impl.h
+++ b/lib/c32is-impl.h
@@ -1,5 +1,5 @@
/* Test whether a 32-bit wide character belongs to a specific character class.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -25,7 +25,7 @@
#if GNULIB_defined_mbstate_t
# include "localcharset.h"
-# include "streq.h"
+# include "streq-opt.h"
#endif
#if GL_CHAR32_T_IS_UNICODE
diff --git a/lib/c32isalnum.c b/lib/c32isalnum.c
index 7d0ebcf5..0972d5be 100644
--- a/lib/c32isalnum.c
+++ b/lib/c32isalnum.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being alphanumeric.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32isalpha.c b/lib/c32isalpha.c
index 308fd76a..1dde246d 100644
--- a/lib/c32isalpha.c
+++ b/lib/c32isalpha.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being alphabetic.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32isblank.c b/lib/c32isblank.c
index 1a03c2db..36f21ec1 100644
--- a/lib/c32isblank.c
+++ b/lib/c32isblank.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being blank.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32iscntrl.c b/lib/c32iscntrl.c
index 1d004087..dcb32705 100644
--- a/lib/c32iscntrl.c
+++ b/lib/c32iscntrl.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being a control character.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32isdigit.c b/lib/c32isdigit.c
index 7d3bda81..96374718 100644
--- a/lib/c32isdigit.c
+++ b/lib/c32isdigit.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being a digit.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32isgraph.c b/lib/c32isgraph.c
index 8b68ae39..f660ceba 100644
--- a/lib/c32isgraph.c
+++ b/lib/c32isgraph.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being graphic.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32islower.c b/lib/c32islower.c
index 1ce08cf4..98abb8a2 100644
--- a/lib/c32islower.c
+++ b/lib/c32islower.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being lowercase.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32isprint.c b/lib/c32isprint.c
index d47ce1f8..72975751 100644
--- a/lib/c32isprint.c
+++ b/lib/c32isprint.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being printable.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32ispunct.c b/lib/c32ispunct.c
index 41ac3d70..1945c6c5 100644
--- a/lib/c32ispunct.c
+++ b/lib/c32ispunct.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being a punctuation or symbol character.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32isspace.c b/lib/c32isspace.c
index 2393142b..58e2a02a 100644
--- a/lib/c32isspace.c
+++ b/lib/c32isspace.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being white-space.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32isupper.c b/lib/c32isupper.c
index bfe4a148..29558234 100644
--- a/lib/c32isupper.c
+++ b/lib/c32isupper.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being uppercase.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32isxdigit.c b/lib/c32isxdigit.c
index b38d7f1f..c9262b58 100644
--- a/lib/c32isxdigit.c
+++ b/lib/c32isxdigit.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being a hexadecimal digit.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32to-impl.h b/lib/c32to-impl.h
index 9a905b80..f6eaf5fd 100644
--- a/lib/c32to-impl.h
+++ b/lib/c32to-impl.h
@@ -1,5 +1,5 @@
/* Case mapping of a 32-bit wide character.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -21,7 +21,7 @@
#if GNULIB_defined_mbstate_t
# include "localcharset.h"
-# include "streq.h"
+# include "streq-opt.h"
#endif
#if GL_CHAR32_T_IS_UNICODE
diff --git a/lib/c32tolower.c b/lib/c32tolower.c
index a0b0523f..15608d88 100644
--- a/lib/c32tolower.c
+++ b/lib/c32tolower.c
@@ -1,5 +1,5 @@
/* Map a 32-bit wide character to lowercase.
- Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ Copyright (C) 2023-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32width.c b/lib/c32width.c
index be3371d6..da944cfe 100644
--- a/lib/c32width.c
+++ b/lib/c32width.c
@@ -1,5 +1,5 @@
/* Determine the number of screen columns needed for a 32-bit wide character.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -29,7 +29,7 @@
#endif
#if GNULIB_defined_mbstate_t
-# include "streq.h"
+# include "streq-opt.h"
#endif
#include "localcharset.h"
diff --git a/lib/declared.sh b/lib/declared.sh
index 0c080d0e..91181700 100755
--- a/lib/declared.sh
+++ b/lib/declared.sh
@@ -1,6 +1,6 @@
#! /bin/sh
#
-# Copyright (C) 2006-2025 Free Software Foundation, Inc.
+# Copyright (C) 2006-2026 Free Software Foundation, Inc.
#
# This 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 @@ Send patches and bug reports to <bug-gnulib@gnu.org>."
func_version ()
{
echo "declared.sh (GNU gnulib)"
- echo "Copyright (C) 2025 Free Software Foundation, Inc.
+ echo "Copyright (C) 2026 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law."
diff --git a/lib/errno.in.h b/lib/errno.in.h
index 3db2853c..784a4018 100644
--- a/lib/errno.in.h
+++ b/lib/errno.in.h
@@ -1,6 +1,6 @@
/* A POSIX-like <errno.h>.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/fcntl.in.h b/lib/fcntl.in.h
index 843d36e0..52727074 100644
--- a/lib/fcntl.in.h
+++ b/lib/fcntl.in.h
@@ -1,6 +1,6 @@
/* Like <fcntl.h>, but with non-working flags defined to 0.
- Copyright (C) 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2006-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -122,7 +122,6 @@ _GL_CXXALIAS_SYS (creat, int, (const char *filename, mode_t mode));
# endif
_GL_CXXALIASWARN (creat);
#elif defined GNULIB_POSIXCHECK
-# undef creat
/* Assume creat is always declared. */
_GL_WARN_ON_USE (creat, "creat is not always POSIX compliant - "
"use gnulib module creat for portability");
@@ -165,7 +164,6 @@ _GL_CXXALIAS_SYS (fcntl, int, (int fd, int action, ...));
# endif
_GL_CXXALIASWARN (fcntl);
#elif defined GNULIB_POSIXCHECK
-# undef fcntl
# if HAVE_RAW_DECL_FCNTL
_GL_WARN_ON_USE (fcntl, "fcntl is not always POSIX compliant - "
"use gnulib module fcntl for portability");
@@ -196,7 +194,6 @@ _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
_GL_CXXALIASWARN (open);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef open
/* Assume open is always declared. */
_GL_WARN_ON_USE (open, "open is not always POSIX compliant - "
"use gnulib module open for portability");
@@ -242,13 +239,51 @@ _GL_CXXALIAS_SYS (openat, int,
# endif
_GL_CXXALIASWARN (openat);
#elif defined GNULIB_POSIXCHECK
-# undef openat
# if HAVE_RAW_DECL_OPENAT
_GL_WARN_ON_USE (openat, "openat is not portable - "
"use gnulib module openat for portability");
# endif
#endif
+#if @GNULIB_OPENAT2@
+# if !defined RESOLVE_NO_XDEV && defined __has_include
+# if __has_include (<linux/openat2.h>)
+# include <linux/openat2.h>
+# endif
+# endif
+# ifndef RESOLVE_NO_XDEV
+struct open_how
+{
+# ifdef __UINT64_TYPE__
+ __UINT64_TYPE__ flags, mode, resolve;
+# else
+ unsigned long long int flags, mode, resolve;
+# endif
+};
+# define RESOLVE_NO_XDEV 0x01
+# define RESOLVE_NO_MAGICLINKS 0x02
+# define RESOLVE_NO_SYMLINKS 0x04
+# define RESOLVE_BENEATH 0x08
+# define RESOLVE_IN_ROOT 0x10
+# define RESOLVE_CACHED 0x20
+# endif
+
+# if !@HAVE_OPENAT2@
+_GL_FUNCDECL_SYS (openat2, int,
+ (int fd, char const *file, struct open_how const *how,
+ size_t size),
+ _GL_ARG_NONNULL ((2, 3)));
+# endif
+_GL_CXXALIAS_SYS (openat2, int,
+ (int fd, char const *file, struct open_how const *how,
+ size_t size));
+_GL_CXXALIASWARN (openat2);
+#elif defined GNULIB_POSIXCHECK
+# if HAVE_RAW_DECL_OPENAT2
+_GL_WARN_ON_USE (openat2, "openat2 is not portable - "
+ "use gnulib module openat2 for portability");
+# endif
+#endif
/* Fix up the FD_* macros, only known to be missing on mingw. */
@@ -455,6 +490,15 @@ _GL_WARN_ON_USE (openat, "openat is not portable - "
# define AT_NO_AUTOMOUNT 0
#endif
+/* errno when openat+O_NOFOLLOW fails because the file is a symlink. */
+#if defined __FreeBSD__ || defined __FreeBSD_kernel__ || defined __DragonFly__
+# define _GL_OPENAT_ESYMLINK EMLINK
+#elif defined __NetBSD__
+# define _GL_OPENAT_ESYMLINK EFTYPE
+#else
+# define _GL_OPENAT_ESYMLINK ELOOP
+#endif
+
#endif /* _@GUARD_PREFIX@_FCNTL_H */
#endif /* _@GUARD_PREFIX@_FCNTL_H */
#endif
diff --git a/lib/flexmember.h b/lib/flexmember.h
index b4d86c29..26ec3564 100644
--- a/lib/flexmember.h
+++ b/lib/flexmember.h
@@ -1,6 +1,6 @@
/* Sizes of structs with flexible array members.
- Copyright 2016-2025 Free Software Foundation, Inc.
+ Copyright 2016-2026 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/lib/float+.h b/lib/float+.h
index 37381146..58eca376 100644
--- a/lib/float+.h
+++ b/lib/float+.h
@@ -1,5 +1,5 @@
/* Supplemental information about the floating-point formats.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/float.c b/lib/float.c
index 593e4bcd..2e95957a 100644
--- a/lib/float.c
+++ b/lib/float.c
@@ -1,5 +1,5 @@
/* Auxiliary definitions for <float.h>.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/float.in.h b/lib/float.in.h
index 3093f9a0..9f735cb9 100644
--- a/lib/float.in.h
+++ b/lib/float.in.h
@@ -1,6 +1,6 @@
/* A correct <float.h>.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -119,7 +119,7 @@ extern const union gl_long_double_union gl_LDBL_MAX;
wrong.
Assume these bugs are fixed in any GCC new enough
to define __LDBL_NORM_MAX__. */
-#if (defined __powerpc__ && LDBL_MANT_DIG == 106 \
+#if (defined _ARCH_PPC && LDBL_MANT_DIG == 106 \
&& defined __GNUC__ && !defined __LDBL_NORM_MAX__)
# undef LDBL_MIN_EXP
# define LDBL_MIN_EXP (-968)
diff --git a/lib/fpucw.h b/lib/fpucw.h
index 9625e62d..04e4acdd 100644
--- a/lib/fpucw.h
+++ b/lib/fpucw.h
@@ -1,5 +1,5 @@
/* Manipulating the FPU control word. -*- coding: utf-8 -*-
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/free.c b/lib/free.c
index 394d8d13..e6e7cf0f 100644
--- a/lib/free.c
+++ b/lib/free.c
@@ -1,6 +1,6 @@
/* Make free() preserve errno.
- Copyright (C) 2003, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2006, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -44,9 +44,9 @@ rpl_free (void *p)
free (p);
errno = err[errno == 0];
# else
- int err = errno;
+ int saved_errno = errno;
free (p);
- errno = err;
+ errno = saved_errno;
# endif
}
diff --git a/lib/frexp.c b/lib/frexp.c
index 18b95f6c..4679de86 100644
--- a/lib/frexp.c
+++ b/lib/frexp.c
@@ -1,5 +1,5 @@
/* Split a double into fraction and mantissa.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -57,8 +57,6 @@
DOUBLE
FUNC (DOUBLE x, int *expptr)
{
- int sign;
- int exponent;
DECL_ROUNDING
/* Test for NaN, infinity, and zero. */
@@ -68,7 +66,7 @@ FUNC (DOUBLE x, int *expptr)
return x;
}
- sign = 0;
+ int sign = 0;
if (x < 0)
{
x = - x;
@@ -77,6 +75,8 @@ FUNC (DOUBLE x, int *expptr)
BEGIN_ROUNDING ();
+ int exponent;
+
{
/* Since the exponent is an 'int', it fits in 64 bits. Therefore the
loops are executed no more than 64 times. */
diff --git a/lib/frexpl.c b/lib/frexpl.c
index d6f707da..7a4e92a3 100644
--- a/lib/frexpl.c
+++ b/lib/frexpl.c
@@ -1,5 +1,5 @@
/* Split a 'long double' into fraction and mantissa.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/fseterr.c b/lib/fseterr.c
index 4ac4d932..0ab61765 100644
--- a/lib/fseterr.c
+++ b/lib/fseterr.c
@@ -1,5 +1,5 @@
/* Set the error indicator of a stream.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -24,7 +24,7 @@
#include "stdio-impl.h"
/* This file is not used on systems that have the __fseterr function,
- namely musl libc, Haiku >= hrev58760. */
+ namely OpenBSD >= 7.6, musl libc, Haiku >= hrev58760. */
void
fseterr (FILE *fp)
@@ -35,8 +35,8 @@ fseterr (FILE *fp)
#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1
/* GNU libc, BeOS, Haiku, Linux libc5 */
fp->_flags |= _IO_ERR_SEEN;
-#elif defined __sferror || defined __OpenBSD__ || defined __DragonFly__ || defined __ANDROID__
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
+#elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
+ /* FreeBSD, NetBSD, OpenBSD < 7.6, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
fp_->_flags |= __SERR;
#elif defined __EMX__ /* emx+gcc */
fp->_flags |= _IOERR;
@@ -59,14 +59,10 @@ fseterr (FILE *fp)
Not activated on any system, because there is no way to repair FP when
the sequence of system calls fails, and library code should not call
abort(). */
- int saved_errno;
- int fd;
- int fd2;
-
- saved_errno = errno;
+ int saved_errno = errno;
fflush (fp);
- fd = fileno (fp);
- fd2 = dup (fd);
+ int fd = fileno (fp);
+ int fd2 = dup (fd);
if (fd2 >= 0)
{
close (fd);
diff --git a/lib/fseterr.h b/lib/fseterr.h
index 57c30ef3..ac2b793e 100644
--- a/lib/fseterr.h
+++ b/lib/fseterr.h
@@ -1,5 +1,5 @@
/* Set the error indicator of a stream.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/getlocalename_l-unsafe.c b/lib/getlocalename_l-unsafe.c
index e2738829..665e6d62 100644
--- a/lib/getlocalename_l-unsafe.c
+++ b/lib/getlocalename_l-unsafe.c
@@ -1,5 +1,5 @@
/* Return name of a single locale category.
- Copyright (C) 1995-2025 Free Software Foundation, Inc.
+ Copyright (C) 1995-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -97,10 +97,9 @@ get_locale_t_name_unsafe (int category, locale_t locale)
happen if the application uses the original newlocale()/duplocale()
functions instead of the overridden ones. */
const char *name = "";
- struct locale_hash_node *p;
/* Lock while looking up the hash node. */
gl_rwlock_rdlock (locale_lock);
- for (p = locale_hash_table[slot]; p != NULL; p = p->next)
+ for (struct locale_hash_node *p = locale_hash_table[slot]; p != NULL; p = p->next)
if (p->locale == locale)
{
name = p->names.category_name[category - LCMIN];
@@ -131,10 +130,6 @@ locale_t
newlocale (int category_mask, const char *name, locale_t base)
#undef newlocale
{
- struct locale_categories_names names;
- struct locale_hash_node *node;
- locale_t result;
-
/* Make sure name has indefinite extent. */
if (((LC_CTYPE_MASK | LC_NUMERIC_MASK | LC_TIME_MASK | LC_COLLATE_MASK
| LC_MONETARY_MASK | LC_MESSAGES_MASK)
@@ -142,15 +137,14 @@ newlocale (int category_mask, const char *name, locale_t base)
name = struniq (name);
/* Determine the category names of the result. */
+ struct locale_categories_names names;
if (((LC_CTYPE_MASK | LC_NUMERIC_MASK | LC_TIME_MASK | LC_COLLATE_MASK
| LC_MONETARY_MASK | LC_MESSAGES_MASK)
& ~category_mask) == 0)
{
/* Use name, ignore base. */
- int i;
-
name = struniq (name);
- for (i = 0; i < 6; i++)
+ for (int i = 0; i < 6; i++)
names.category_name[i] = name;
}
else
@@ -158,13 +152,11 @@ newlocale (int category_mask, const char *name, locale_t base)
/* Use base, possibly also name. */
if (base == NULL)
{
- int i;
-
- for (i = 0; i < 6; i++)
+ for (int i = 0; i < 6; i++)
{
int category = i + LCMIN;
- int mask;
+ int mask;
switch (category)
{
case LC_CTYPE:
@@ -194,13 +186,11 @@ newlocale (int category_mask, const char *name, locale_t base)
}
else if (base == LC_GLOBAL_LOCALE)
{
- int i;
-
- for (i = 0; i < 6; i++)
+ for (int i = 0; i < 6; i++)
{
int category = i + LCMIN;
- int mask;
+ int mask;
switch (category)
{
case LC_CTYPE:
@@ -234,22 +224,21 @@ newlocale (int category_mask, const char *name, locale_t base)
{
/* Look up the names of base in the hash table. Like multiple calls
of get_locale_t_name, but locking only once. */
- struct locale_hash_node *p;
/* Lock while looking up the hash node. */
gl_rwlock_rdlock (locale_lock);
+ struct locale_hash_node *p;
for (p = locale_hash_table[locale_hash_function (base) % LOCALE_HASH_TABLE_SIZE];
p != NULL;
p = p->next)
if (p->locale == base)
break;
- int i;
- for (i = 0; i < 6; i++)
+ for (int i = 0; i < 6; i++)
{
int category = i + LCMIN;
- int mask;
+ int mask;
switch (category)
{
case LC_CTYPE:
@@ -283,12 +272,13 @@ newlocale (int category_mask, const char *name, locale_t base)
}
}
- node = (struct locale_hash_node *) malloc (sizeof (struct locale_hash_node));
+ struct locale_hash_node *node =
+ (struct locale_hash_node *) malloc (sizeof (struct locale_hash_node));
if (node == NULL)
/* errno is set to ENOMEM. */
return NULL;
- result = newlocale (category_mask, name, base);
+ locale_t result = newlocale (category_mask, name, base);
if (result == NULL)
{
free (node);
@@ -303,10 +293,10 @@ newlocale (int category_mask, const char *name, locale_t base)
{
size_t hashcode = locale_hash_function (result);
size_t slot = hashcode % LOCALE_HASH_TABLE_SIZE;
- struct locale_hash_node *p;
/* Lock while inserting the new node. */
gl_rwlock_wrlock (locale_lock);
+ struct locale_hash_node *p;
for (p = locale_hash_table[slot]; p != NULL; p = p->next)
if (p->locale == result)
{
@@ -335,19 +325,17 @@ locale_t
duplocale (locale_t locale)
#undef duplocale
{
- struct locale_hash_node *node;
- locale_t result;
-
if (locale == NULL)
/* Invalid argument. */
abort ();
- node = (struct locale_hash_node *) malloc (sizeof (struct locale_hash_node));
+ struct locale_hash_node *node =
+ (struct locale_hash_node *) malloc (sizeof (struct locale_hash_node));
if (node == NULL)
/* errno is set to ENOMEM. */
return NULL;
- result = duplocale (locale);
+ locale_t result = duplocale (locale);
if (result == NULL)
{
free (node);
@@ -358,9 +346,7 @@ duplocale (locale_t locale)
node->locale = result;
if (locale == LC_GLOBAL_LOCALE)
{
- int i;
-
- for (i = 0; i < 6; i++)
+ for (int i = 0; i < 6; i++)
{
int category = i + LCMIN;
node->names.category_name[i] =
@@ -372,11 +358,10 @@ duplocale (locale_t locale)
}
else
{
- struct locale_hash_node *p;
-
/* Lock once, for the lookup and the insertion. */
gl_rwlock_wrlock (locale_lock);
+ struct locale_hash_node *p;
for (p = locale_hash_table[locale_hash_function (locale) % LOCALE_HASH_TABLE_SIZE];
p != NULL;
p = p->next)
@@ -389,9 +374,7 @@ duplocale (locale_t locale)
/* This can happen if the application uses the original
newlocale()/duplocale() functions instead of the overridden
ones. */
- int i;
-
- for (i = 0; i < 6; i++)
+ for (int i = 0; i < 6; i++)
node->names.category_name[i] = "";
}
}
@@ -400,8 +383,8 @@ duplocale (locale_t locale)
{
size_t hashcode = locale_hash_function (result);
size_t slot = hashcode % LOCALE_HASH_TABLE_SIZE;
- struct locale_hash_node *p;
+ struct locale_hash_node *p;
for (p = locale_hash_table[slot]; p != NULL; p = p->next)
if (p->locale == result)
{
@@ -437,13 +420,11 @@ freelocale (locale_t locale)
{
size_t hashcode = locale_hash_function (locale);
size_t slot = hashcode % LOCALE_HASH_TABLE_SIZE;
- struct locale_hash_node *found;
- struct locale_hash_node **p;
- found = NULL;
+ struct locale_hash_node *found = NULL;
/* Lock while removing the hash node. */
gl_rwlock_wrlock (locale_lock);
- for (p = &locale_hash_table[slot]; *p != NULL; p = &(*p)->next)
+ for (struct locale_hash_node **p = &locale_hash_table[slot]; *p != NULL; p = &(*p)->next)
if ((*p)->locale == locale)
{
found = *p;
@@ -491,7 +472,6 @@ getlocalename_l_unsafe (int category, locale_t locale)
#elif (defined __FreeBSD__ || defined __DragonFly__) || (defined __APPLE__ && defined __MACH__)
/* FreeBSD >= 9.1, Mac OS X */
int mask;
-
switch (category)
{
case LC_CTYPE:
@@ -599,6 +579,15 @@ getlocalename_l_unsafe (int category, locale_t locale)
# endif
return (struct string_with_storage) { name, STORAGE_OBJECT };
#elif defined __HAIKU__
+# if HAVE_GETLOCALENAME_L
+ /* Haiku revision hrev59293 (2026-01-07) or newer. */
+# undef getlocalename_l
+ const char *name = getlocalename_l (category, locale);
+ if (strcmp (name, "POSIX") != 0)
+ return (struct string_with_storage) { name, STORAGE_OBJECT };
+ else
+ return (struct string_with_storage) { "C", STORAGE_INDEFINITE };
+# else
/* Since 2022, Haiku has per-thread locales. locale_t is 'void *',
but in fact a 'LocaleBackendData *'. */
struct LocaleBackendData {
@@ -661,6 +650,7 @@ getlocalename_l_unsafe (int category, locale_t locale)
else
/* It's the "C" or "POSIX" locale. */
return (struct string_with_storage) { "C", STORAGE_INDEFINITE };
+# endif
#elif defined __ANDROID__
/* Android API level >= 21 */
struct __locale_t {
diff --git a/lib/getlocalename_l-unsafe.h b/lib/getlocalename_l-unsafe.h
index 97b86637..90a5a8c4 100644
--- a/lib/getlocalename_l-unsafe.h
+++ b/lib/getlocalename_l-unsafe.h
@@ -1,5 +1,5 @@
/* Return name of a single locale category.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/glthread/lock.c b/lib/glthread/lock.c
index a2c53dc7..cfb9393c 100644
--- a/lib/glthread/lock.c
+++ b/lib/glthread/lock.c
@@ -1,5 +1,5 @@
/* Locking in multithreaded situations.
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -261,9 +261,7 @@ int
glthread_rwlock_init_for_glibc (pthread_rwlock_t *lock)
{
pthread_rwlockattr_t attributes;
- int err;
-
- err = pthread_rwlockattr_init (&attributes);
+ int err = pthread_rwlockattr_init (&attributes);
if (err != 0)
return err;
/* Note: PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP is the only value that
@@ -286,9 +284,7 @@ glthread_rwlock_init_for_glibc (pthread_rwlock_t *lock)
int
glthread_rwlock_init_multithreaded (gl_rwlock_t *lock)
{
- int err;
-
- err = pthread_rwlock_init (&lock->rwlock, NULL);
+ int err = pthread_rwlock_init (&lock->rwlock, NULL);
if (err != 0)
return err;
lock->initialized = 1;
@@ -300,9 +296,7 @@ glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock)
{
if (!lock->initialized)
{
- int err;
-
- err = pthread_mutex_lock (&lock->guard);
+ int err = pthread_mutex_lock (&lock->guard);
if (err != 0)
return err;
if (!lock->initialized)
@@ -326,9 +320,7 @@ glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock)
{
if (!lock->initialized)
{
- int err;
-
- err = pthread_mutex_lock (&lock->guard);
+ int err = pthread_mutex_lock (&lock->guard);
if (err != 0)
return err;
if (!lock->initialized)
@@ -358,11 +350,9 @@ glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock)
int
glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock)
{
- int err;
-
if (!lock->initialized)
return EINVAL;
- err = pthread_rwlock_destroy (&lock->rwlock);
+ int err = pthread_rwlock_destroy (&lock->rwlock);
if (err != 0)
return err;
lock->initialized = 0;
@@ -376,9 +366,7 @@ glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock)
int
glthread_rwlock_init_multithreaded (gl_rwlock_t *lock)
{
- int err;
-
- err = pthread_mutex_init (&lock->lock, NULL);
+ int err = pthread_mutex_init (&lock->lock, NULL);
if (err != 0)
return err;
err = pthread_cond_init (&lock->waiting_readers, NULL);
@@ -395,9 +383,7 @@ glthread_rwlock_init_multithreaded (gl_rwlock_t *lock)
int
glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock)
{
- int err;
-
- err = pthread_mutex_lock (&lock->lock);
+ int err = pthread_mutex_lock (&lock->lock);
if (err != 0)
return err;
/* Test whether only readers are currently running, and whether the runcount
@@ -422,9 +408,7 @@ glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock)
int
glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock)
{
- int err;
-
- err = pthread_mutex_lock (&lock->lock);
+ int err = pthread_mutex_lock (&lock->lock);
if (err != 0)
return err;
/* Test whether no readers or writers are currently running. */
@@ -449,9 +433,7 @@ glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock)
int
glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock)
{
- int err;
-
- err = pthread_mutex_lock (&lock->lock);
+ int err = pthread_mutex_lock (&lock->lock);
if (err != 0)
return err;
if (lock->runcount < 0)
@@ -505,9 +487,7 @@ glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock)
int
glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock)
{
- int err;
-
- err = pthread_mutex_destroy (&lock->lock);
+ int err = pthread_mutex_destroy (&lock->lock);
if (err != 0)
return err;
err = pthread_cond_destroy (&lock->waiting_readers);
@@ -531,9 +511,7 @@ int
glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock)
{
pthread_mutexattr_t attributes;
- int err;
-
- err = pthread_mutexattr_init (&attributes);
+ int err = pthread_mutexattr_init (&attributes);
if (err != 0)
return err;
err = pthread_mutexattr_settype (&attributes, PTHREAD_MUTEX_RECURSIVE);
@@ -560,9 +538,7 @@ int
glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock)
{
pthread_mutexattr_t attributes;
- int err;
-
- err = pthread_mutexattr_init (&attributes);
+ int err = pthread_mutexattr_init (&attributes);
if (err != 0)
return err;
err = pthread_mutexattr_settype (&attributes, PTHREAD_MUTEX_RECURSIVE);
@@ -589,9 +565,7 @@ glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock)
{
if (!lock->initialized)
{
- int err;
-
- err = pthread_mutex_lock (&lock->guard);
+ int err = pthread_mutex_lock (&lock->guard);
if (err != 0)
return err;
if (!lock->initialized)
@@ -621,11 +595,9 @@ glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock)
int
glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock)
{
- int err;
-
if (!lock->initialized)
return EINVAL;
- err = pthread_mutex_destroy (&lock->recmutex);
+ int err = pthread_mutex_destroy (&lock->recmutex);
if (err != 0)
return err;
lock->initialized = 0;
@@ -639,9 +611,7 @@ glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock)
int
glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock)
{
- int err;
-
- err = pthread_mutex_init (&lock->mutex, NULL);
+ int err = pthread_mutex_init (&lock->mutex, NULL);
if (err != 0)
return err;
lock->owner = (pthread_t) 0;
@@ -655,9 +625,7 @@ glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock)
pthread_t self = pthread_self ();
if (lock->owner != self)
{
- int err;
-
- err = pthread_mutex_lock (&lock->mutex);
+ int err = pthread_mutex_lock (&lock->mutex);
if (err != 0)
return err;
lock->owner = self;
diff --git a/lib/glthread/lock.h b/lib/glthread/lock.h
index 1554115a..d8190b6c 100644
--- a/lib/glthread/lock.h
+++ b/lib/glthread/lock.h
@@ -1,5 +1,5 @@
/* Locking in multithreaded situations.
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/glthread/once.c b/lib/glthread/once.c
index 53211af8..b72a4a20 100644
--- a/lib/glthread/once.c
+++ b/lib/glthread/once.c
@@ -1,5 +1,5 @@
/* Once-only initialization in multithreaded situations.
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/glthread/once.h b/lib/glthread/once.h
index 943bd7a2..b6d9ab40 100644
--- a/lib/glthread/once.h
+++ b/lib/glthread/once.h
@@ -1,5 +1,5 @@
/* Once-only initialization in multithreaded situations.
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/glthread/threadlib.c b/lib/glthread/threadlib.c
index a6f7688b..5c0ba1f4 100644
--- a/lib/glthread/threadlib.c
+++ b/lib/glthread/threadlib.c
@@ -1,5 +1,5 @@
/* Multithreading primitives.
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/hard-locale.c b/lib/hard-locale.c
index 1e430889..6a3dad4f 100644
--- a/lib/hard-locale.c
+++ b/lib/hard-locale.c
@@ -1,6 +1,6 @@
/* hard-locale.c -- Determine whether a locale is hard.
- Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/hard-locale.h b/lib/hard-locale.h
index 29808da6..b8d7029d 100644
--- a/lib/hard-locale.h
+++ b/lib/hard-locale.h
@@ -1,6 +1,6 @@
/* Determine whether a locale is hard.
- Copyright (C) 1999, 2003-2004, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2003-2004, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iconv.c b/lib/iconv.c
index 5ebd1a59..03017df6 100644
--- a/lib/iconv.c
+++ b/lib/iconv.c
@@ -1,5 +1,5 @@
/* Character set conversion.
- Copyright (C) 1999-2001, 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2001, 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iconv.in.h b/lib/iconv.in.h
index 8ead6944..e0ad9e2f 100644
--- a/lib/iconv.in.h
+++ b/lib/iconv.in.h
@@ -1,6 +1,6 @@
/* A GNU-like <iconv.h>.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -58,7 +58,6 @@ _GL_CXXALIAS_SYS (iconv_open, iconv_t,
# endif
_GL_CXXALIASWARN (iconv_open);
#elif defined GNULIB_POSIXCHECK
-# undef iconv_open
# if HAVE_RAW_DECL_ICONV_OPEN
_GL_WARN_ON_USE (iconv_open, "iconv_open is not working correctly everywhere - "
"use gnulib module iconv for portability");
@@ -107,7 +106,6 @@ _GL_CXXALIASWARN (iconv);
# define ICONV_CONST @ICONV_CONST@
# endif
#elif defined GNULIB_POSIXCHECK
-# undef iconv
# if HAVE_RAW_DECL_ICONV
_GL_WARN_ON_USE (iconv, "iconv is not working correctly everywhere - "
"use gnulib module iconv for portability");
diff --git a/lib/iconv_close.c b/lib/iconv_close.c
index 0939ba11..6e3741b9 100644
--- a/lib/iconv_close.c
+++ b/lib/iconv_close.c
@@ -1,5 +1,5 @@
/* Character set conversion.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iconv_open-aix.gperf b/lib/iconv_open-aix.gperf
index e50842d5..ff7eb597 100644
--- a/lib/iconv_open-aix.gperf
+++ b/lib/iconv_open-aix.gperf
@@ -1,5 +1,5 @@
/* Character set conversion.
- Copyright (C) 2007, 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iconv_open-aix.h b/lib/iconv_open-aix.h
index 4f218045..4798fc19 100644
--- a/lib/iconv_open-aix.h
+++ b/lib/iconv_open-aix.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 iconv_open-aix.gperf */
/* Computed positions: -k'4,$' */
@@ -153,6 +153,10 @@ static const struct stringpool_t stringpool_contents =
};
#define stringpool ((const char *) &stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct mapping mappings[] =
{
{-1}, {-1}, {-1}, {-1}, {-1}, {-1},
@@ -226,6 +230,9 @@ static const struct mapping mappings[] =
#line 44 "iconv_open-aix.gperf"
{(int)(size_t)&((struct stringpool_t *)0)->stringpool_str44, "IBM-861"}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
const struct mapping *
mapping_lookup (register const char *str, register size_t len)
@@ -246,5 +253,5 @@ mapping_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct mapping *) 0;
}
diff --git a/lib/iconv_open-hpux.gperf b/lib/iconv_open-hpux.gperf
index 43bbe8d3..4bdb3602 100644
--- a/lib/iconv_open-hpux.gperf
+++ b/lib/iconv_open-hpux.gperf
@@ -1,5 +1,5 @@
/* Character set conversion.
- Copyright (C) 2007, 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iconv_open-hpux.h b/lib/iconv_open-hpux.h
index bae7bff6..0974ae4b 100644
--- a/lib/iconv_open-hpux.h
+++ b/lib/iconv_open-hpux.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 iconv_open-hpux.gperf */
/* Computed positions: -k'4,$' */
@@ -177,6 +177,10 @@ static const struct stringpool_t stringpool_contents =
};
#define stringpool ((const char *) &stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct mapping mappings[] =
{
{-1}, {-1}, {-1}, {-1}, {-1}, {-1},
@@ -269,6 +273,9 @@ static const struct mapping mappings[] =
#line 53 "iconv_open-hpux.gperf"
{(int)(size_t)&((struct stringpool_t *)0)->stringpool_str49, "cp1253"}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
const struct mapping *
mapping_lookup (register const char *str, register size_t len)
@@ -289,5 +296,5 @@ mapping_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct mapping *) 0;
}
diff --git a/lib/iconv_open-solaris.gperf b/lib/iconv_open-solaris.gperf
index 68218a7c..39504aaf 100644
--- a/lib/iconv_open-solaris.gperf
+++ b/lib/iconv_open-solaris.gperf
@@ -1,5 +1,5 @@
/* Character set conversion.
- Copyright (C) 2007, 2009, 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009, 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iconv_open-solaris.h b/lib/iconv_open-solaris.h
index e51f299c..3a9be522 100644
--- a/lib/iconv_open-solaris.h
+++ b/lib/iconv_open-solaris.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 iconv_open-solaris.gperf */
/* Computed positions: -k'10' */
@@ -84,9 +84,9 @@ mapping_hash (register const char *str, register size_t len)
{
default:
hval += asso_values[(unsigned char)str[9]];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -134,6 +134,10 @@ static const struct stringpool_t stringpool_contents =
};
#define stringpool ((const char *) &stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct mapping mappings[] =
{
{-1}, {-1}, {-1}, {-1}, {-1},
@@ -165,6 +169,9 @@ static const struct mapping mappings[] =
#line 37 "iconv_open-solaris.gperf"
{(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-2"}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
const struct mapping *
mapping_lookup (register const char *str, register size_t len)
@@ -185,5 +192,5 @@ mapping_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct mapping *) 0;
}
diff --git a/lib/iconv_open-zos.gperf b/lib/iconv_open-zos.gperf
index 1b37a9a9..8164dc0c 100644
--- a/lib/iconv_open-zos.gperf
+++ b/lib/iconv_open-zos.gperf
@@ -1,5 +1,5 @@
/* Character set conversion.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iconv_open-zos.h b/lib/iconv_open-zos.h
index 7bfa9ecc..1b76dc35 100644
--- a/lib/iconv_open-zos.h
+++ b/lib/iconv_open-zos.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 iconv_open-zos.gperf */
/* Computed positions: -k'4,$' */
@@ -85,9 +85,9 @@ mapping_hash (register const char *str, register size_t len)
{
default:
hval += asso_values[(unsigned char)str[3]+6];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -203,6 +203,10 @@ static const struct stringpool_t stringpool_contents =
};
#define stringpool ((const char *) &stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct mapping mappings[] =
{
{-1}, {-1}, {-1},
@@ -310,6 +314,9 @@ static const struct mapping mappings[] =
#line 60 "iconv_open-zos.gperf"
{(int)(size_t)&((struct stringpool_t *)0)->stringpool_str64, "IBM-1046"}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
const struct mapping *
mapping_lookup (register const char *str, register size_t len)
@@ -330,5 +337,5 @@ mapping_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct mapping *) 0;
}
diff --git a/lib/iconv_open.c b/lib/iconv_open.c
index c54b8ee6..50e21cb5 100644
--- a/lib/iconv_open.c
+++ b/lib/iconv_open.c
@@ -1,5 +1,5 @@
/* Character set conversion.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -44,11 +44,6 @@ iconv_t
rpl_iconv_open (const char *tocode, const char *fromcode)
#undef iconv_open
{
- char fromcode_upper[32];
- char tocode_upper[32];
- char *fromcode_upper_end;
- char *tocode_upper_end;
-
#if REPLACE_ICONV_UTF
/* Special handling of conversion between UTF-8 and UTF-{16,32}{BE,LE}.
We do not need to handle conversion between arbitrary encodings and
@@ -113,6 +108,8 @@ rpl_iconv_open (const char *tocode, const char *fromcode)
/* Convert the encodings to upper case, because
1. in the arguments of iconv_open() on AIX and HP-UX, the case matters,
2. it makes searching in the table faster. */
+ char fromcode_upper[32];
+ char *fromcode_upper_end;
{
const char *p = fromcode;
char *q = fromcode_upper;
@@ -129,6 +126,8 @@ rpl_iconv_open (const char *tocode, const char *fromcode)
fromcode_upper_end = q;
}
+ char tocode_upper[32];
+ char *tocode_upper_end;
{
const char *p = tocode;
char *q = tocode_upper;
diff --git a/lib/iconveh.h b/lib/iconveh.h
index 3b3dd26d..4a9d98b6 100644
--- a/lib/iconveh.h
+++ b/lib/iconveh.h
@@ -1,5 +1,5 @@
/* Character set conversion handler type.
- Copyright (C) 2001-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/idx.h b/lib/idx.h
index 639b6cf0..deb7dc4c 100644
--- a/lib/idx.h
+++ b/lib/idx.h
@@ -1,5 +1,5 @@
/* A type for indices and sizes.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/lib/intprops-internal.h b/lib/intprops-internal.h
index 26098030..0df385b9 100644
--- a/lib/intprops-internal.h
+++ b/lib/intprops-internal.h
@@ -1,6 +1,6 @@
/* intprops-internal.h -- properties of integer types not visible to users
- Copyright (C) 2001-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2026 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
@@ -116,8 +116,8 @@
#endif
/* True if __builtin_mul_overflow (A, B, P) works when P is non-null. */
-#if defined __clang_major__ && __clang_major__ < 14
-/* Work around Clang bug <https://bugs.llvm.org/show_bug.cgi?id=16404>. */
+#if defined __clang_major__ && __clang_major__ < 21
+/* Work around Clang bug <https://github.com/llvm/llvm-project/issues/16778>. */
# define _GL_HAS_BUILTIN_MUL_OVERFLOW 0
#else
# define _GL_HAS_BUILTIN_MUL_OVERFLOW _GL_HAS_BUILTIN_ADD_OVERFLOW
@@ -179,9 +179,9 @@
_GL_INT_OP_WRAPV (a, b, r, *, _GL_INT_MULTIPLY_RANGE_OVERFLOW)
#endif
-/* Nonzero if this compiler has GCC bug 68193 or Clang bug 25390. See:
+/* Nonzero if this compiler has GCC bug 68193 or Clang bug 25764. See:
https://gcc.gnu.org/PR68193
- https://llvm.org/bugs/show_bug.cgi?id=25390
+ https://github.com/llvm/llvm-project/issues/25764
For now, assume GCC < 14 and all Clang versions generate bogus
warnings for _Generic. This matters only for compilers that
lack relevant builtins. */
diff --git a/lib/inttypes.in.h b/lib/inttypes.in.h
index 5520ebc5..cbe5a6f0 100644
--- a/lib/inttypes.in.h
+++ b/lib/inttypes.in.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2026 Free Software Foundation, Inc.
Written by Paul Eggert, Bruno Haible, Derek Price.
This file is part of gnulib.
@@ -925,7 +925,6 @@ _GL_CXXALIAS_SYS (imaxabs, intmax_t, (intmax_t x));
_GL_CXXALIASWARN (imaxabs);
# 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");
@@ -956,7 +955,6 @@ _GL_CXXALIAS_SYS (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom));
_GL_CXXALIASWARN (imaxdiv);
# 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");
@@ -986,7 +984,6 @@ _GL_CXXALIAS_SYS (strtoimax, intmax_t,
# 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");
@@ -1016,7 +1013,6 @@ _GL_CXXALIAS_SYS (strtoumax, uintmax_t,
# 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");
diff --git a/lib/isnan.c b/lib/isnan.c
index 915187ba..491dc6dc 100644
--- a/lib/isnan.c
+++ b/lib/isnan.c
@@ -1,5 +1,5 @@
/* Test for NaN that does not need libm.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -105,10 +105,8 @@ FUNC (DOUBLE x)
The NaN bit pattern is:
- exponent = 0x7FFF, mantissa >= 0x8000000000000001. */
memory_double m;
- unsigned int exponent;
-
m.value = x;
- exponent = (m.word[EXPBIT0_WORD] >> EXPBIT0_BIT) & EXP_MASK;
+ unsigned int exponent = (m.word[EXPBIT0_WORD] >> EXPBIT0_BIT) & EXP_MASK;
# ifdef WORDS_BIGENDIAN
/* Big endian: EXPBIT0_WORD = 0, EXPBIT0_BIT = 16. */
if (exponent == 0)
@@ -138,9 +136,9 @@ FUNC (DOUBLE x)
Visual C/C++ compiler also fails when constant-folding 1.0 / 0.0 even
when constant-folding is not required. */
static DOUBLE zero = L_(0.0);
- memory_double nan;
DOUBLE plus_inf = L_(1.0) / zero;
DOUBLE minus_inf = -L_(1.0) / zero;
+ memory_double nan;
nan.value = zero / zero;
# else
static memory_double nan = { L_(0.0) / L_(0.0) };
@@ -149,10 +147,10 @@ FUNC (DOUBLE x)
# endif
{
memory_double m;
+ m.value = x;
/* A NaN can be recognized through its exponent. But exclude +Infinity and
-Infinity, which have the same exponent. */
- m.value = x;
if (((m.word[EXPBIT0_WORD] ^ nan.word[EXPBIT0_WORD])
& (EXP_MASK << EXPBIT0_BIT))
== 0)
@@ -171,12 +169,13 @@ FUNC (DOUBLE 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_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
/* Detect any special bit patterns that pass ==; see comment above. */
memory_double m1;
- memory_double m2;
-
memset (&m1.value, 0, SIZE);
- memset (&m2.value, 0, SIZE);
m1.value = x;
+
+ memory_double m2;
+ memset (&m2.value, 0, SIZE);
m2.value = x + (x ? 0.0L : -0.0L);
+
if (!memeq (&m1.value, &m2.value, SIZE))
return 1;
# endif
diff --git a/lib/isnand-nolibm.h b/lib/isnand-nolibm.h
index b9ba9eef..70c5ecb4 100644
--- a/lib/isnand-nolibm.h
+++ b/lib/isnand-nolibm.h
@@ -1,5 +1,5 @@
/* Test for NaN that does not need libm.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/isnand.c b/lib/isnand.c
index 9ce3bc74..331c4c43 100644
--- a/lib/isnand.c
+++ b/lib/isnand.c
@@ -1,5 +1,5 @@
/* Test for NaN that does not need libm.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/isnanf-nolibm.h b/lib/isnanf-nolibm.h
index d2e57644..0ed965db 100644
--- a/lib/isnanf-nolibm.h
+++ b/lib/isnanf-nolibm.h
@@ -1,5 +1,5 @@
/* Test for NaN that does not need libm.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/isnanf.c b/lib/isnanf.c
index 5e74254e..959b8062 100644
--- a/lib/isnanf.c
+++ b/lib/isnanf.c
@@ -1,5 +1,5 @@
/* Test for NaN that does not need libm.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/isnanl-nolibm.h b/lib/isnanl-nolibm.h
index 0fb679ec..640f959e 100644
--- a/lib/isnanl-nolibm.h
+++ b/lib/isnanl-nolibm.h
@@ -1,5 +1,5 @@
/* Test for NaN that does not need libm.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/isnanl.c b/lib/isnanl.c
index 812fc8c8..cd9ded7a 100644
--- a/lib/isnanl.c
+++ b/lib/isnanl.c
@@ -1,5 +1,5 @@
/* Test for NaN that does not need libm.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iswblank.c b/lib/iswblank.c
index 6e361f43..c09f33bd 100644
--- a/lib/iswblank.c
+++ b/lib/iswblank.c
@@ -1,5 +1,5 @@
/* Test wide character for being blank.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iswdigit.c b/lib/iswdigit.c
index 6bba487b..65616822 100644
--- a/lib/iswdigit.c
+++ b/lib/iswdigit.c
@@ -1,5 +1,5 @@
/* Test wide character for being a digit.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iswpunct.c b/lib/iswpunct.c
index 2b9258a9..5308ddae 100644
--- a/lib/iswpunct.c
+++ b/lib/iswpunct.c
@@ -1,5 +1,5 @@
/* Test wide character for being a punctuation or symbol character.
- Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ Copyright (C) 2023-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iswxdigit.c b/lib/iswxdigit.c
index e154ac80..7db2f676 100644
--- a/lib/iswxdigit.c
+++ b/lib/iswxdigit.c
@@ -1,5 +1,5 @@
/* Test wide character for being a hexadecimal digit.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/itold.c b/lib/itold.c
index 084eba23..d240fb7e 100644
--- a/lib/itold.c
+++ b/lib/itold.c
@@ -1,5 +1,5 @@
/* Replacement for 'int' to 'long double' conversion routine.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/lc-charset-dispatch.c b/lib/lc-charset-dispatch.c
index 91ab6d72..09f83f18 100644
--- a/lib/lc-charset-dispatch.c
+++ b/lib/lc-charset-dispatch.c
@@ -1,5 +1,5 @@
/* Dispatching based on the current locale's character encoding.
- Copyright (C) 2018-2025 Free Software Foundation, Inc.
+ Copyright (C) 2018-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -24,7 +24,7 @@
#if GNULIB_defined_mbstate_t
# include "localcharset.h"
-# include "streq.h"
+# include "streq-opt.h"
# if GNULIB_WCHAR_SINGLE_LOCALE
/* When we know that the locale does not change, provide a speedup by
diff --git a/lib/lc-charset-dispatch.h b/lib/lc-charset-dispatch.h
index 554137b6..665da408 100644
--- a/lib/lc-charset-dispatch.h
+++ b/lib/lc-charset-dispatch.h
@@ -1,5 +1,5 @@
/* Dispatching based on the current locale's character encoding.
- Copyright (C) 2018-2025 Free Software Foundation, Inc.
+ Copyright (C) 2018-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/limits.in.h b/lib/limits.in.h
index 693df998..66bd63ee 100644
--- a/lib/limits.in.h
+++ b/lib/limits.in.h
@@ -1,6 +1,6 @@
/* A GNU-like <limits.h>.
- Copyright 2016-2025 Free Software Foundation, Inc.
+ Copyright 2016-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/localcharset.c b/lib/localcharset.c
index 79a55c5e..22dc38d3 100644
--- a/lib/localcharset.c
+++ b/lib/localcharset.c
@@ -1,6 +1,6 @@
/* Determine a canonical name for the current locale's character encoding.
- Copyright (C) 2000-2006, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2000-2006, 2008-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -813,10 +813,9 @@ locale_charset (void)
environment variables (if present) or the codepage as a number. */
if (codeset != NULL && streq (codeset, "US-ASCII"))
{
- const char *locale;
static char resultbuf[2 + 10 + 1];
- locale = getenv ("LC_ALL");
+ const char *locale = getenv ("LC_ALL");
if (locale == NULL || locale[0] == '\0')
{
locale = getenv ("LC_CTYPE");
@@ -912,16 +911,13 @@ locale_charset (void)
# elif defined OS2
- const char *locale;
static char resultbuf[2 + 10 + 1];
- ULONG cp[3];
- ULONG cplen;
codeset = NULL;
/* Allow user to override the codeset, as set in the operating system,
with standard language environment variables. */
- locale = getenv ("LC_ALL");
+ const char *locale = getenv ("LC_ALL");
if (locale == NULL || locale[0] == '\0')
{
locale = getenv ("LC_CTYPE");
@@ -958,6 +954,9 @@ locale_charset (void)
if (codeset == NULL)
{
+ ULONG cp[3];
+ ULONG cplen;
+
/* OS/2 has a function returning the locale's codepage as a number. */
if (DosQueryCp (sizeof (cp), cp, &cplen))
codeset = "";
diff --git a/lib/localcharset.h b/lib/localcharset.h
index 6bc18afe..59f748d7 100644
--- a/lib/localcharset.h
+++ b/lib/localcharset.h
@@ -1,5 +1,5 @@
/* Determine a canonical name for the current locale's character encoding.
- Copyright (C) 2000-2003, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2000-2003, 2009-2026 Free Software Foundation, Inc.
This file is part of the GNU CHARSET Library.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/locale.in.h b/lib/locale.in.h
index 34f8c5b6..c264493e 100644
--- a/lib/locale.in.h
+++ b/lib/locale.in.h
@@ -1,5 +1,5 @@
/* A POSIX <locale.h>.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -264,7 +264,6 @@ _GL_CXXALIASWARN (localeconv);
# define localeconv localeconv_used_without_requesting_gnulib_module_localeconv
# endif
#elif defined GNULIB_POSIXCHECK
-# undef localeconv
# if HAVE_RAW_DECL_LOCALECONV
_GL_WARN_ON_USE (localeconv,
"localeconv returns too few information on some platforms - "
@@ -288,7 +287,6 @@ _GL_CXXALIAS_SYS (setlocale, char *, (int category, const char *locale));
_GL_CXXALIASWARN (setlocale);
# endif
#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");
@@ -325,7 +323,6 @@ _GL_CXXALIAS_SYS (newlocale, locale_t,
_GL_CXXALIASWARN (newlocale);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef newlocale
# if HAVE_RAW_DECL_NEWLOCALE
_GL_WARN_ON_USE (newlocale, "newlocale is not portable");
# endif
@@ -350,7 +347,6 @@ _GL_CXXALIAS_SYS (duplocale, locale_t, (locale_t locale));
_GL_CXXALIASWARN (duplocale);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef duplocale
# if HAVE_RAW_DECL_DUPLOCALE
_GL_WARN_ON_USE (duplocale, "duplocale is unportable and buggy on some glibc systems - "
"use gnulib module duplocale for portability");
@@ -378,7 +374,6 @@ _GL_CXXALIAS_SYS_CAST (freelocale, void, (locale_t locale));
_GL_CXXALIASWARN (freelocale);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef freelocale
# if HAVE_RAW_DECL_FREELOCALE
_GL_WARN_ON_USE (freelocale, "freelocale is not portable");
# endif
@@ -408,7 +403,6 @@ _GL_CXXALIAS_SYS (getlocalename_l, const char *,
_GL_CXXALIASWARN (getlocalename_l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getlocalename_l
# if HAVE_RAW_DECL_GETLOCALENAME_L
_GL_WARN_ON_USE (getlocalename_l, "getlocalename_l is not portable");
# endif
diff --git a/lib/localeconv.c b/lib/localeconv.c
index a6bbdced..bf6271ee 100644
--- a/lib/localeconv.c
+++ b/lib/localeconv.c
@@ -1,5 +1,5 @@
/* Query locale dependent information for formatting numbers.
- Copyright (C) 2012-2025 Free Software Foundation, Inc.
+ Copyright (C) 2012-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/localename-environ.c b/lib/localename-environ.c
index 0d35d6bb..8985fe48 100644
--- a/lib/localename-environ.c
+++ b/lib/localename-environ.c
@@ -1,5 +1,5 @@
/* Determine name of the currently selected locale.
- Copyright (C) 1995-2025 Free Software Foundation, Inc.
+ Copyright (C) 1995-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -27,32 +27,36 @@
const char *
gl_locale_name_environ (_GL_UNUSED int category, const char *categoryname)
{
- const char *retval;
-
/* Setting of LC_ALL overrides all other. */
- retval = getenv ("LC_ALL");
- if (retval != NULL && retval[0] != '\0')
- return retval;
+ {
+ const char *retval = getenv ("LC_ALL");
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+ }
/* Next comes the name of the desired category. */
- retval = getenv (categoryname);
- if (retval != NULL && retval[0] != '\0')
- return retval;
+ {
+ const char *retval = getenv (categoryname);
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+ }
/* Last possibility is the LANG environment variable. */
- retval = getenv ("LANG");
- if (retval != NULL && retval[0] != '\0')
- {
+ {
+ const char *retval = getenv ("LANG");
+ if (retval != NULL && retval[0] != '\0')
+ {
#if HAVE_CFPREFERENCESCOPYAPPVALUE
- /* Mac OS X 10.2 or newer.
- Ignore invalid LANG value set by the Terminal application. */
- if (!streq (retval, "UTF-8"))
+ /* Mac OS X 10.2 or newer.
+ Ignore invalid LANG value set by the Terminal application. */
+ if (!streq (retval, "UTF-8"))
#endif
#if defined __CYGWIN__
- /* Cygwin.
- Ignore dummy LANG value set by ~/.profile. */
- if (!streq (retval, "C.UTF-8"))
+ /* Cygwin.
+ Ignore dummy LANG value set by ~/.profile. */
+ if (!streq (retval, "C.UTF-8"))
#endif
- return retval;
- }
+ return retval;
+ }
+ }
return NULL;
}
diff --git a/lib/localename-table.c b/lib/localename-table.c
index bc062804..3779841d 100644
--- a/lib/localename-table.c
+++ b/lib/localename-table.c
@@ -1,5 +1,5 @@
/* Table that maps a locale object to the names of the locale categories.
- Copyright (C) 2018-2025 Free Software Foundation, Inc.
+ Copyright (C) 2018-2026 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/localename-table.h b/lib/localename-table.h
index c9982be1..59ae0a2f 100644
--- a/lib/localename-table.h
+++ b/lib/localename-table.h
@@ -1,5 +1,5 @@
/* Table that maps a locale object to the names of the locale categories.
- Copyright (C) 2018-2025 Free Software Foundation, Inc.
+ Copyright (C) 2018-2026 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/localename-unsafe.c b/lib/localename-unsafe.c
index 08db8585..12748cba 100644
--- a/lib/localename-unsafe.c
+++ b/lib/localename-unsafe.c
@@ -1,5 +1,5 @@
/* Determine name of the currently selected locale.
- Copyright (C) 1995-2025 Free Software Foundation, Inc.
+ Copyright (C) 1995-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -1153,7 +1153,7 @@ void
gl_locale_name_canonicalize (char *name)
{
/* This conversion is based on a posting by
- Deborah GoldSmith <goldsmit@apple.com> on 2005-03-08,
+ Deborah Goldsmith <goldsmit@apple.com> on 2005-03-08,
https://lists.apple.com/archives/carbon-dev/2005/Mar/msg00293.html */
/* Convert legacy (NeXTstep inherited) English names to Unix (ISO 639 and
@@ -1387,51 +1387,55 @@ gl_locale_name_canonicalize (char *name)
/* Step 2: Convert using langtag_table and script_table. */
if (strlen (name) == 7 && name[2] == '-')
{
- unsigned int i1, i2;
- i1 = 0;
- i2 = sizeof (langtag_table) / sizeof (langtag_entry);
- while (i2 - i1 > 1)
- {
- /* At this point we know that if name occurs in langtag_table,
- its index must be >= i1 and < i2. */
- unsigned int i = (i1 + i2) >> 1;
- const langtag_entry *p = &langtag_table[i];
- if (strcmp (name, p->langtag) < 0)
- i2 = i;
- else
- i1 = i;
- }
- if (streq (name, langtag_table[i1].langtag))
- {
- strcpy (name, langtag_table[i1].unixy);
- return;
- }
+ {
+ unsigned int i1, i2;
+ i1 = 0;
+ i2 = sizeof (langtag_table) / sizeof (langtag_entry);
+ while (i2 - i1 > 1)
+ {
+ /* At this point we know that if name occurs in langtag_table,
+ its index must be >= i1 and < i2. */
+ unsigned int i = (i1 + i2) >> 1;
+ const langtag_entry *p = &langtag_table[i];
+ if (strcmp (name, p->langtag) < 0)
+ i2 = i;
+ else
+ i1 = i;
+ }
+ if (streq (name, langtag_table[i1].langtag))
+ {
+ strcpy (name, langtag_table[i1].unixy);
+ return;
+ }
+ }
- i1 = 0;
- i2 = sizeof (script_table) / sizeof (script_entry);
- while (i2 - i1 > 1)
- {
- /* At this point we know that if (name + 3) occurs in script_table,
- its index must be >= i1 and < i2. */
- unsigned int i = (i1 + i2) >> 1;
- const script_entry *p = &script_table[i];
- if (strcmp (name + 3, p->script) < 0)
- i2 = i;
- else
- i1 = i;
- }
- if (streq (name + 3, script_table[i1].script))
- {
- name[2] = '@';
- strcpy (name + 3, script_table[i1].unixy);
- return;
- }
+ {
+ unsigned int i1, i2;
+ i1 = 0;
+ i2 = sizeof (script_table) / sizeof (script_entry);
+ while (i2 - i1 > 1)
+ {
+ /* At this point we know that if (name + 3) occurs in script_table,
+ its index must be >= i1 and < i2. */
+ unsigned int i = (i1 + i2) >> 1;
+ const script_entry *p = &script_table[i];
+ if (strcmp (name + 3, p->script) < 0)
+ i2 = i;
+ else
+ i1 = i;
+ }
+ if (streq (name + 3, script_table[i1].script))
+ {
+ name[2] = '@';
+ strcpy (name + 3, script_table[i1].unixy);
+ return;
+ }
+ }
}
/* Step 3: Convert new-style dash to Unix underscore. */
{
- char *p;
- for (p = name; *p != '\0'; p++)
+ for (char *p = name; *p != '\0'; p++)
if (*p == '-')
*p = '_';
}
@@ -1454,9 +1458,7 @@ gl_locale_name_canonicalize (char *name)
{
/* FIXME: This is probably incomplete: it does not handle "zh-Hans" and
"zh-Hant". */
- char *p;
-
- for (p = name; *p != '\0'; p++)
+ for (char *p = name; *p != '\0'; p++)
if (*p == '-')
{
*p = '_';
@@ -1511,11 +1513,9 @@ gl_locale_name_from_win32_LANGID (LANGID langid)
#define N(name) (is_utf8 ? name ".UTF-8" : name)
#define NM(name,modifier) (is_utf8 ? name ".UTF-8" modifier : name modifier)
{
- int primary, sub;
-
/* Split into language and territory part. */
- primary = PRIMARYLANGID (langid);
- sub = SUBLANGID (langid);
+ int primary = PRIMARYLANGID (langid);
+ int sub = SUBLANGID (langid);
/* Dispatch on language.
See also https://www.unicode.org/unicode/onlinedat/languages.html .
@@ -2532,10 +2532,8 @@ static
const char *
gl_locale_name_from_win32_LCID (LCID lcid)
{
- LANGID langid;
-
/* Strip off the sorting rules, keep only the language part. */
- langid = LANGIDFROMLCID (lcid);
+ LANGID langid = LANGIDFROMLCID (lcid);
return gl_locale_name_from_win32_LANGID (langid);
}
@@ -2552,11 +2550,11 @@ static BOOL CALLBACK
enum_locales_fn (LPSTR locale_num_str)
{
char *endp;
- char locval[2 * LOCALE_NAME_MAX_LENGTH + 1 + 1];
LCID try_lcid = strtoul (locale_num_str, &endp, 16);
+ char locval[2 * LOCALE_NAME_MAX_LENGTH + 1 + 1];
if (GetLocaleInfo (try_lcid, LOCALE_SENGLANGUAGE,
- locval, LOCALE_NAME_MAX_LENGTH))
+ locval, LOCALE_NAME_MAX_LENGTH))
{
strcat (locval, "_");
if (GetLocaleInfo (try_lcid, LOCALE_SENGCOUNTRY,
@@ -2582,33 +2580,111 @@ static glwthread_mutex_t get_lcid_lock = GLWTHREAD_MUTEX_INIT;
/* 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. */
+ LOCALE_NAME. Return 0 if LOCALE_NAME does not correspond to a locale
+ supported by the system. */
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. */
+ /* A least-recently-used cache with at most N = 6 entries.
+ (Because there are 6 locale categories.) */
+
+ /* Number of bits for a index into the cache. */
+ enum { nbits = 3 };
+ /* Maximum number of entries in the cache. */
+ enum { N = 6 }; /* <= (1 << nbits) */
+ /* An entry in the cache. */
+ typedef struct { LCID e_lcid; char e_locale[sizeof (lname)]; } entry_t;
+ /* An unsigned integer type with at least N * nbits bits.
+ Used as an array:
+ element [0] = bits nbits-1 .. 0,
+ element [1] = bits 2*nbits-1 .. nbits,
+ element [2] = bits 3*nbits-1 .. 2*nbits,
+ and so on. */
+ typedef unsigned int indices_t;
+
+ /* Number of entries in the cache. */
+ static size_t n; /* <= N */
+ /* The entire cache. Only elements 0..n-1 are in use. */
+ static entry_t lru[N];
+ /* Indices of used cache entries. Only elements 0..n-1 are in use. */
+ static indices_t indices;
+
+ /* Lock while looking for an LCID, to protect access to static variables:
+ found_lcid, lname, and the cache. */
glwthread_mutex_lock (&get_lcid_lock);
- if (last_lcid > 0 && streq (locale_name, last_locale))
+
+ /* Look up locale_name in the cache. */
+ size_t found = (size_t)(-1);
+ size_t i;
+ for (i = 0; i < n; i++)
{
- glwthread_mutex_unlock (&get_lcid_lock);
- return last_lcid;
+ size_t j = /* indices[i] */
+ (indices >> (nbits * i)) & ((1U << nbits) - 1U);
+ if (streq (locale_name, lru[j].e_locale))
+ {
+ found = j;
+ break;
+ }
}
- 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)
+ LCID result;
+ if (i < n)
{
- last_lcid = found_lcid;
- strcpy (last_locale, locale_name);
+ /* We have a cache hit. 0 <= found < n. */
+ result = lru[found].e_lcid;
+ if (i > 0)
+ {
+ /* Perform these assignments in parallel:
+ indices[0] := indices[i]
+ indices[1] := indices[0]
+ ...
+ indices[i] := indices[i-1] */
+ indices = (indices & (-1U << (nbits * (i + 1))))
+ | ((indices & ((1U << (nbits * i)) - 1U)) << nbits)
+ | found;
+ }
+ }
+ else
+ {
+ /* We have a cache miss. */
+ strncpy (lname, locale_name, sizeof (lname) - 1);
+ lname[sizeof (lname) - 1] = '\0';
+
+ found_lcid = 0;
+ EnumSystemLocales (enum_locales_fn, LCID_SUPPORTED);
+
+ size_t j;
+ if (n < N)
+ {
+ /* There is still room in the cache. */
+ j = n;
+ /* Perform these assignments in parallel:
+ indices[0] := n
+ indices[1] := indices[0]
+ ...
+ indices[n] := indices[n-1] */
+ indices = (indices << nbits) | n;
+ n++;
+ }
+ else /* n == N */
+ {
+ /* The cache is full. Drop the least recently used entry and
+ reuse it. */
+ j = /* indices[N-1] */
+ (indices >> (nbits * (N - 1))) & ((1U << nbits) - 1U);
+ /* Perform these assignments in parallel:
+ indices[0] := j
+ indices[1] := indices[0]
+ ...
+ indices[N-1] := indices[N-2] */
+ indices = ((indices & ((1U << (nbits * (N - 1))) - 1U)) << nbits) | j;
+ }
+ strcpy (lru[j].e_locale, lname);
+ lru[j].e_lcid = found_lcid;
+
+ result = found_lcid;
}
glwthread_mutex_unlock (&get_lcid_lock);
- return found_lcid;
+ return result;
}
# endif
@@ -2849,19 +2925,21 @@ gl_locale_name_default (void)
const char *
gl_locale_name_unsafe (int category, const char *categoryname)
{
- const char *retval;
-
if (category == LC_ALL)
/* Invalid argument. */
abort ();
- retval = gl_locale_name_thread_unsafe (category, categoryname);
- if (retval != NULL)
- return retval;
+ {
+ const char *retval = gl_locale_name_thread_unsafe (category, categoryname);
+ if (retval != NULL)
+ return retval;
+ }
- retval = gl_locale_name_posix_unsafe (category, categoryname);
- if (retval != NULL)
- return retval;
+ {
+ const char *retval = gl_locale_name_posix_unsafe (category, categoryname);
+ if (retval != NULL)
+ return retval;
+ }
return gl_locale_name_default ();
}
diff --git a/lib/localename.c b/lib/localename.c
index 2590410f..8fd3fe72 100644
--- a/lib/localename.c
+++ b/lib/localename.c
@@ -1,5 +1,5 @@
/* Determine name of the currently selected locale.
- Copyright (C) 1995-2025 Free Software Foundation, Inc.
+ Copyright (C) 1995-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -71,19 +71,21 @@ gl_locale_name_posix (int category, const char *categoryname)
const char *
gl_locale_name (int category, const char *categoryname)
{
- const char *retval;
-
if (category == LC_ALL)
/* Invalid argument. */
abort ();
- retval = gl_locale_name_thread (category, categoryname);
- if (retval != NULL)
- return retval;
-
- retval = gl_locale_name_posix (category, categoryname);
- if (retval != NULL)
- return retval;
+ {
+ const char *retval = gl_locale_name_thread (category, categoryname);
+ if (retval != NULL)
+ return retval;
+ }
+
+ {
+ const char *retval = gl_locale_name_posix (category, categoryname);
+ if (retval != NULL)
+ return retval;
+ }
return gl_locale_name_default ();
}
diff --git a/lib/localename.h b/lib/localename.h
index f2627ccc..8a53bc0b 100644
--- a/lib/localename.h
+++ b/lib/localename.h
@@ -1,5 +1,5 @@
/* Determine name of the currently selected locale.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 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/malloc.c b/lib/malloc.c
index 5642c83c..f7d11921 100644
--- a/lib/malloc.c
+++ b/lib/malloc.c
@@ -1,6 +1,6 @@
/* malloc() function that is glibc compatible.
- Copyright (C) 1997-1998, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1997-1998, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/malloca.c b/lib/malloca.c
index 4bce9a3d..943140c8 100644
--- a/lib/malloca.c
+++ b/lib/malloca.c
@@ -1,5 +1,5 @@
/* Safe automatic memory allocation.
- Copyright (C) 2003, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2003, 2018.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/malloca.h b/lib/malloca.h
index f131fd5a..1ebe6916 100644
--- a/lib/malloca.h
+++ b/lib/malloca.h
@@ -1,5 +1,5 @@
/* Safe automatic memory allocation.
- Copyright (C) 2003-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2003-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2003.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/math.c b/lib/math.c
index febdf82a..8f0c9d78 100644
--- a/lib/math.c
+++ b/lib/math.c
@@ -1,6 +1,6 @@
/* Inline functions for <math.h>.
- Copyright (C) 2012-2025 Free Software Foundation, Inc.
+ Copyright (C) 2012-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/math.in.h b/lib/math.in.h
index fae66de5..14218ea0 100644
--- a/lib/math.in.h
+++ b/lib/math.in.h
@@ -1,6 +1,6 @@
/* A GNU-like <math.h>.
- Copyright (C) 2002-2003, 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002-2003, 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -288,7 +288,6 @@ _GL_CXXALIAS_SYS (acosf, float, (float x));
# endif
_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");
@@ -305,7 +304,6 @@ _GL_CXXALIAS_SYS (acosl, long double, (long double x));
_GL_CXXALIASWARN (acosl);
# endif
#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");
@@ -330,7 +328,6 @@ _GL_CXXALIAS_SYS (asinf, float, (float x));
# endif
_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");
@@ -347,7 +344,6 @@ _GL_CXXALIAS_SYS (asinl, long double, (long double x));
_GL_CXXALIASWARN (asinl);
# endif
#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");
@@ -372,7 +368,6 @@ _GL_CXXALIAS_SYS (atanf, float, (float x));
# endif
_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");
@@ -389,7 +384,6 @@ _GL_CXXALIAS_SYS (atanl, long double, (long double x));
_GL_CXXALIASWARN (atanl);
# endif
#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");
@@ -414,7 +408,6 @@ _GL_CXXALIAS_SYS (atan2f, float, (float y, float x));
# endif
_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");
@@ -438,7 +431,6 @@ _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");
@@ -454,7 +446,6 @@ _GL_CXXALIAS_SYS (cbrt, double, (double x));
_GL_CXXALIASWARN1 (cbrt, double, (double x));
# endif
#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");
@@ -479,7 +470,6 @@ _GL_CXXALIAS_SYS (cbrtl, long double, (long double x));
_GL_CXXALIASWARN (cbrtl);
# endif
#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");
@@ -504,7 +494,6 @@ _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");
@@ -546,7 +535,6 @@ _GL_CXXALIAS_SYS (ceill, long double, (long double x));
_GL_CXXALIASWARN (ceill);
# endif
#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");
@@ -562,7 +550,6 @@ _GL_FUNCDECL_SYS (copysignf, float, (float x, float y), );
_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");
@@ -578,7 +565,6 @@ _GL_CXXALIAS_SYS (copysign, double, (double x, double y));
_GL_CXXALIASWARN1 (copysign, double, (double x, double y));
# endif
#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");
@@ -594,7 +580,6 @@ _GL_CXXALIAS_SYS (copysignl, long double, (long double x, long double y));
_GL_CXXALIASWARN (copysignl);
# endif
#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");
@@ -619,7 +604,6 @@ _GL_CXXALIAS_SYS (cosf, float, (float x));
# endif
_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");
@@ -636,7 +620,6 @@ _GL_CXXALIAS_SYS (cosl, long double, (long double x));
_GL_CXXALIASWARN (cosl);
# endif
#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");
@@ -661,7 +644,6 @@ _GL_CXXALIAS_SYS (coshf, float, (float x));
# endif
_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");
@@ -686,7 +668,6 @@ _GL_CXXALIAS_SYS (expf, float, (float x));
# endif
_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");
@@ -712,7 +693,6 @@ _GL_CXXALIAS_SYS (expl, long double, (long double x));
_GL_CXXALIASWARN (expl);
# endif
#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");
@@ -727,7 +707,6 @@ _GL_FUNCDECL_SYS (exp2f, float, (float x), );
_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");
@@ -752,7 +731,6 @@ _GL_CXXALIAS_SYS (exp2, double, (double x));
_GL_CXXALIASWARN1 (exp2, double, (double x));
# endif
#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");
@@ -778,7 +756,6 @@ _GL_CXXALIAS_SYS (exp2l, long double, (long double x));
_GL_CXXALIASWARN (exp2l);
# endif
#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");
@@ -802,7 +779,6 @@ _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");
@@ -827,7 +803,6 @@ _GL_CXXALIAS_SYS (expm1, double, (double x));
_GL_CXXALIASWARN1 (expm1, double, (double x));
# endif
#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");
@@ -855,7 +830,6 @@ _GL_CXXALIAS_SYS (expm1l, long double, (long double x));
_GL_CXXALIASWARN (expm1l);
# endif
#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");
@@ -873,7 +847,6 @@ _GL_CXXALIAS_SYS (fabsf, float, (float x));
_GL_CXXALIASWARN (fabsf);
# endif
#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");
@@ -899,7 +872,6 @@ _GL_CXXALIAS_SYS (fabsl, long double, (long double x));
_GL_CXXALIASWARN (fabsl);
# endif
#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");
@@ -924,7 +896,6 @@ _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");
@@ -966,7 +937,6 @@ _GL_CXXALIAS_SYS (floorl, long double, (long double x));
_GL_CXXALIASWARN (floorl);
# endif
#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");
@@ -991,7 +961,6 @@ _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");
@@ -1017,7 +986,6 @@ _GL_CXXALIAS_SYS (fma, double, (double x, double y, double z));
_GL_CXXALIASWARN1 (fma, double, (double x, double y, double z));
# endif
#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");
@@ -1049,7 +1017,6 @@ _GL_CXXALIAS_SYS (fmal, long double,
_GL_CXXALIASWARN (fmal);
# endif
#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");
@@ -1074,7 +1041,6 @@ _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");
@@ -1096,7 +1062,6 @@ _GL_CXXALIAS_SYS (fmod, double, (double x, double y));
_GL_CXXALIASWARN1 (fmod, double, (double x, double y));
# endif
#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");
@@ -1122,7 +1087,6 @@ _GL_CXXALIAS_SYS (fmodl, long double, (long double x, long double y));
_GL_CXXALIASWARN (fmodl);
# endif
#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");
@@ -1156,7 +1120,6 @@ _GL_CXXALIAS_SYS (frexpf, float, (float x, int *expptr));
_GL_CXXALIASWARN (frexpf);
# endif
#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");
@@ -1188,8 +1151,10 @@ _GL_CXXALIASWARN1 (frexp, double, (double x, int *expptr));
#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");
+_GL_WARN_ON_USE_CXX (frexp,
+ double, double, (double, int *),
+ "frexp is unportable - "
+ "use gnulib module frexp for portability");
#endif
/* Write x as
@@ -1222,7 +1187,6 @@ _GL_CXXALIASWARN (frexpl);
# endif
#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");
@@ -1249,7 +1213,6 @@ _GL_CXXALIAS_SYS (hypotf, float, (float x, float y));
_GL_CXXALIASWARN (hypotf);
# endif
#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");
@@ -1272,7 +1235,6 @@ _GL_CXXALIAS_SYS (hypot, double, (double x, double y));
_GL_CXXALIASWARN1 (hypot, double, (double x, double y));
# endif
#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");
@@ -1298,7 +1260,6 @@ _GL_CXXALIAS_SYS (hypotl, long double, (long double x, long double y));
_GL_CXXALIASWARN (hypotl);
# endif
#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");
@@ -1322,7 +1283,6 @@ _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");
@@ -1347,7 +1307,6 @@ _GL_CXXALIAS_SYS (ilogb, int, (double x));
_GL_CXXALIASWARN1 (ilogb, int, (double x));
# endif
#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");
@@ -1373,7 +1332,6 @@ _GL_CXXALIAS_SYS (ilogbl, int, (long double x));
_GL_CXXALIASWARN (ilogbl);
# endif
#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");
@@ -1441,7 +1399,6 @@ _GL_CXXALIAS_SYS (ldexpf, float, (float x, int exp));
_GL_CXXALIASWARN (ldexpf);
# endif
#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");
@@ -1467,8 +1424,10 @@ _GL_CXXALIASWARN1 (ldexp, double, (double x, int exp));
#elif defined GNULIB_POSIXCHECK
# undef ldexp
/* Assume ldexp is always declared. */
-_GL_WARN_ON_USE (ldexp, "ldexp is unportable - "
- "use gnulib module ldexp for portability");
+_GL_WARN_ON_USE_CXX (ldexp,
+ double, double, (double, int),
+ "ldexp is unportable - "
+ "use gnulib module ldexp for portability");
#endif
/* Return x * 2^exp. */
@@ -1493,7 +1452,6 @@ _GL_CXXALIASWARN (ldexpl);
# endif
#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");
@@ -1518,7 +1476,6 @@ _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");
@@ -1540,7 +1497,6 @@ _GL_CXXALIAS_SYS (log, double, (double x));
_GL_CXXALIASWARN1 (log, double, (double x));
# endif
#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");
@@ -1566,7 +1522,6 @@ _GL_CXXALIAS_SYS (logl, long double, (long double x));
_GL_CXXALIASWARN (logl);
# endif
#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");
@@ -1591,7 +1546,6 @@ _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");
@@ -1613,7 +1567,6 @@ _GL_CXXALIAS_SYS (log10, double, (double x));
_GL_CXXALIASWARN1 (log10, double, (double x));
# endif
#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");
@@ -1639,7 +1592,6 @@ _GL_CXXALIAS_SYS (log10l, long double, (long double x));
_GL_CXXALIASWARN (log10l);
# endif
#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");
@@ -1663,7 +1615,6 @@ _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");
@@ -1688,7 +1639,6 @@ _GL_CXXALIAS_SYS (log1p, double, (double x));
_GL_CXXALIASWARN1 (log1p, double, (double x));
# endif
#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");
@@ -1713,7 +1663,6 @@ _GL_CXXALIAS_SYS (log1pl, long double, (long double x));
_GL_CXXALIASWARN (log1pl);
# endif
#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");
@@ -1740,7 +1689,6 @@ _GL_CXXALIAS_SYS (log2f, float, (float x));
_GL_CXXALIASWARN (log2f);
# endif
#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");
@@ -1766,7 +1714,6 @@ _GL_CXXALIAS_SYS (log2, double, (double x));
_GL_CXXALIASWARN1 (log2, double, (double x));
# endif
#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");
@@ -1791,7 +1738,6 @@ _GL_CXXALIAS_SYS (log2l, long double, (long double x));
_GL_CXXALIASWARN (log2l);
# endif
#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");
@@ -1815,7 +1761,6 @@ _GL_CXXALIAS_SYS (logbf, float, (float x));
# endif
_GL_CXXALIASWARN (logbf);
#elif defined GNULIB_POSIXCHECK
-# undef logbf
# if HAVE_RAW_DECL_LOGBF
_GL_WARN_ON_USE (logbf, "logbf is unportable - "
"use gnulib module logbf for portability");
@@ -1840,7 +1785,6 @@ _GL_CXXALIAS_SYS (logb, double, (double x));
_GL_CXXALIASWARN1 (logb, double, (double x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef logb
# if HAVE_RAW_DECL_LOGB
_GL_WARN_ON_USE (logb, "logb is unportable - "
"use gnulib module logb for portability");
@@ -1865,7 +1809,6 @@ _GL_CXXALIAS_SYS (logbl, long double, (long double x));
_GL_CXXALIASWARN (logbl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef logbl
# if HAVE_RAW_DECL_LOGBL
_GL_WARN_ON_USE (logbl, "logbl is unportable - "
"use gnulib module logbl for portability");
@@ -1882,7 +1825,6 @@ _GL_CXXALIAS_SYS (logp1f, float, (float x));
_GL_CXXALIASWARN1 (logp1f, float, (float x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef logp1f
# if HAVE_RAW_DECL_LOGP1F
_GL_WARN_ON_USE (logp1f, "logp1f is unportable - "
"use gnulib module logp1f for portability");
@@ -1898,7 +1840,6 @@ _GL_CXXALIAS_SYS (logp1, double, (double x));
_GL_CXXALIASWARN1 (logp1, double, (double x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef logp1
# if HAVE_RAW_DECL_LOGP1
_GL_WARN_ON_USE (logp1, "logp1 is unportable - "
"use gnulib module logp1 for portability");
@@ -1914,7 +1855,6 @@ _GL_CXXALIAS_SYS (logp1l, long double, (long double x));
_GL_CXXALIASWARN1 (logp1l, long double, (long double x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef logp1l
# if HAVE_RAW_DECL_LOGP1L
_GL_WARN_ON_USE (logp1l, "logp1l is unportable - "
"use gnulib module logp1l for portability");
@@ -1939,7 +1879,6 @@ _GL_CXXALIAS_SYS (modff, float, (float x, float *iptr));
# endif
_GL_CXXALIASWARN (modff);
#elif defined GNULIB_POSIXCHECK
-# undef modff
# if HAVE_RAW_DECL_MODFF
_GL_WARN_ON_USE (modff, "modff is unportable - "
"use gnulib module modff for portability");
@@ -1962,7 +1901,6 @@ _GL_CXXALIAS_SYS (modf, double, (double x, double *iptr));
_GL_CXXALIASWARN1 (modf, double, (double x, double *iptr));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef modf
# if HAVE_RAW_DECL_MODF
_GL_WARN_ON_USE (modf, "modf has portability problems - "
"use gnulib module modf for portability");
@@ -1990,7 +1928,6 @@ _GL_CXXALIAS_SYS (modfl, long double, (long double x, long double *iptr));
_GL_CXXALIASWARN (modfl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef modfl
# if HAVE_RAW_DECL_MODFL
_GL_WARN_ON_USE (modfl, "modfl is unportable - "
"use gnulib module modfl for portability");
@@ -2006,7 +1943,6 @@ _GL_FUNCDECL_SYS (powf, float, (float x, float y), );
_GL_CXXALIAS_SYS (powf, float, (float x, float y));
_GL_CXXALIASWARN (powf);
#elif defined GNULIB_POSIXCHECK
-# undef powf
# if HAVE_RAW_DECL_POWF
_GL_WARN_ON_USE (powf, "powf is unportable - "
"use gnulib module powf for portability");
@@ -2030,7 +1966,6 @@ _GL_CXXALIAS_SYS (remainderf, float, (float x, float y));
# endif
_GL_CXXALIASWARN (remainderf);
#elif defined GNULIB_POSIXCHECK
-# undef remainderf
# if HAVE_RAW_DECL_REMAINDERF
_GL_WARN_ON_USE (remainderf, "remainderf is unportable - "
"use gnulib module remainderf for portability");
@@ -2055,7 +1990,6 @@ _GL_CXXALIAS_SYS (remainder, double, (double x, double y));
_GL_CXXALIASWARN1 (remainder, double, (double x, double y));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef remainder
# if HAVE_RAW_DECL_REMAINDER
_GL_WARN_ON_USE (remainder, "remainder is unportable - "
"use gnulib module remainder for portability");
@@ -2083,7 +2017,6 @@ _GL_CXXALIAS_SYS (remainderl, long double, (long double x, long double y));
_GL_CXXALIASWARN (remainderl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef remainderl
# if HAVE_RAW_DECL_REMAINDERL
_GL_WARN_ON_USE (remainderl, "remainderl is unportable - "
"use gnulib module remainderl for portability");
@@ -2098,7 +2031,6 @@ _GL_FUNCDECL_SYS (rintf, float, (float x), );
_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");
@@ -2114,7 +2046,6 @@ _GL_CXXALIAS_SYS (rint, double, (double x));
_GL_CXXALIASWARN1 (rint, double, (double x));
# endif
#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");
@@ -2139,7 +2070,6 @@ _GL_CXXALIAS_SYS (rintl, long double, (long double x));
_GL_CXXALIASWARN (rintl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef rintl
# if HAVE_RAW_DECL_RINTL
_GL_WARN_ON_USE (rintl, "rintl is unportable - "
"use gnulib module rintl for portability");
@@ -2163,7 +2093,6 @@ _GL_CXXALIAS_SYS (roundf, float, (float x));
# endif
_GL_CXXALIASWARN (roundf);
#elif defined GNULIB_POSIXCHECK
-# undef roundf
# if HAVE_RAW_DECL_ROUNDF
_GL_WARN_ON_USE (roundf, "roundf is unportable - "
"use gnulib module roundf for portability");
@@ -2188,7 +2117,6 @@ _GL_CXXALIAS_SYS (round, double, (double x));
_GL_CXXALIASWARN1 (round, double, (double x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef round
# if HAVE_RAW_DECL_ROUND
_GL_WARN_ON_USE (round, "round is unportable - "
"use gnulib module round for portability");
@@ -2216,7 +2144,6 @@ _GL_CXXALIAS_SYS (roundl, long double, (long double x));
_GL_CXXALIASWARN (roundl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef roundl
# if HAVE_RAW_DECL_ROUNDL
_GL_WARN_ON_USE (roundl, "roundl is unportable - "
"use gnulib module roundl for portability");
@@ -2241,7 +2168,6 @@ _GL_CXXALIAS_SYS (sinf, float, (float x));
# endif
_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");
@@ -2249,16 +2175,24 @@ _GL_WARN_ON_USE (sinf, "sinf is unportable - "
#endif
#if @GNULIB_SINL@
-# if !@HAVE_SINL@ || !@HAVE_DECL_SINL@
-# undef sinl
+# if @REPLACE_SINL@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef sinl
+# define sinl rpl_sinl
+# endif
+_GL_FUNCDECL_RPL (sinl, long double, (long double x), );
+_GL_CXXALIAS_RPL (sinl, long double, (long double x));
+# else
+# if !@HAVE_SINL@ || !@HAVE_DECL_SINL@
+# undef sinl
_GL_FUNCDECL_SYS (sinl, long double, (long double x), );
-# endif
+# endif
_GL_CXXALIAS_SYS (sinl, long double, (long double x));
+# endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (sinl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef sinl
# if HAVE_RAW_DECL_SINL
_GL_WARN_ON_USE (sinl, "sinl is unportable - "
"use gnulib module sinl for portability");
@@ -2283,7 +2217,6 @@ _GL_CXXALIAS_SYS (sinhf, float, (float x));
# endif
_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");
@@ -2308,7 +2241,6 @@ _GL_CXXALIAS_SYS (sqrtf, float, (float x));
# endif
_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");
@@ -2334,7 +2266,6 @@ _GL_CXXALIAS_SYS (sqrtl, long double, (long double x));
_GL_CXXALIASWARN (sqrtl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef sqrtl
# if HAVE_RAW_DECL_SQRTL
_GL_WARN_ON_USE (sqrtl, "sqrtl is unportable - "
"use gnulib module sqrtl for portability");
@@ -2359,7 +2290,6 @@ _GL_CXXALIAS_SYS (tanf, float, (float x));
# endif
_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");
@@ -2376,7 +2306,6 @@ _GL_CXXALIAS_SYS (tanl, long double, (long double x));
_GL_CXXALIASWARN (tanl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef tanl
# if HAVE_RAW_DECL_TANL
_GL_WARN_ON_USE (tanl, "tanl is unportable - "
"use gnulib module tanl for portability");
@@ -2401,7 +2330,6 @@ _GL_CXXALIAS_SYS (tanhf, float, (float x));
# endif
_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");
@@ -2425,7 +2353,6 @@ _GL_CXXALIAS_SYS (truncf, float, (float x));
# endif
_GL_CXXALIASWARN (truncf);
#elif defined GNULIB_POSIXCHECK
-# undef truncf
# if HAVE_RAW_DECL_TRUNCF
_GL_WARN_ON_USE (truncf, "truncf is unportable - "
"use gnulib module truncf for portability");
@@ -2450,7 +2377,6 @@ _GL_CXXALIAS_SYS (trunc, double, (double x));
_GL_CXXALIASWARN1 (trunc, double, (double x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef trunc
# if HAVE_RAW_DECL_TRUNC
_GL_WARN_ON_USE (trunc, "trunc is unportable - "
"use gnulib module trunc for portability");
@@ -2475,7 +2401,6 @@ _GL_CXXALIAS_SYS (truncl, long double, (long double x));
_GL_CXXALIASWARN (truncl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef truncl
# if HAVE_RAW_DECL_TRUNCL
_GL_WARN_ON_USE (truncl, "truncl is unportable - "
"use gnulib module truncl for portability");
@@ -2536,22 +2461,29 @@ _GL_CXXALIASWARN (yn);
declarations. */
-#if @GNULIB_ISFINITE@
+#if @GNULIB_ISFINITE@ || @GNULIB_ISFINITE_NO_CXX@
# if @REPLACE_ISFINITE@
_GL_EXTERN_C int gl_isfinitef (float x);
_GL_EXTERN_C int gl_isfinited (double x);
_GL_EXTERN_C int gl_isfinitel (long double x);
-# undef isfinite
-# define isfinite(x) \
- (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \
- sizeof (x) == sizeof (double) ? gl_isfinited (x) : \
- gl_isfinitef (x))
+# ifdef __cplusplus
+template <typename T> int isfinite (T);
+template <> inline int isfinite<float> (float x) { return gl_isfinitef (x); }
+template <> inline int isfinite<double> (double x) { return gl_isfinited (x); }
+template <> inline int isfinite<long double> (long double x) { return gl_isfinitel (x); }
+# else
+# undef isfinite
+# define isfinite(x) \
+ (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \
+ sizeof (x) == sizeof (double) ? gl_isfinited (x) : \
+ gl_isfinitef (x))
+# endif
# endif
-# ifdef __cplusplus
+# if @GNULIB_ISFINITE@ && defined __cplusplus
# if defined isfinite || defined GNULIB_NAMESPACE
_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite)
# undef isfinite
-# if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined _AIX || (defined _WIN32 && !defined __CYGWIN__)))
+# if __GNUC__ >= 6 || (defined __clang__ && (__clang_major__ >= 19 || !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined _AIX || (defined _WIN32 && !defined __CYGWIN__))))
/* This platform's <cmath> possibly defines isfinite through a set of inline
functions. */
_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, rpl_isfinite, bool)
@@ -2571,18 +2503,25 @@ _GL_WARN_REAL_FLOATING_DECL (isfinite);
#endif
-#if @GNULIB_ISINF@
+#if @GNULIB_ISINF@ || @GNULIB_ISINF_NO_CXX@
# if @REPLACE_ISINF@
_GL_EXTERN_C int gl_isinff (float x);
_GL_EXTERN_C int gl_isinfd (double x);
_GL_EXTERN_C int gl_isinfl (long double x);
-# undef isinf
-# define isinf(x) \
- (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \
- sizeof (x) == sizeof (double) ? gl_isinfd (x) : \
- gl_isinff (x))
+# ifdef __cplusplus
+template <typename T> int isinf (T);
+template <> inline int isinf<float> (float x) { return gl_isinff (x); }
+template <> inline int isinf<double> (double x) { return gl_isinfd (x); }
+template <> inline int isinf<long double> (long double x) { return gl_isinfl (x); }
+# else
+# undef isinf
+# define isinf(x) \
+ (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \
+ sizeof (x) == sizeof (double) ? gl_isinfd (x) : \
+ gl_isinff (x))
+# endif
# endif
-# ifdef __cplusplus
+# if @GNULIB_ISINF@ && defined __cplusplus
# if defined isinf || defined GNULIB_NAMESPACE
_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf)
# undef isinf
@@ -2686,7 +2625,7 @@ _GL_EXTERN_C int isnanl (long double x) _GL_ATTRIBUTE_CONST;
#endif
/* This must come *after* the snippets for GNULIB_ISNANF and GNULIB_ISNANL! */
-#if @GNULIB_ISNAN@
+#if @GNULIB_ISNAN@ || @GNULIB_ISNAN_NO_CXX@
# if @REPLACE_ISNAN@
/* We can't just use the isnanf macro (e.g.) as exposed by
isnanf.h (e.g.) here, because those may end up being macros
@@ -2710,19 +2649,35 @@ _GL_EXTERN_C int rpl_isnand (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
-# define isnan(x) \
- (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \
- sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \
- gl_isnan_f (x))
+# ifdef __cplusplus
+# undef isnan
+template <typename T> int isnan (T);
+template <> inline int isnan<float> (float x) { return gl_isnan_f (x); }
+template <> inline int isnan<double> (double x) { return gl_isnan_d (x); }
+template <> inline int isnan<long double> (long double x) { return gl_isnan_l (x); }
+# else
+# undef isnan
+# define isnan(x) \
+ (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \
+ sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \
+ gl_isnan_f (x))
+# endif
# elif (__GNUC__ >= 4) || (__clang_major__ >= 4)
-# undef isnan
-# define isnan(x) \
- (sizeof (x) == sizeof (long double) ? __builtin_isnan ((long double)(x)) : \
- sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \
- __builtin_isnan ((float)(x)))
+# ifdef __cplusplus
+# undef isnan
+template <typename T> int isnan (T);
+template <> inline int isnan<float> (float x) { return __builtin_isnan (x); }
+template <> inline int isnan<double> (double x) { return __builtin_isnan (x); }
+template <> inline int isnan<long double> (long double x) { return __builtin_isnan (x); }
+# else
+# undef isnan
+# define isnan(x) \
+ (sizeof (x) == sizeof (long double) ? __builtin_isnan ((long double)(x)) : \
+ sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \
+ __builtin_isnan ((float)(x)))
+# endif
# endif
-# ifdef __cplusplus
+# if @GNULIB_ISNAN@ && defined __cplusplus
# if defined isnan || defined GNULIB_NAMESPACE
_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan)
# undef isnan
@@ -2756,15 +2711,22 @@ _GL_WARN_REAL_FLOATING_DECL (isnan);
#endif
-#if @GNULIB_SIGNBIT@
+#if @GNULIB_SIGNBIT@ || @GNULIB_SIGNBIT_NO_CXX@
# if (@REPLACE_SIGNBIT_USING_BUILTINS@ \
&& (!defined __cplusplus || __cplusplus < 201103))
# undef signbit
/* GCC >= 4.0 and clang provide three built-ins for signbit. */
-# define signbit(x) \
- (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \
- sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \
- __builtin_signbitf (x))
+# if defined __cplusplus && !defined __clang__
+template <typename T> int signbit (T);
+template <> inline int signbit<float> (float x) { return __builtin_signbitf (x); }
+template <> inline int signbit<double> (double x) { return __builtin_signbit (x); }
+template <> inline int signbit<long double> (long double x) { return __builtin_signbitl (x); }
+# else
+# define signbit(x) \
+ (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \
+ sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \
+ __builtin_signbitf (x))
+# endif
# endif
# if @REPLACE_SIGNBIT@ && !GNULIB_defined_signbit
# undef signbit
@@ -2808,13 +2770,20 @@ _GL_EXTERN_C int gl_signbitl (long double arg);
})
# endif
# endif
-# define signbit(x) \
- (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \
- sizeof (x) == sizeof (double) ? gl_signbitd (x) : \
- gl_signbitf (x))
+# if defined __cplusplus && !defined __clang__
+template <typename T> int signbit (T);
+template <> inline int signbit<float> (float x) { return gl_signbitf (x); }
+template <> inline int signbit<double> (double x) { return gl_signbitd (x); }
+template <> inline int signbit<long double> (long double x) { return gl_signbitl (x); }
+# else
+# define signbit(x) \
+ (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \
+ sizeof (x) == sizeof (double) ? gl_signbitd (x) : \
+ gl_signbitf (x))
+# endif
# define GNULIB_defined_signbit 1
# endif
-# ifdef __cplusplus
+# if @GNULIB_SIGNBIT@ && defined __cplusplus
# if defined signbit || defined GNULIB_NAMESPACE
_GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit)
# undef signbit
@@ -2854,7 +2823,6 @@ _GL_CXXALIAS_SYS (getpayloadf, float, (const float *));
# endif
_GL_CXXALIASWARN (getpayloadf);
#elif defined GNULIB_POSIXCHECK
-# undef getpayloadf
# if HAVE_RAW_DECL_GETPAYLOADF
_GL_WARN_ON_USE (getpayloadf, "getpayloadf is unportable - "
"use gnulib module getpayloadf for portability");
@@ -2877,7 +2845,6 @@ _GL_CXXALIAS_SYS (getpayload, double, (const double *));
# endif
_GL_CXXALIASWARN (getpayload);
#elif defined GNULIB_POSIXCHECK
-# undef getpayload
# if HAVE_RAW_DECL_GETPAYLOAD
_GL_WARN_ON_USE (getpayload, "getpayload is unportable - "
"use gnulib module getpayload for portability");
@@ -2900,7 +2867,6 @@ _GL_CXXALIAS_SYS (getpayloadl, long double, (const long double *));
# endif
_GL_CXXALIASWARN (getpayloadl);
#elif defined GNULIB_POSIXCHECK
-# undef getpayloadl
# if HAVE_RAW_DECL_GETPAYLOADL
_GL_WARN_ON_USE (getpayloadl, "getpayloadl is unportable - "
"use gnulib module getpayloadl for portability");
@@ -2915,7 +2881,6 @@ _GL_FUNCDECL_SYS (setpayloadf, int, (float *, float), );
_GL_CXXALIAS_SYS (setpayloadf, int, (float *, float));
_GL_CXXALIASWARN (setpayloadf);
#elif defined GNULIB_POSIXCHECK
-# undef setpayloadf
# if HAVE_RAW_DECL_SETPAYLOADF
_GL_WARN_ON_USE (setpayloadf, "setpayloadf is unportable - "
"use gnulib module setpayloadf for portability");
@@ -2929,7 +2894,6 @@ _GL_FUNCDECL_SYS (setpayload, int, (double *, double), );
_GL_CXXALIAS_SYS (setpayload, int, (double *, double));
_GL_CXXALIASWARN (setpayload);
#elif defined GNULIB_POSIXCHECK
-# undef setpayload
# if HAVE_RAW_DECL_SETPAYLOAD
_GL_WARN_ON_USE (setpayload, "setpayload is unportable - "
"use gnulib module setpayload for portability");
@@ -2943,7 +2907,6 @@ _GL_FUNCDECL_SYS (setpayloadl, int, (long double *, long double), );
_GL_CXXALIAS_SYS (setpayloadl, int, (long double *, long double));
_GL_CXXALIASWARN (setpayloadl);
#elif defined GNULIB_POSIXCHECK
-# undef setpayloadl
# if HAVE_RAW_DECL_SETPAYLOADL
_GL_WARN_ON_USE (setpayloadl, "setpayloadl is unportable - "
"use gnulib module setpayloadl for portability");
@@ -2958,7 +2921,6 @@ _GL_FUNCDECL_SYS (setpayloadsigf, int, (float *, float), );
_GL_CXXALIAS_SYS (setpayloadsigf, int, (float *, float));
_GL_CXXALIASWARN (setpayloadsigf);
#elif defined GNULIB_POSIXCHECK
-# undef setpayloadsigf
# if HAVE_RAW_DECL_SETPAYLOADSIGF
_GL_WARN_ON_USE (setpayloadsigf, "setpayloadsigf is unportable - "
"use gnulib module setpayloadsigf for portability");
@@ -2972,7 +2934,6 @@ _GL_FUNCDECL_SYS (setpayloadsig, int, (double *, double), );
_GL_CXXALIAS_SYS (setpayloadsig, int, (double *, double));
_GL_CXXALIASWARN (setpayloadsig);
#elif defined GNULIB_POSIXCHECK
-# undef setpayloadsig
# if HAVE_RAW_DECL_SETPAYLOADSIG
_GL_WARN_ON_USE (setpayloadsig, "setpayloadsig is unportable - "
"use gnulib module setpayloadsig for portability");
@@ -2986,7 +2947,6 @@ _GL_FUNCDECL_SYS (setpayloadsigl, int, (long double *, long double), );
_GL_CXXALIAS_SYS (setpayloadsigl, int, (long double *, long double));
_GL_CXXALIASWARN (setpayloadsigl);
#elif defined GNULIB_POSIXCHECK
-# undef setpayloadsigl
# if HAVE_RAW_DECL_SETPAYLOADSIGL
_GL_WARN_ON_USE (setpayloadsigl, "setpayloadsigl is unportable - "
"use gnulib module setpayloadsigl for portability");
@@ -3010,7 +2970,6 @@ _GL_CXXALIAS_SYS (totalorderf, int, (float const *, float const *));
# endif
_GL_CXXALIASWARN (totalorderf);
#elif defined GNULIB_POSIXCHECK
-# undef totalorderf
# if HAVE_RAW_DECL_TOTALORDERF
_GL_WARN_ON_USE (totalorderf, "totalorderf is unportable - "
"use gnulib module totalorderf for portability");
@@ -3035,7 +2994,6 @@ _GL_CXXALIAS_SYS (totalorder, int, (double const *, double const *));
_GL_CXXALIASWARN1 (totalorder, int, (double const *, double const *));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef totalorder
# if HAVE_RAW_DECL_TOTALORDER
_GL_WARN_ON_USE (totalorder, "totalorder is unportable - "
"use gnulib module totalorder for portability");
@@ -3062,7 +3020,6 @@ _GL_CXXALIAS_SYS (totalorderl, int,
# endif
_GL_CXXALIASWARN (totalorderl);
#elif defined GNULIB_POSIXCHECK
-# undef totalorderl
# if HAVE_RAW_DECL_TOTALORDERL
_GL_WARN_ON_USE (totalorderl, "totalorderl is unportable - "
"use gnulib module totalorderl for portability");
@@ -3088,7 +3045,6 @@ _GL_CXXALIAS_SYS (totalordermagf, int, (float const *, float const *));
_GL_CXXALIASWARN1 (totalordermagf, int, (float const *, float const *));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef totalordermagf
# if HAVE_RAW_DECL_TOTALORDERMAGF
_GL_WARN_ON_USE (totalordermagf, "totalordermagf is unportable - "
"use gnulib module totalordermagf for portability");
@@ -3113,7 +3069,6 @@ _GL_CXXALIAS_SYS (totalordermag, int, (double const *, double const *));
_GL_CXXALIASWARN1 (totalordermag, int, (double const *, double const *));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef totalordermag
# if HAVE_RAW_DECL_TOTALORDERMAG
_GL_WARN_ON_USE (totalordermag, "totalordermag is unportable - "
"use gnulib module totalordermag for portability");
@@ -3143,7 +3098,6 @@ _GL_CXXALIASWARN1 (totalordermagl, int,
(long double const *, long double const *));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef totalordermagl
# if HAVE_RAW_DECL_TOTALORDERMAGL
_GL_WARN_ON_USE (totalordermagl, "totalordermagl is unportable - "
"use gnulib module totalordermagl for portability");
diff --git a/lib/mbchar.c b/lib/mbchar.c
index 713c2f74..db9e2718 100644
--- a/lib/mbchar.c
+++ b/lib/mbchar.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2006, 2009-2025 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2006, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -14,9 +14,8 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define MBCHAR_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <limits.h>
diff --git a/lib/mbchar.h b/lib/mbchar.h
index ba142425..20e28e5f 100644
--- a/lib/mbchar.h
+++ b/lib/mbchar.h
@@ -1,5 +1,5 @@
/* Multibyte character data type.
- Copyright (C) 2001, 2005-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/mbiterf.c b/lib/mbiterf.c
index ad354c55..bb0a5cc3 100644
--- a/lib/mbiterf.c
+++ b/lib/mbiterf.c
@@ -1,6 +1,6 @@
/* Iterating through multibyte strings: macros for multi-byte encodings.
- Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ Copyright (C) 2023-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -15,7 +15,6 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define MBITERF_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "mbiterf.h"
diff --git a/lib/mbiterf.h b/lib/mbiterf.h
index d0d2484a..50a39c0f 100644
--- a/lib/mbiterf.h
+++ b/lib/mbiterf.h
@@ -1,5 +1,5 @@
/* Iterating through multibyte strings, faster: macros for multi-byte encodings.
- Copyright (C) 2001, 2005, 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005, 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/mbrtoc32.c b/lib/mbrtoc32.c
index dd6e46cf..f3570f73 100644
--- a/lib/mbrtoc32.c
+++ b/lib/mbrtoc32.c
@@ -1,5 +1,5 @@
/* Convert multibyte character to 32-bit wide character.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -87,7 +87,7 @@ mbrtoc32 (char32_t *pwc, const char *s, size_t n, mbstate_t *ps)
# include <wchar.h>
# include "localcharset.h"
-# include "streq.h"
+# include "streq-opt.h"
# if MBRTOC32_IN_C_LOCALE_MAYBE_EILSEQ
# include "hard-locale.h"
@@ -165,7 +165,6 @@ mbrtoc32 (char32_t *pwc, const char *s, size_t n, mbstate_t *ps)
char buf[4];
const char *p;
size_t m;
- int res;
switch (nstate)
{
@@ -198,6 +197,7 @@ mbrtoc32 (char32_t *pwc, const char *s, size_t n, mbstate_t *ps)
/* Here m > 0. */
+ int res;
{
# define FITS_IN_CHAR_TYPE(wc) 1
# include "mbrtowc-impl-utf8.h"
diff --git a/lib/mbrtowc-impl-utf8.h b/lib/mbrtowc-impl-utf8.h
index 98858e22..ad96ca84 100644
--- a/lib/mbrtowc-impl-utf8.h
+++ b/lib/mbrtowc-impl-utf8.h
@@ -1,5 +1,5 @@
/* Convert multibyte character to wide character.
- Copyright (C) 1999-2002, 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/mbrtowc-impl.h b/lib/mbrtowc-impl.h
index 61be6599..21a3998c 100644
--- a/lib/mbrtowc-impl.h
+++ b/lib/mbrtowc-impl.h
@@ -1,5 +1,5 @@
/* Convert multibyte character to wide character.
- Copyright (C) 1999-2002, 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -41,8 +41,6 @@
char buf[4];
const char *p;
size_t m;
- enc_t enc;
- int res;
switch (nstate)
{
@@ -75,7 +73,8 @@
/* Here m > 0. */
- enc = locale_encoding_classification ();
+ enc_t enc = locale_encoding_classification ();
+ int res;
if (enc == enc_utf8) /* UTF-8 */
{
@@ -89,17 +88,19 @@
{
/* The hidden internal state of mbtowc would make this function not
multi-thread safe. Achieve multi-thread safety through a lock. */
- wchar_t wc;
- res = mbtowc_with_lock (&wc, p, m);
+ {
+ wchar_t wc;
+ res = mbtowc_with_lock (&wc, p, m);
- if (res >= 0)
- {
- if ((wc == 0) != (res == 0))
- abort ();
- if (pwc != NULL)
- *pwc = wc;
- goto success;
- }
+ if (res >= 0)
+ {
+ if ((wc == 0) != (res == 0))
+ abort ();
+ if (pwc != NULL)
+ *pwc = wc;
+ goto success;
+ }
+ }
/* mbtowc does not distinguish between invalid and incomplete multibyte
sequences. But mbrtowc needs to make this distinction.
diff --git a/lib/mbrtowc.c b/lib/mbrtowc.c
index 30432049..49831706 100644
--- a/lib/mbrtowc.c
+++ b/lib/mbrtowc.c
@@ -1,5 +1,5 @@
/* Convert multibyte character to wide character.
- Copyright (C) 1999-2002, 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2005-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This file is free software: you can redistribute it and/or modify
@@ -81,9 +81,6 @@ 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)
{
- size_t ret;
- wchar_t wc;
-
# if MBRTOWC_RETVAL_BUG || MBRTOWC_EMPTY_INPUT_BUG
if (s == NULL)
{
@@ -98,6 +95,7 @@ rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
return (size_t) -2;
# endif
+ wchar_t wc;
if (! pwc)
pwc = &wc;
@@ -116,7 +114,7 @@ rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
size_t count = 0;
for (; n > 0; s++, n--)
{
- ret = mbrtowc (&wc, s, 1, ps);
+ size_t ret = mbrtowc (&wc, s, 1, ps);
if (ret == (size_t)(-1))
return (size_t)(-1);
@@ -133,6 +131,7 @@ rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
}
# endif
+ size_t ret;
# if MBRTOWC_STORES_INCOMPLETE_BUG
ret = mbrtowc (&wc, s, n, ps);
if (ret < (size_t) -2 && pwc != NULL)
diff --git a/lib/mbsinit.c b/lib/mbsinit.c
index 2df30b32..6252aa7a 100644
--- a/lib/mbsinit.c
+++ b/lib/mbsinit.c
@@ -1,5 +1,5 @@
/* Test for initial conversion state.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/mbsnlen.c b/lib/mbsnlen.c
index 9c25465a..bcca569b 100644
--- a/lib/mbsnlen.c
+++ b/lib/mbsnlen.c
@@ -1,5 +1,5 @@
/* Counting the multibyte characters in a string.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/mbszero.c b/lib/mbszero.c
index 36fc9200..b63b2c04 100644
--- a/lib/mbszero.c
+++ b/lib/mbszero.c
@@ -1,5 +1,5 @@
/* Put an mbstate_t into an initial conversion state.
- Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ Copyright (C) 2023-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/mbtowc-lock.c b/lib/mbtowc-lock.c
index e350608b..14106188 100644
--- a/lib/mbtowc-lock.c
+++ b/lib/mbtowc-lock.c
@@ -1,5 +1,5 @@
/* Return the internal lock used by mbrtowc and mbrtoc32.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/mbtowc-lock.h b/lib/mbtowc-lock.h
index 1e67c96e..b3e4e28e 100644
--- a/lib/mbtowc-lock.h
+++ b/lib/mbtowc-lock.h
@@ -1,5 +1,5 @@
/* Use the internal lock used by mbrtowc and mbrtoc32.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -50,10 +50,9 @@ static int
mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m)
{
CRITICAL_SECTION *lock = gl_get_mbtowc_lock ();
- int ret;
EnterCriticalSection (lock);
- ret = mbtowc_unlocked (pwc, p, m);
+ int ret = mbtowc_unlocked (pwc, p, m);
LeaveCriticalSection (lock);
return ret;
@@ -89,11 +88,10 @@ mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m)
if (pthread_in_use())
{
pthread_mutex_t *lock = gl_get_mbtowc_lock ();
- int ret;
if (pthread_mutex_lock (lock))
abort ();
- ret = mbtowc_unlocked (pwc, p, m);
+ int ret = mbtowc_unlocked (pwc, p, m);
if (pthread_mutex_unlock (lock))
abort ();
@@ -111,11 +109,10 @@ static int
mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m)
{
mtx_t *lock = gl_get_mbtowc_lock ();
- int ret;
if (mtx_lock (lock) != thrd_success)
abort ();
- ret = mbtowc_unlocked (pwc, p, m);
+ int ret = mbtowc_unlocked (pwc, p, m);
if (mtx_unlock (lock) != thrd_success)
abort ();
diff --git a/lib/memchr.c b/lib/memchr.c
index ef0d15f7..6adac7e1 100644
--- a/lib/memchr.c
+++ b/lib/memchr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2025
+/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2026
Free Software Foundation, Inc.
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
@@ -65,105 +65,103 @@ __memchr (void const *s, int c_in, size_t n)
performance. */
typedef unsigned long int longword;
- const unsigned char *char_ptr;
- const longword *longword_ptr;
- longword repeated_one;
- longword repeated_c;
- unsigned reg_char c;
+ unsigned reg_char c = (unsigned char) c_in;
- c = (unsigned char) c_in;
+ const longword *longword_ptr;
/* Handle the first few bytes by reading one byte at a time.
Do this until CHAR_PTR is aligned on a longword boundary. */
- for (char_ptr = (const unsigned char *) s;
- n > 0 && (size_t) char_ptr % sizeof (longword) != 0;
- --n, ++char_ptr)
- if (*char_ptr == c)
- return (void *) char_ptr;
+ {
+ const unsigned char *char_ptr;
+ for (char_ptr = (const unsigned char *) s;
+ n > 0 && (size_t) char_ptr % sizeof (longword) != 0;
+ --n, ++char_ptr)
+ if (*char_ptr == c)
+ return (void *) char_ptr;
- longword_ptr = (const longword *) char_ptr;
+ longword_ptr = (const longword *) char_ptr;
+ }
/* All these elucidatory comments refer to 4-byte longwords,
but the theory applies equally well to any size longwords. */
-
- /* Compute auxiliary longword values:
- repeated_one is a value which has a 1 in every byte.
- repeated_c has c in every byte. */
- repeated_one = 0x01010101;
- repeated_c = c | (c << 8);
- repeated_c |= repeated_c << 16;
- if (0xffffffffU < (longword) -1)
- {
- repeated_one |= repeated_one << 31 << 1;
- repeated_c |= repeated_c << 31 << 1;
- if (8 < sizeof (longword))
- {
- size_t i;
-
- for (i = 64; i < sizeof (longword) * 8; i *= 2)
+ {
+ /* Compute auxiliary longword values:
+ repeated_one is a value which has a 1 in every byte.
+ repeated_c has c in every byte. */
+ longword repeated_one = 0x01010101;
+ longword repeated_c = c | (c << 8);
+ repeated_c |= repeated_c << 16;
+ if (0xffffffffU < (longword) -1)
+ {
+ repeated_one |= repeated_one << 31 << 1;
+ repeated_c |= repeated_c << 31 << 1;
+ if (8 < sizeof (longword))
+ for (size_t i = 64; i < sizeof (longword) * 8; i *= 2)
{
repeated_one |= repeated_one << i;
repeated_c |= repeated_c << i;
}
- }
- }
-
- /* Instead of the traditional loop which tests each byte, we will test a
- longword at a time. The tricky part is testing if *any of the four*
- bytes in the longword in question are equal to c. We first use an xor
- with repeated_c. This reduces the task to testing whether *any of the
- four* bytes in longword1 is zero.
-
- We compute tmp =
- ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7).
- That is, we perform the following operations:
- 1. Subtract repeated_one.
- 2. & ~longword1.
- 3. & a mask consisting of 0x80 in every byte.
- Consider what happens in each byte:
- - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff,
- and step 3 transforms it into 0x80. A carry can also be propagated
- to more significant bytes.
- - If a byte of longword1 is nonzero, let its lowest 1 bit be at
- position k (0 <= k <= 7); so the lowest k bits are 0. After step 1,
- the byte ends in a single bit of value 0 and k bits of value 1.
- After step 2, the result is just k bits of value 1: 2^k - 1. After
- step 3, the result is 0. And no carry is produced.
- So, if longword1 has only non-zero bytes, tmp is zero.
- Whereas if longword1 has a zero byte, call j the position of the least
- significant zero byte. Then the result has a zero at positions 0, ...,
- j-1 and a 0x80 at position j. We cannot predict the result at the more
- significant bytes (positions j+1..3), but it does not matter since we
- already have a non-zero bit at position 8*j+7.
-
- So, the test whether any byte in longword1 is zero is equivalent to
- testing whether tmp is nonzero. */
-
- while (n >= sizeof (longword))
- {
- longword longword1 = *longword_ptr ^ repeated_c;
-
- if ((((longword1 - repeated_one) & ~longword1)
- & (repeated_one << 7)) != 0)
- break;
- longword_ptr++;
- n -= sizeof (longword);
- }
-
- char_ptr = (const unsigned char *) longword_ptr;
-
- /* At this point, we know that either n < sizeof (longword), or one of the
- sizeof (longword) bytes starting at char_ptr is == c. On little-endian
- machines, we could determine the first such byte without any further
- memory accesses, just by looking at the tmp result from the last loop
- iteration. But this does not work on big-endian machines. Choose code
- that works in both cases. */
-
- for (; n > 0; --n, ++char_ptr)
- {
- if (*char_ptr == c)
- return (void *) char_ptr;
- }
+ }
+
+ /* Instead of the traditional loop which tests each byte, we will test a
+ longword at a time. The tricky part is testing if *any of the four*
+ bytes in the longword in question are equal to c. We first use an xor
+ with repeated_c. This reduces the task to testing whether *any of the
+ four* bytes in longword1 is zero.
+
+ We compute tmp =
+ ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7).
+ That is, we perform the following operations:
+ 1. Subtract repeated_one.
+ 2. & ~longword1.
+ 3. & a mask consisting of 0x80 in every byte.
+ Consider what happens in each byte:
+ - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff,
+ and step 3 transforms it into 0x80. A carry can also be propagated
+ to more significant bytes.
+ - If a byte of longword1 is nonzero, let its lowest 1 bit be at
+ position k (0 <= k <= 7); so the lowest k bits are 0. After step 1,
+ the byte ends in a single bit of value 0 and k bits of value 1.
+ After step 2, the result is just k bits of value 1: 2^k - 1. After
+ step 3, the result is 0. And no carry is produced.
+ So, if longword1 has only non-zero bytes, tmp is zero.
+ Whereas if longword1 has a zero byte, call j the position of the least
+ significant zero byte. Then the result has a zero at positions 0, ...,
+ j-1 and a 0x80 at position j. We cannot predict the result at the more
+ significant bytes (positions j+1..3), but it does not matter since we
+ already have a non-zero bit at position 8*j+7.
+
+ So, the test whether any byte in longword1 is zero is equivalent to
+ testing whether tmp is nonzero. */
+
+ while (n >= sizeof (longword))
+ {
+ longword longword1 = *longword_ptr ^ repeated_c;
+
+ if ((((longword1 - repeated_one) & ~longword1)
+ & (repeated_one << 7)) != 0)
+ break;
+ longword_ptr++;
+ n -= sizeof (longword);
+ }
+ }
+
+ {
+ const unsigned char *char_ptr = (const unsigned char *) longword_ptr;
+
+ /* At this point, we know that either n < sizeof (longword), or one of the
+ sizeof (longword) bytes starting at char_ptr is == c. On little-endian
+ machines, we could determine the first such byte without any further
+ memory accesses, just by looking at the tmp result from the last loop
+ iteration. But this does not work on big-endian machines. Choose code
+ that works in both cases. */
+
+ for (; n > 0; --n, ++char_ptr)
+ {
+ if (*char_ptr == c)
+ return (void *) char_ptr;
+ }
+ }
return NULL;
}
diff --git a/lib/memchr.valgrind b/lib/memchr.valgrind
index 8e55c207..7ab1f6ff 100644
--- a/lib/memchr.valgrind
+++ b/lib/memchr.valgrind
@@ -1,6 +1,6 @@
# Suppress a valgrind message about use of uninitialized memory in memchr().
-# Copyright (C) 2009-2025 Free Software Foundation, Inc.
+# Copyright (C) 2009-2026 Free Software Foundation, Inc.
#
# This file is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
diff --git a/lib/memcmp2.c b/lib/memcmp2.c
index a7c59699..97b098fa 100644
--- a/lib/memcmp2.c
+++ b/lib/memcmp2.c
@@ -1,5 +1,5 @@
/* Compare two memory areas with possibly different lengths.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/memcmp2.h b/lib/memcmp2.h
index bcdc5c85..b99b6200 100644
--- a/lib/memcmp2.h
+++ b/lib/memcmp2.h
@@ -1,5 +1,5 @@
/* Compare two memory areas with possibly different lengths.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/minmax.h b/lib/minmax.h
index 7cafcea3..fd731fb7 100644
--- a/lib/minmax.h
+++ b/lib/minmax.h
@@ -1,5 +1,5 @@
/* MIN, MAX macros.
- Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2025 Free Software
+ Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2026 Free Software
Foundation, Inc.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/printf-args.c b/lib/printf-args.c
index b83ec1e8..2f7bf3da 100644
--- a/lib/printf-args.c
+++ b/lib/printf-args.c
@@ -1,5 +1,5 @@
/* Decomposed printf argument list.
- Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2025 Free Software
+ Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2026 Free Software
Foundation, Inc.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/printf-args.h b/lib/printf-args.h
index 6edc570c..e72863ef 100644
--- a/lib/printf-args.h
+++ b/lib/printf-args.h
@@ -1,5 +1,5 @@
/* Decomposed printf argument list.
- Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2025 Free Software
+ Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2026 Free Software
Foundation, Inc.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/printf-frexp.c b/lib/printf-frexp.c
index af5a0b4f..a2a9a717 100644
--- a/lib/printf-frexp.c
+++ b/lib/printf-frexp.c
@@ -1,5 +1,5 @@
/* Split a double into fraction and mantissa, for hexadecimal printf.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -66,11 +66,12 @@
DOUBLE
FUNC (DOUBLE x, int *expptr)
{
- int exponent;
DECL_ROUNDING
BEGIN_ROUNDING ();
+ int exponent;
+
#ifdef USE_FREXP_LDEXP
/* frexp and ldexp are usually faster than the loop below. */
x = FREXP (x, &exponent);
diff --git a/lib/printf-frexp.h b/lib/printf-frexp.h
index 3bedeffd..bbc3d6af 100644
--- a/lib/printf-frexp.h
+++ b/lib/printf-frexp.h
@@ -1,5 +1,5 @@
/* Split a double into fraction and mantissa, for hexadecimal printf.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/printf-frexpl.c b/lib/printf-frexpl.c
index 36181b84..3a26d43b 100644
--- a/lib/printf-frexpl.c
+++ b/lib/printf-frexpl.c
@@ -1,5 +1,5 @@
/* Split a 'long double' into fraction and mantissa, for hexadecimal printf.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/printf-frexpl.h b/lib/printf-frexpl.h
index ea63de49..ae31478f 100644
--- a/lib/printf-frexpl.h
+++ b/lib/printf-frexpl.h
@@ -1,5 +1,5 @@
/* Split a 'long double' into fraction and mantissa, for hexadecimal printf.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/printf-parse.c b/lib/printf-parse.c
index 79b35034..34d241a6 100644
--- a/lib/printf-parse.c
+++ b/lib/printf-parse.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999-2000, 2002-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2000, 2002-2003, 2006-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -323,8 +323,6 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
}
{
- arg_type type;
-
/* Parse argument type/size specifiers. */
/* Relevant for the conversion characters d, i. */
arg_type signed_type = TYPE_INT;
@@ -561,6 +559,7 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
(void) pointer_type;
/* Read the conversion character. */
+ arg_type type;
c = *cp++;
switch (c)
{
@@ -654,17 +653,14 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
d->count++;
if (d->count >= d_allocated)
{
- size_t memory_size;
- DIRECTIVE *memory;
-
d_allocated = xtimes (d_allocated, 2);
- memory_size = xtimes (d_allocated, sizeof (DIRECTIVE));
+ size_t memory_size = xtimes (d_allocated, sizeof (DIRECTIVE));
if (size_overflow_p (memory_size))
/* Overflow, would lead to out of memory. */
goto out_of_memory;
- memory = (DIRECTIVE *) (d->dir != d->direct_alloc_dir
- ? realloc (d->dir, memory_size)
- : malloc (memory_size));
+ DIRECTIVE *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;
diff --git a/lib/printf-parse.h b/lib/printf-parse.h
index 673053b8..17164f0e 100644
--- a/lib/printf-parse.h
+++ b/lib/printf-parse.h
@@ -1,5 +1,5 @@
/* Parse printf format string.
- Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2025 Free Software
+ Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2026 Free Software
Foundation, Inc.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/pthread-once.c b/lib/pthread-once.c
index b19dae50..823f0639 100644
--- a/lib/pthread-once.c
+++ b/lib/pthread-once.c
@@ -1,5 +1,5 @@
/* POSIX once-only control.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/pthread.in.h b/lib/pthread.in.h
index 28592cfc..37deab82 100644
--- a/lib/pthread.in.h
+++ b/lib/pthread.in.h
@@ -1,6 +1,6 @@
/* Implement the most essential subset of POSIX pthread.h.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -522,7 +522,6 @@ _GL_CXXALIAS_SYS_CAST (pthread_create, int,
_GL_CXXALIASWARN (pthread_create);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_create
# if HAVE_RAW_DECL_PTHREAD_CREATE
_GL_WARN_ON_USE (pthread_create, "pthread_create is not portable - "
"use gnulib module pthread-thread for portability");
@@ -549,7 +548,6 @@ _GL_CXXALIAS_SYS (pthread_attr_init, int, (pthread_attr_t *attr));
_GL_CXXALIASWARN (pthread_attr_init);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_attr_init
# if HAVE_RAW_DECL_PTHREAD_ATTR_INIT
_GL_WARN_ON_USE (pthread_attr_init, "pthread_attr_init is not portable - "
"use gnulib module pthread-thread for portability");
@@ -580,7 +578,6 @@ _GL_CXXALIAS_SYS (pthread_attr_getdetachstate, int,
_GL_CXXALIASWARN (pthread_attr_getdetachstate);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_attr_getdetachstate
# if HAVE_RAW_DECL_PTHREAD_ATTR_GETDETACHSTATE
_GL_WARN_ON_USE (pthread_attr_getdetachstate, "pthread_attr_getdetachstate is not portable - "
"use gnulib module pthread-thread for portability");
@@ -611,7 +608,6 @@ _GL_CXXALIAS_SYS (pthread_attr_setdetachstate, int,
_GL_CXXALIASWARN (pthread_attr_setdetachstate);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_attr_setdetachstate
# if HAVE_RAW_DECL_PTHREAD_ATTR_SETDETACHSTATE
_GL_WARN_ON_USE (pthread_attr_setdetachstate, "pthread_attr_setdetachstate is not portable - "
"use gnulib module pthread-thread for portability");
@@ -638,7 +634,6 @@ _GL_CXXALIAS_SYS (pthread_attr_destroy, int, (pthread_attr_t *attr));
_GL_CXXALIASWARN (pthread_attr_destroy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_attr_destroy
# if HAVE_RAW_DECL_PTHREAD_ATTR_DESTROY
_GL_WARN_ON_USE (pthread_attr_destroy, "pthread_attr_destroy is not portable - "
"use gnulib module pthread-thread for portability");
@@ -663,7 +658,6 @@ _GL_CXXALIAS_SYS (pthread_self, pthread_t, (void));
_GL_CXXALIASWARN (pthread_self);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_self
# if HAVE_RAW_DECL_PTHREAD_SELF
_GL_WARN_ON_USE (pthread_self, "pthread_self is not portable - "
"use gnulib module pthread-thread for portability");
@@ -688,7 +682,6 @@ _GL_CXXALIAS_SYS (pthread_equal, int, (pthread_t thread1, pthread_t thread2));
_GL_CXXALIASWARN (pthread_equal);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_equal
# if HAVE_RAW_DECL_PTHREAD_EQUAL
_GL_WARN_ON_USE (pthread_equal, "pthread_equal is not portable - "
"use gnulib module pthread-thread for portability");
@@ -713,7 +706,6 @@ _GL_CXXALIAS_SYS (pthread_detach, int, (pthread_t thread));
_GL_CXXALIASWARN (pthread_detach);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_detach
# if HAVE_RAW_DECL_PTHREAD_DETACH
_GL_WARN_ON_USE (pthread_detach, "pthread_detach is not portable - "
"use gnulib module pthread-thread for portability");
@@ -738,7 +730,6 @@ _GL_CXXALIAS_SYS (pthread_join, int, (pthread_t thread, void **valuep));
_GL_CXXALIASWARN (pthread_join);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_join
# if HAVE_RAW_DECL_PTHREAD_JOIN
_GL_WARN_ON_USE (pthread_join, "pthread_join is not portable - "
"use gnulib module pthread-thread for portability");
@@ -764,7 +755,6 @@ _GL_CXXALIAS_SYS_CAST (pthread_exit, void, (void *value));
_GL_CXXALIASWARN (pthread_exit);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_exit
# if HAVE_RAW_DECL_PTHREAD_EXIT
_GL_WARN_ON_USE (pthread_exit, "pthread_exit is not portable - "
"use gnulib module pthread-thread for portability");
@@ -798,7 +788,6 @@ _GL_CXXALIAS_SYS_CAST (pthread_once, int,
_GL_CXXALIASWARN (pthread_once);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_once
# if HAVE_RAW_DECL_PTHREAD_ONCE
_GL_WARN_ON_USE (pthread_once, "pthread_once is not portable - "
"use gnulib module pthread-once for portability");
@@ -835,7 +824,6 @@ _GL_CXXALIAS_SYS (pthread_mutex_init, int,
_GL_CXXALIASWARN (pthread_mutex_init);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutex_init
# if HAVE_RAW_DECL_PTHREAD_MUTEX_INIT
_GL_WARN_ON_USE (pthread_mutex_init, "pthread_mutex_init is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -862,7 +850,6 @@ _GL_CXXALIAS_SYS (pthread_mutexattr_init, int, (pthread_mutexattr_t *attr));
_GL_CXXALIASWARN (pthread_mutexattr_init);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutexattr_init
# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_INIT
_GL_WARN_ON_USE (pthread_mutexattr_init, "pthread_mutexattr_init is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -899,7 +886,6 @@ _GL_CXXALIAS_SYS_CAST (pthread_mutexattr_gettype, int,
_GL_CXXALIASWARN (pthread_mutexattr_gettype);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutexattr_gettype
# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_GETTYPE
_GL_WARN_ON_USE (pthread_mutexattr_gettype, "pthread_mutexattr_gettype is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -928,7 +914,6 @@ _GL_CXXALIAS_SYS (pthread_mutexattr_settype, int,
_GL_CXXALIASWARN (pthread_mutexattr_settype);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutexattr_settype
# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_SETTYPE
_GL_WARN_ON_USE (pthread_mutexattr_settype, "pthread_mutexattr_settype is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -965,7 +950,6 @@ _GL_CXXALIAS_SYS_CAST (pthread_mutexattr_getrobust, int,
_GL_CXXALIASWARN (pthread_mutexattr_getrobust);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutexattr_getrobust
# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_GETROBUST
_GL_WARN_ON_USE (pthread_mutexattr_getrobust, "pthread_mutexattr_getrobust is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -996,7 +980,6 @@ _GL_CXXALIAS_SYS (pthread_mutexattr_setrobust, int,
_GL_CXXALIASWARN (pthread_mutexattr_setrobust);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutexattr_setrobust
# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_SETROBUST
_GL_WARN_ON_USE (pthread_mutexattr_setrobust, "pthread_mutexattr_setrobust is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -1023,7 +1006,6 @@ _GL_CXXALIAS_SYS (pthread_mutexattr_destroy, int, (pthread_mutexattr_t *attr));
_GL_CXXALIASWARN (pthread_mutexattr_destroy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutexattr_destroy
# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_DESTROY
_GL_WARN_ON_USE (pthread_mutexattr_destroy, "pthread_mutexattr_destroy is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -1050,7 +1032,6 @@ _GL_CXXALIAS_SYS (pthread_mutex_lock, int, (pthread_mutex_t *mutex));
_GL_CXXALIASWARN (pthread_mutex_lock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutex_lock
# if HAVE_RAW_DECL_PTHREAD_MUTEX_LOCK
_GL_WARN_ON_USE (pthread_mutex_lock, "pthread_mutex_lock is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -1077,7 +1058,6 @@ _GL_CXXALIAS_SYS (pthread_mutex_trylock, int, (pthread_mutex_t *mutex));
_GL_CXXALIASWARN (pthread_mutex_trylock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutex_trylock
# if HAVE_RAW_DECL_PTHREAD_MUTEX_TRYLOCK
_GL_WARN_ON_USE (pthread_mutex_trylock, "pthread_mutex_trylock is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -1112,7 +1092,6 @@ _GL_CXXALIAS_SYS (pthread_mutex_timedlock, int,
_GL_CXXALIASWARN (pthread_mutex_timedlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutex_timedlock
# if HAVE_RAW_DECL_PTHREAD_MUTEX_TIMEDLOCK
_GL_WARN_ON_USE (pthread_mutex_timedlock, "pthread_mutex_timedlock is not portable - "
"use gnulib module pthread_mutex_timedlock for portability");
@@ -1139,7 +1118,6 @@ _GL_CXXALIAS_SYS (pthread_mutex_unlock, int, (pthread_mutex_t *mutex));
_GL_CXXALIASWARN (pthread_mutex_unlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutex_unlock
# if HAVE_RAW_DECL_PTHREAD_MUTEX_UNLOCK
_GL_WARN_ON_USE (pthread_mutex_unlock, "pthread_mutex_unlock is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -1166,7 +1144,6 @@ _GL_CXXALIAS_SYS (pthread_mutex_destroy, int, (pthread_mutex_t *mutex));
_GL_CXXALIASWARN (pthread_mutex_destroy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutex_destroy
# if HAVE_RAW_DECL_PTHREAD_MUTEX_DESTROY
_GL_WARN_ON_USE (pthread_mutex_destroy, "pthread_mutex_destroy is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -1203,7 +1180,6 @@ _GL_CXXALIAS_SYS (pthread_rwlock_init, int,
_GL_CXXALIASWARN (pthread_rwlock_init);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlock_init
# if HAVE_RAW_DECL_PTHREAD_RWLOCK_INIT
_GL_WARN_ON_USE (pthread_rwlock_init, "pthread_rwlock_init is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1230,7 +1206,6 @@ _GL_CXXALIAS_SYS (pthread_rwlockattr_init, int, (pthread_rwlockattr_t *attr));
_GL_CXXALIASWARN (pthread_rwlockattr_init);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlockattr_init
# if HAVE_RAW_DECL_PTHREAD_RWLOCKATTR_INIT
_GL_WARN_ON_USE (pthread_rwlockattr_init, "pthread_rwlockattr_init is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1259,7 +1234,6 @@ _GL_CXXALIAS_SYS (pthread_rwlockattr_destroy, int,
_GL_CXXALIASWARN (pthread_rwlockattr_destroy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlockattr_destroy
# if HAVE_RAW_DECL_PTHREAD_RWLOCKATTR_DESTROY
_GL_WARN_ON_USE (pthread_rwlockattr_destroy, "pthread_rwlockattr_destroy is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1286,7 +1260,6 @@ _GL_CXXALIAS_SYS (pthread_rwlock_rdlock, int, (pthread_rwlock_t *lock));
_GL_CXXALIASWARN (pthread_rwlock_rdlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlock_rdlock
# if HAVE_RAW_DECL_PTHREAD_RWLOCK_RDLOCK
_GL_WARN_ON_USE (pthread_rwlock_rdlock, "pthread_rwlock_rdlock is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1313,7 +1286,6 @@ _GL_CXXALIAS_SYS (pthread_rwlock_wrlock, int, (pthread_rwlock_t *lock));
_GL_CXXALIASWARN (pthread_rwlock_wrlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlock_wrlock
# if HAVE_RAW_DECL_PTHREAD_RWLOCK_WRLOCK
_GL_WARN_ON_USE (pthread_rwlock_wrlock, "pthread_rwlock_wrlock is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1340,7 +1312,6 @@ _GL_CXXALIAS_SYS (pthread_rwlock_tryrdlock, int, (pthread_rwlock_t *lock));
_GL_CXXALIASWARN (pthread_rwlock_tryrdlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlock_tryrdlock
# if HAVE_RAW_DECL_PTHREAD_RWLOCK_TRYRDLOCK
_GL_WARN_ON_USE (pthread_rwlock_tryrdlock, "pthread_rwlock_tryrdlock is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1367,7 +1338,6 @@ _GL_CXXALIAS_SYS (pthread_rwlock_trywrlock, int, (pthread_rwlock_t *lock));
_GL_CXXALIASWARN (pthread_rwlock_trywrlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlock_trywrlock
# if HAVE_RAW_DECL_PTHREAD_RWLOCK_TRYWRLOCK
_GL_WARN_ON_USE (pthread_rwlock_trywrlock, "pthread_rwlock_trywrlock is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1402,7 +1372,6 @@ _GL_CXXALIAS_SYS (pthread_rwlock_timedrdlock, int,
_GL_CXXALIASWARN (pthread_rwlock_timedrdlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlock_timedrdlock
# if HAVE_RAW_DECL_PTHREAD_RWLOCK_TIMEDRDLOCK
_GL_WARN_ON_USE (pthread_rwlock_timedrdlock, "pthread_rwlock_timedrdlock is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1437,7 +1406,6 @@ _GL_CXXALIAS_SYS (pthread_rwlock_timedwrlock, int,
_GL_CXXALIASWARN (pthread_rwlock_timedwrlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlock_timedwrlock
# if HAVE_RAW_DECL_PTHREAD_RWLOCK_TIMEDWRLOCK
_GL_WARN_ON_USE (pthread_rwlock_timedwrlock, "pthread_rwlock_timedwrlock is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1464,7 +1432,6 @@ _GL_CXXALIAS_SYS (pthread_rwlock_unlock, int, (pthread_rwlock_t *lock));
_GL_CXXALIASWARN (pthread_rwlock_unlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlock_unlock
# if HAVE_RAW_DECL_PTHREAD_RWLOCK_UNLOCK
_GL_WARN_ON_USE (pthread_rwlock_unlock, "pthread_rwlock_unlock is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1491,7 +1458,6 @@ _GL_CXXALIAS_SYS (pthread_rwlock_destroy, int, (pthread_rwlock_t *lock));
_GL_CXXALIASWARN (pthread_rwlock_destroy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlock_destroy
# if HAVE_RAW_DECL_PTHREAD_RWLOCK_DESTROY
_GL_WARN_ON_USE (pthread_rwlock_destroy, "pthread_rwlock_destroy is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1528,7 +1494,6 @@ _GL_CXXALIAS_SYS (pthread_cond_init, int,
_GL_CXXALIASWARN (pthread_cond_init);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_cond_init
# if HAVE_RAW_DECL_PTHREAD_COND_INIT
_GL_WARN_ON_USE (pthread_cond_init, "pthread_cond_init is not portable - "
"use gnulib module pthread-cond for portability");
@@ -1555,7 +1520,6 @@ _GL_CXXALIAS_SYS (pthread_condattr_init, int, (pthread_condattr_t *attr));
_GL_CXXALIASWARN (pthread_condattr_init);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_condattr_init
# if HAVE_RAW_DECL_PTHREAD_CONDATTR_INIT
_GL_WARN_ON_USE (pthread_condattr_init, "pthread_condattr_init is not portable - "
"use gnulib module pthread-cond for portability");
@@ -1582,7 +1546,6 @@ _GL_CXXALIAS_SYS (pthread_condattr_destroy, int, (pthread_condattr_t *attr));
_GL_CXXALIASWARN (pthread_condattr_destroy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_condattr_destroy
# if HAVE_RAW_DECL_PTHREAD_CONDATTR_DESTROY
_GL_WARN_ON_USE (pthread_condattr_destroy, "pthread_condattr_destroy is not portable - "
"use gnulib module pthread-cond for portability");
@@ -1617,7 +1580,6 @@ _GL_CXXALIAS_SYS (pthread_cond_wait, int,
_GL_CXXALIASWARN (pthread_cond_wait);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_cond_wait
# if HAVE_RAW_DECL_PTHREAD_COND_WAIT
_GL_WARN_ON_USE (pthread_cond_wait, "pthread_cond_wait is not portable - "
"use gnulib module pthread-cond for portability");
@@ -1656,7 +1618,6 @@ _GL_CXXALIAS_SYS (pthread_cond_timedwait, int,
_GL_CXXALIASWARN (pthread_cond_timedwait);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_cond_timedwait
# if HAVE_RAW_DECL_PTHREAD_COND_TIMEDWAIT
_GL_WARN_ON_USE (pthread_cond_timedwait, "pthread_cond_timedwait is not portable - "
"use gnulib module pthread-cond for portability");
@@ -1683,7 +1644,6 @@ _GL_CXXALIAS_SYS (pthread_cond_signal, int, (pthread_cond_t *cond));
_GL_CXXALIASWARN (pthread_cond_signal);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_cond_signal
# if HAVE_RAW_DECL_PTHREAD_COND_SIGNAL
_GL_WARN_ON_USE (pthread_cond_signal, "pthread_cond_signal is not portable - "
"use gnulib module pthread-cond for portability");
@@ -1710,7 +1670,6 @@ _GL_CXXALIAS_SYS (pthread_cond_broadcast, int, (pthread_cond_t *cond));
_GL_CXXALIASWARN (pthread_cond_broadcast);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_cond_broadcast
# if HAVE_RAW_DECL_PTHREAD_COND_BROADCAST
_GL_WARN_ON_USE (pthread_cond_broadcast, "pthread_cond_broadcast is not portable - "
"use gnulib module pthread-cond for portability");
@@ -1737,7 +1696,6 @@ _GL_CXXALIAS_SYS (pthread_cond_destroy, int, (pthread_cond_t *cond));
_GL_CXXALIASWARN (pthread_cond_destroy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_cond_destroy
# if HAVE_RAW_DECL_PTHREAD_COND_DESTROY
_GL_WARN_ON_USE (pthread_cond_destroy, "pthread_cond_destroy is not portable - "
"use gnulib module pthread-cond for portability");
@@ -1770,7 +1728,6 @@ _GL_CXXALIAS_SYS_CAST (pthread_key_create, int,
_GL_CXXALIASWARN (pthread_key_create);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_key_create
# if HAVE_RAW_DECL_PTHREAD_KEY_CREATE
_GL_WARN_ON_USE (pthread_key_create, "pthread_key_create is not portable - "
"use gnulib module pthread-tss for portability");
@@ -1799,7 +1756,6 @@ _GL_CXXALIAS_SYS (pthread_setspecific, int,
_GL_CXXALIASWARN (pthread_setspecific);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_setspecific
# if HAVE_RAW_DECL_PTHREAD_SETSPECIFIC
_GL_WARN_ON_USE (pthread_setspecific, "pthread_setspecific is not portable - "
"use gnulib module pthread-tss for portability");
@@ -1824,7 +1780,6 @@ _GL_CXXALIAS_SYS (pthread_getspecific, void *, (pthread_key_t key));
_GL_CXXALIASWARN (pthread_getspecific);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_getspecific
# if HAVE_RAW_DECL_PTHREAD_GETSPECIFIC
_GL_WARN_ON_USE (pthread_getspecific, "pthread_getspecific is not portable - "
"use gnulib module pthread-tss for portability");
@@ -1849,7 +1804,6 @@ _GL_CXXALIAS_SYS (pthread_key_delete, int, (pthread_key_t key));
_GL_CXXALIASWARN (pthread_key_delete);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_key_delete
# if HAVE_RAW_DECL_PTHREAD_KEY_DELETE
_GL_WARN_ON_USE (pthread_key_delete, "pthread_key_delete is not portable - "
"use gnulib module pthread-tss for portability");
@@ -1882,7 +1836,6 @@ _GL_CXXALIAS_SYS (pthread_spin_init, int,
_GL_CXXALIASWARN (pthread_spin_init);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_spin_init
# if HAVE_RAW_DECL_PTHREAD_SPIN_INIT
_GL_WARN_ON_USE (pthread_spin_init, "pthread_spin_init is not portable - "
"use gnulib module pthread-spin for portability");
@@ -1909,7 +1862,6 @@ _GL_CXXALIAS_SYS (pthread_spin_lock, int, (pthread_spinlock_t *lock));
_GL_CXXALIASWARN (pthread_spin_lock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_spin_lock
# if HAVE_RAW_DECL_PTHREAD_SPIN_LOCK
_GL_WARN_ON_USE (pthread_spin_lock, "pthread_spin_lock is not portable - "
"use gnulib module pthread-spin for portability");
@@ -1936,7 +1888,6 @@ _GL_CXXALIAS_SYS (pthread_spin_trylock, int, (pthread_spinlock_t *lock));
_GL_CXXALIASWARN (pthread_spin_trylock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_spin_trylock
# if HAVE_RAW_DECL_PTHREAD_SPIN_TRYLOCK
_GL_WARN_ON_USE (pthread_spin_trylock, "pthread_spin_trylock is not portable - "
"use gnulib module pthread-spin for portability");
@@ -1963,7 +1914,6 @@ _GL_CXXALIAS_SYS (pthread_spin_unlock, int, (pthread_spinlock_t *lock));
_GL_CXXALIASWARN (pthread_spin_unlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_spin_unlock
# if HAVE_RAW_DECL_PTHREAD_SPIN_UNLOCK
_GL_WARN_ON_USE (pthread_spin_unlock, "pthread_spin_unlock is not portable - "
"use gnulib module pthread-spin for portability");
@@ -1990,7 +1940,6 @@ _GL_CXXALIAS_SYS (pthread_spin_destroy, int, (pthread_spinlock_t *lock));
_GL_CXXALIASWARN (pthread_spin_destroy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_spin_destroy
# if HAVE_RAW_DECL_PTHREAD_SPIN_DESTROY
_GL_WARN_ON_USE (pthread_spin_destroy, "pthread_spin_destroy is not portable - "
"use gnulib module pthread-spin for portability");
diff --git a/lib/relocatable.c b/lib/relocatable.c
index 15b3bc44..3483d0ad 100644
--- a/lib/relocatable.c
+++ b/lib/relocatable.c
@@ -1,5 +1,5 @@
/* Provide relocatable packages.
- Copyright (C) 2003-2006, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2003-2006, 2008-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2003.
This file is free software: you can redistribute it and/or modify
@@ -55,6 +55,10 @@
# define strncmp strnicmp
#endif
+#if HAVE_DLADDR_IN_LIBC
+# include <dlfcn.h>
+#endif
+
#if DEPENDS_ON_LIBCHARSET
# include <libcharset.h>
#endif
@@ -101,9 +105,8 @@
/* 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. */
+ prefix than the program. But it is quite costly, see below. Therefore
+ we enable it by default only on native Windows platforms. */
#ifndef ENABLE_COSTLY_RELOCATABLE
# if defined _WIN32 && !defined __CYGWIN__
# define ENABLE_COSTLY_RELOCATABLE 1
@@ -136,11 +139,9 @@ set_this_relocation_prefix (const char *orig_prefix_arg,
&& strcmp (orig_prefix_arg, curr_prefix_arg) != 0)
{
/* Duplicate the argument strings. */
- char *memory;
-
orig_prefix_len = strlen (orig_prefix_arg);
curr_prefix_len = strlen (curr_prefix_arg);
- memory = (char *) xmalloc (orig_prefix_len + 1 + curr_prefix_len + 1);
+ char *memory = (char *) xmalloc (orig_prefix_len + 1 + curr_prefix_len + 1);
#ifdef NO_XMALLOC
if (memory != NULL)
#endif
@@ -197,9 +198,6 @@ compute_curr_prefix (const char *orig_installprefix,
const char *orig_installdir,
const char *curr_pathname)
{
- char *curr_installdir;
- const char *rel_installdir;
-
if (curr_pathname == NULL)
return NULL;
@@ -210,9 +208,10 @@ compute_curr_prefix (const char *orig_installprefix,
!= 0)
/* Shouldn't happen - nothing should be installed outside $(prefix). */
return NULL;
- rel_installdir = orig_installdir + strlen (orig_installprefix);
+ const char *rel_installdir = orig_installdir + strlen (orig_installprefix);
/* Determine the current installation directory. */
+ char *curr_installdir;
{
const char *p_base = curr_pathname + FILE_SYSTEM_PREFIX_LEN (curr_pathname);
const char *p = curr_pathname + strlen (curr_pathname);
@@ -318,9 +317,9 @@ static char *shared_library_fullname;
#if 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
+ On Cygwin, it is better to use either dladdr() or the Cygwin provided /proc
+ interface, than to use native Windows API and cygwin_conv_to_posix_path,
+ because it supports longer file names
(see <https://cygwin.com/ml/cygwin/2011-01/msg00410.html>). */
/* Determine the full pathname of the shared library when it is loaded.
@@ -402,39 +401,44 @@ _DLL_InitTerm (unsigned long hModule, unsigned long ulFlag)
static void
find_shared_library_fullname ()
{
-#if (defined __linux__ && (__GLIBC__ >= 2 || defined __UCLIBC__)) || defined __CYGWIN__
+#if HAVE_DLADDR_IN_LIBC
+ /* glibc >= 2.34, musl, macOS, FreeBSD, NetBSD, OpenBSD, Solaris, Cygwin, Minix */
+ /* We can use dladdr() without introducing extra link dependencies. */
+ Dl_info info;
+ /* It is OK to use a 'static' function — that does not appear in the
+ dynamic symbol table of any ELF object — as argument of dladdr() here,
+ because we don't access the fields info.dli_sname and info.dli_saddr. */
+ int ret = dladdr (find_shared_library_fullname, &info);
+ if (ret != 0 && info.dli_fname != NULL)
+ shared_library_fullname = strdup (info.dli_fname);
+#elif (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;
+ But it is costly: ca. 0.3 ms. */
/* Open the current process' maps file. It describes one VMA per line. */
- fp = fopen ("/proc/self/maps", "r");
+ FILE *fp = fopen ("/proc/self/maps", "r");
if (fp)
{
unsigned long address = (unsigned long) &find_shared_library_fullname;
for (;;)
{
unsigned long start, end;
- int c;
if (fscanf (fp, "%lx-%lx", &start, &end) != 2)
break;
if (address >= start && address <= end - 1)
{
/* Found it. Now see if this line contains a filename. */
+ int c;
while (c = getc (fp), c != EOF && c != '\n' && c != '/')
continue;
if (c == '/')
{
- size_t size;
- int len;
-
ungetc (c, fp);
- shared_library_fullname = NULL; size = 0;
- len = getline (&shared_library_fullname, &size, fp);
+ shared_library_fullname = NULL;
+ size_t size = 0;
+ int len = getline (&shared_library_fullname, &size, fp);
if (len >= 0)
{
/* Success: filled shared_library_fullname. */
@@ -444,6 +448,7 @@ find_shared_library_fullname ()
}
break;
}
+ int c;
while (c = getc (fp), c != EOF && c != '\n')
continue;
}
@@ -452,15 +457,19 @@ find_shared_library_fullname ()
#endif
}
+# define find_shared_library_fullname find_shared_library_fullname
+
#endif /* Native Windows / EMX / Unix */
/* Return the full pathname of the current shared library.
Return NULL if unknown.
- Guaranteed to work only on Linux, EMX, Cygwin, and native Windows. */
+ Guaranteed to work only on
+ glibc >= 2.34, Linux, macOS, FreeBSD, NetBSD, OpenBSD, Solaris, Cygwin,
+ Minix, native Windows, EMX. */
static char *
get_shared_library_fullname ()
{
-#if !(defined _WIN32 && !defined __CYGWIN__) && !defined __EMX__
+#if defined find_shared_library_fullname
static bool tried_find_shared_library_fullname;
if (!tried_find_shared_library_fullname)
{
@@ -496,9 +505,7 @@ relocate (const char *pathname)
orig_prefix. */
const char *orig_installprefix = INSTALLPREFIX;
const char *orig_installdir = INSTALLDIR;
- char *curr_prefix_better;
-
- curr_prefix_better =
+ char *curr_prefix_better =
compute_curr_prefix (orig_installprefix, orig_installdir,
get_shared_library_fullname ());
diff --git a/lib/relocatable.h b/lib/relocatable.h
index 7d8e475f..8f5da75e 100644
--- a/lib/relocatable.h
+++ b/lib/relocatable.h
@@ -1,5 +1,5 @@
/* Provide relocatable packages.
- Copyright (C) 2003, 2005, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2005, 2008-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2003.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/relocatable.valgrind b/lib/relocatable.valgrind
index a9e57786..de798887 100644
--- a/lib/relocatable.valgrind
+++ b/lib/relocatable.valgrind
@@ -1,6 +1,6 @@
# Suppress a valgrind message about a memory leak in relocatable.c.
-# Copyright (C) 2017-2025 Free Software Foundation, Inc.
+# Copyright (C) 2017-2026 Free Software Foundation, Inc.
#
# This file is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
diff --git a/lib/sched.in.h b/lib/sched.in.h
index c4103128..cb8ceca0 100644
--- a/lib/sched.in.h
+++ b/lib/sched.in.h
@@ -1,5 +1,5 @@
/* A GNU-like <sched.h>.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -100,7 +100,6 @@ _GL_CXXALIAS_SYS (sched_yield, int, (void));
_GL_CXXALIASWARN (sched_yield);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef sched_yield
# if HAVE_RAW_DECL_SCHED_YIELD
_GL_WARN_ON_USE (sched_yield, "sched_yield is not portable - "
"use gnulib module sched_yield for portability");
diff --git a/lib/setlocale-fixes.c b/lib/setlocale-fixes.c
index caa18633..1ca15f76 100644
--- a/lib/setlocale-fixes.c
+++ b/lib/setlocale-fixes.c
@@ -1,5 +1,5 @@
/* Make the global locale minimally POSIX compliant.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -109,9 +109,8 @@ fill_lc_all_name (void)
else
{
/* Produce a mixed locale name. */
- size_t i;
- char *q;
- for (i = 0, q = lc_all_name; i < 12; i++)
+ char *q = lc_all_name;
+ for (size_t i = 0; i < 12; i++)
{
const char *p = cat_names[i];
size_t n = strlen (p);
@@ -178,10 +177,9 @@ setlocale_fixed (int category, const char *name)
if (name != NULL)
{
char single_name[256+1];
- int i;
/* Test whether NAME is valid. */
- for (i = 12-1; i >= 0; i--)
+ for (int i = 12-1; i >= 0; i--)
if (extract_single_name (single_name, index_to_cat (i), name) < 0)
return NULL;
/* Now single_name contains the one for the index 0,
@@ -190,7 +188,7 @@ setlocale_fixed (int category, const char *name)
return NULL;
/* Fill lc_cat_name[]. */
- for (i = 12-1; i >= 0; i--)
+ for (int i = 12-1; i >= 0; i--)
{
if (extract_single_name (single_name, index_to_cat (i), name) < 0)
abort ();
diff --git a/lib/setlocale-fixes.h b/lib/setlocale-fixes.h
index d3cd2477..d46a30db 100644
--- a/lib/setlocale-fixes.h
+++ b/lib/setlocale-fixes.h
@@ -1,5 +1,5 @@
/* Make the global locale minimally POSIX compliant.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/setlocale-lock.c b/lib/setlocale-lock.c
index 87e0048c..afbcc046 100644
--- a/lib/setlocale-lock.c
+++ b/lib/setlocale-lock.c
@@ -1,5 +1,5 @@
/* Return the internal lock used by setlocale_null_r.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/setlocale_null-unlocked.c b/lib/setlocale_null-unlocked.c
index 72729e6b..e7f155c7 100644
--- a/lib/setlocale_null-unlocked.c
+++ b/lib/setlocale_null-unlocked.c
@@ -1,5 +1,5 @@
/* Query the name of the current global locale, without locking.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -86,10 +86,8 @@ setlocale_null_r_unlocked (int category, char *buf, size_t bufsize)
size_t length = wcslen (result);
if (length < bufsize)
{
- size_t i;
-
/* Convert wchar_t[] -> char[], assuming plain ASCII. */
- for (i = 0; i <= length; i++)
+ for (size_t i = 0; i <= length; i++)
buf[i] = result[i];
return 0;
@@ -101,10 +99,8 @@ setlocale_null_r_unlocked (int category, char *buf, size_t bufsize)
/* Return a truncated result in BUF.
This is a convenience for callers that don't want to write
explicit code for handling ERANGE. */
- size_t i;
-
/* Convert wchar_t[] -> char[], assuming plain ASCII. */
- for (i = 0; i < bufsize; i++)
+ for (size_t i = 0; i < bufsize; i++)
buf[i] = result[i];
buf[bufsize - 1] = '\0';
}
diff --git a/lib/setlocale_null.c b/lib/setlocale_null.c
index 29889642..39b6766c 100644
--- a/lib/setlocale_null.c
+++ b/lib/setlocale_null.c
@@ -1,5 +1,5 @@
/* Query the name of the current global locale.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -77,10 +77,9 @@ static int
setlocale_null_r_with_lock (int category, char *buf, size_t bufsize)
{
CRITICAL_SECTION *lock = gl_get_setlocale_null_lock ();
- int ret;
EnterCriticalSection (lock);
- ret = setlocale_null_r_unlocked (category, buf, bufsize);
+ int ret = setlocale_null_r_unlocked (category, buf, bufsize);
LeaveCriticalSection (lock);
return ret;
@@ -116,11 +115,10 @@ setlocale_null_r_with_lock (int category, char *buf, size_t bufsize)
if (pthread_in_use())
{
pthread_mutex_t *lock = gl_get_setlocale_null_lock ();
- int ret;
if (pthread_mutex_lock (lock))
abort ();
- ret = setlocale_null_r_unlocked (category, buf, bufsize);
+ int ret = setlocale_null_r_unlocked (category, buf, bufsize);
if (pthread_mutex_unlock (lock))
abort ();
@@ -138,11 +136,10 @@ static int
setlocale_null_r_with_lock (int category, char *buf, size_t bufsize)
{
mtx_t *lock = gl_get_setlocale_null_lock ();
- int ret;
if (mtx_lock (lock) != thrd_success)
abort ();
- ret = setlocale_null_r_unlocked (category, buf, bufsize);
+ int ret = setlocale_null_r_unlocked (category, buf, bufsize);
if (mtx_unlock (lock) != thrd_success)
abort ();
@@ -252,9 +249,7 @@ setlocale_null (int category)
i;
char buf[SETLOCALE_NULL_MAX];
static char resultbuf[LC_INDICES_COUNT][SETLOCALE_NULL_MAX];
- int err;
-
- err = setlocale_null_r (category, buf, sizeof (buf));
+ int err = setlocale_null_r (category, buf, sizeof (buf));
if (err == EINVAL)
return NULL;
if (err)
diff --git a/lib/setlocale_null.h b/lib/setlocale_null.h
index 3fcb7a82..dbd646b3 100644
--- a/lib/setlocale_null.h
+++ b/lib/setlocale_null.h
@@ -1,5 +1,5 @@
/* Query the name of the current global locale.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/signbitd.c b/lib/signbitd.c
index 6cbfa107..18b7c8fe 100644
--- a/lib/signbitd.c
+++ b/lib/signbitd.c
@@ -1,5 +1,5 @@
/* signbit() macro: Determine the sign bit of a floating-point number.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/signbitf.c b/lib/signbitf.c
index d833b4b9..a6c867b9 100644
--- a/lib/signbitf.c
+++ b/lib/signbitf.c
@@ -1,5 +1,5 @@
/* signbit() macro: Determine the sign bit of a floating-point number.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/signbitl.c b/lib/signbitl.c
index 0b185421..16ab0c61 100644
--- a/lib/signbitl.c
+++ b/lib/signbitl.c
@@ -1,5 +1,5 @@
/* signbit() macro: Determine the sign bit of a floating-point number.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/size_max.h b/lib/size_max.h
index 93eb96a6..b627e5ff 100644
--- a/lib/size_max.h
+++ b/lib/size_max.h
@@ -1,5 +1,5 @@
/* size_max.h -- declare SIZE_MAX through system headers
- Copyright (C) 2005-2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2006, 2009-2026 Free Software Foundation, Inc.
Written by Simon Josefsson.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/stdckdint.in.h b/lib/stdckdint.in.h
index bb9089b4..1989f7b8 100644
--- a/lib/stdckdint.in.h
+++ b/lib/stdckdint.in.h
@@ -1,6 +1,6 @@
/* stdckdint.h -- checked integer arithmetic
- Copyright 2022-2025 Free Software Foundation, Inc.
+ Copyright 2022-2026 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
@@ -47,7 +47,7 @@
These are like the standard macros introduced in C23, except that
arguments should not have side effects. The C++26 standard is
- expected to add this header and it's macros. */
+ expected to add this header and its macros. */
# define ckd_add(r, a, b) ((bool) _GL_INT_ADD_WRAPV (a, b, r))
# define ckd_sub(r, a, b) ((bool) _GL_INT_SUBTRACT_WRAPV (a, b, r))
diff --git a/lib/stddef.in.h b/lib/stddef.in.h
index 9ad768d7..2fe9e044 100644
--- a/lib/stddef.in.h
+++ b/lib/stddef.in.h
@@ -1,6 +1,6 @@
/* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/stdint.in.h b/lib/stdint.in.h
index 4df64333..f6066094 100644
--- a/lib/stdint.in.h
+++ b/lib/stdint.in.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2002, 2004-2025 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2002, 2004-2026 Free Software Foundation, Inc.
Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
This file is part of gnulib.
diff --git a/lib/stdio-impl.h b/lib/stdio-impl.h
index 4abf9e68..c90f64df 100644
--- a/lib/stdio-impl.h
+++ b/lib/stdio-impl.h
@@ -1,5 +1,5 @@
/* Implementation details of FILE streams.
- Copyright (C) 2007-2008, 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2008, 2010-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -108,15 +108,59 @@
# define _flags pub._flags
# define _r pub._r
# define _w pub._w
-# elif defined __ANDROID__ || defined __OpenBSD__ /* Android, OpenBSD */
-# if defined __LP64__ && !defined __OpenBSD__
+# elif defined __OpenBSD__ /* OpenBSD */
+# if defined __sferror /* OpenBSD <= 7.7 */
+# define _gl_flags_file_t short
+# else /* OpenBSD >= 7.8 */
+# define _gl_flags_file_t int
+# endif
+ /* Up to this commit from 2025-07-16
+ <https://github.com/openbsd/src/commit/b7f6c2eb760a2da367dd51d539ef06f5f3553790>
+ the innards of FILE were public. After this commit, the innards of FILE
+ are hidden. In this commit
+ <https://github.com/openbsd/src/commit/9063a2f1ec94013fb0e2c7ec851495108e788a6e>
+ they were reshuffled. */
+# if defined __sferror /* OpenBSD <= 7.7 */
+# define fp_ ((struct { unsigned char *_p; \
+ int _r; \
+ int _w; \
+ _gl_flags_file_t _flags; \
+ _gl_flags_file_t _file; \
+ struct { unsigned char *_base; size_t _size; } _bf; \
+ int _lbfsize; \
+ void *_cookie; \
+ void *_close; \
+ void *_read; \
+ void *_seek; \
+ void *_write; \
+ struct { unsigned char *_base; size_t _size; } _ext; \
+ unsigned char *_up; \
+ int _ur; \
+ unsigned char _ubuf[3]; \
+ unsigned char _nbuf[1]; \
+ struct { unsigned char *_base; size_t _size; } _lb; \
+ int _blksize; \
+ fpos_t _offset; \
+ /* More fields, not relevant here. */ \
+ } *) fp)
+# else /* OpenBSD >= 7.8 */
+# define fp_ ((struct { _gl_flags_file_t _flags; \
+ _gl_flags_file_t _file; \
+ unsigned char *_p; \
+ int _r; \
+ int _w; \
+ struct { unsigned char *_base; size_t _size; } _bf; \
+ int _lbfsize; \
+ /* More fields, not relevant here. */ \
+ } *) fp)
+# endif
+# elif defined __ANDROID__ /* Android */
+# if defined __LP64__
# define _gl_flags_file_t int
# else
# define _gl_flags_file_t short
# endif
-# if defined __OpenBSD__
-# define _gl_file_offset_t fpos_t
-# elif defined __LP64__
+# if defined __LP64__
# define _gl_file_offset_t int64_t
# else
/* see https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md */
@@ -127,9 +171,7 @@
the innards of FILE were public,
see <https://android.googlesource.com/platform/bionic.git/+/e78392637d5086384a5631ddfdfa8d7ec8326ee3/libc/stdio/fileext.h>
and <https://android.googlesource.com/platform/bionic.git/+/e78392637d5086384a5631ddfdfa8d7ec8326ee3/libc/stdio/local.h>.
- After this commit, the innards of FILE are hidden. Likewise for OpenBSD
- up to this commit from 2025-07-16
- <https://github.com/openbsd/src/commit/b7f6c2eb760a2da367dd51d539ef06f5f3553790>. */
+ After this commit, the innards of FILE are hidden. */
# define fp_ ((struct { unsigned char *_p; \
int _r; \
int _w; \
diff --git a/lib/stdlib.c b/lib/stdlib.c
index 6a06f5ba..f51a25c3 100644
--- a/lib/stdlib.c
+++ b/lib/stdlib.c
@@ -1,6 +1,6 @@
/* Inline functions for <stdlib.h>.
- Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Copyright (C) 2024-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h
index bef0aaaf..95237f2a 100644
--- a/lib/stdlib.in.h
+++ b/lib/stdlib.in.h
@@ -1,6 +1,6 @@
/* A GNU-like <stdlib.h>.
- Copyright (C) 1995, 2001-2004, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 1995, 2001-2004, 2006-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -70,6 +70,11 @@
# include <sys/loadavg.h>
#endif
+/* QNX declares getprogname() in <sys/process.h>. */
+#if (@GNULIB_GETPROGNAME@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_PROCESS_H@
+# include <sys/process.h>
+#endif
+
/* Native Windows platforms declare _mktemp() in <io.h>. */
#if defined _WIN32 && !defined __CYGWIN__
# include <io.h>
@@ -224,9 +229,9 @@ _GL_INLINE_HEADER_BEGIN
/* Declarations for ISO C N3322. */
#if defined __GNUC__ && __GNUC__ >= 15 && !defined __clang__
-_GL_EXTERN_C void *bsearch (const void *__key,
- const void *__base, size_t __nmemb, size_t __size,
- int (*__compare) (const void *, const void *))
+_GL_EXTERN_C void *_GL_FUNCDECL_SYS_NAME (bsearch)
+ (const void *__key, const void *__base, size_t __nmemb, size_t __size,
+ int (*__compare) (const void *, const void *))
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3) _GL_ARG_NONNULL ((5));
_GL_EXTERN_C void qsort (void *__base, size_t __nmemb, size_t __size,
int (*__compare) (const void *, const void *))
@@ -254,7 +259,6 @@ _GL_CXXALIAS_SYS (_Exit, void, (int status));
_GL_CXXALIASWARN (_Exit);
# endif
#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");
@@ -301,7 +305,6 @@ _GL_CXXALIAS_SYS (free, void, (void *ptr));
_GL_CXXALIASWARN (free);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef free
/* Assume free is always declared. */
_GL_WARN_ON_USE (free, "free is not POSIX:2024 compliant everywhere - "
"use gnulib module free-posix for portability");
@@ -359,7 +362,6 @@ _GL_FUNCDECL_SYS (aligned_alloc, void *,
# endif
# endif
# if defined GNULIB_POSIXCHECK
-# undef aligned_alloc
# if HAVE_RAW_DECL_ALIGNED_ALLOC
_GL_WARN_ON_USE (aligned_alloc, "aligned_alloc is not portable - "
"use gnulib module aligned_alloc for portability");
@@ -379,7 +381,6 @@ _GL_FUNCDECL_SYS (atoll, long long,
_GL_CXXALIAS_SYS (atoll, long long, (const char *string));
_GL_CXXALIASWARN (atoll);
#elif defined GNULIB_POSIXCHECK
-# undef atoll
# if HAVE_RAW_DECL_ATOLL
_GL_WARN_ON_USE (atoll, "atoll is unportable - "
"use gnulib module atoll for portability");
@@ -436,7 +437,6 @@ _GL_FUNCDECL_SYS (calloc, void *,
# endif
# endif
# if defined GNULIB_POSIXCHECK
-# undef calloc
/* Assume calloc is always declared. */
_GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - "
"use gnulib module calloc-posix for portability");
@@ -497,7 +497,6 @@ _GL_FUNCDECL_SYS (canonicalize_file_name, char *,
# endif
# endif
# if 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 - "
@@ -597,7 +596,6 @@ _GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem));
_GL_CXXALIASWARN (getloadavg);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getloadavg
# if HAVE_RAW_DECL_GETLOADAVG
_GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - "
"use gnulib module getloadavg for portability");
@@ -632,7 +630,6 @@ _GL_CXXALIAS_SYS (getprogname, const char *, (void));
_GL_CXXALIASWARN (getprogname);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getprogname
# if HAVE_RAW_DECL_GETPROGNAME
_GL_WARN_ON_USE (getprogname, "getprogname is unportable - "
"use gnulib module getprogname for portability");
@@ -674,7 +671,6 @@ _GL_CXXALIAS_SYS (getsubopt, int,
_GL_CXXALIASWARN (getsubopt);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getsubopt
# if HAVE_RAW_DECL_GETSUBOPT
_GL_WARN_ON_USE (getsubopt, "getsubopt is unportable - "
"use gnulib module getsubopt for portability");
@@ -690,7 +686,6 @@ _GL_FUNCDECL_SYS (grantpt, int, (int fd), );
_GL_CXXALIAS_SYS (grantpt, int, (int fd));
_GL_CXXALIASWARN (grantpt);
#elif defined GNULIB_POSIXCHECK
-# undef grantpt
# if HAVE_RAW_DECL_GRANTPT
_GL_WARN_ON_USE (grantpt, "grantpt is not portable - "
"use gnulib module grantpt for portability");
@@ -751,7 +746,6 @@ _GL_FUNCDECL_SYS (malloc, void *,
# endif
# endif
# if 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");
@@ -802,7 +796,6 @@ _GL_CXXALIAS_SYS (mbstowcs, size_t,
_GL_CXXALIASWARN (mbstowcs);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mbstowcs
# if HAVE_RAW_DECL_MBSTOWCS
_GL_WARN_ON_USE (mbstowcs, "mbstowcs is unportable - "
"use gnulib module mbstowcs for portability");
@@ -832,7 +825,6 @@ _GL_CXXALIAS_SYS (mbtowc, int,
_GL_CXXALIASWARN (mbtowc);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mbtowc
# if HAVE_RAW_DECL_MBTOWC
_GL_WARN_ON_USE (mbtowc, "mbtowc is not portable - "
"use gnulib module mbtowc for portability");
@@ -853,7 +845,6 @@ _GL_FUNCDECL_SYS (mkdtemp, char *,
_GL_CXXALIAS_SYS (mkdtemp, char *, (char * /*template*/));
_GL_CXXALIASWARN (mkdtemp);
#elif defined GNULIB_POSIXCHECK
-# undef mkdtemp
# if HAVE_RAW_DECL_MKDTEMP
_GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - "
"use gnulib module mkdtemp for portability");
@@ -892,7 +883,6 @@ _GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/));
_GL_CXXALIASWARN (mkostemp);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mkostemp
# if HAVE_RAW_DECL_MKOSTEMP
_GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - "
"use gnulib module mkostemp for portability");
@@ -936,7 +926,6 @@ _GL_CXXALIAS_SYS (mkostemps, int,
_GL_CXXALIASWARN (mkostemps);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mkostemps
# if HAVE_RAW_DECL_MKOSTEMPS
_GL_WARN_ON_USE (mkostemps, "mkostemps is unportable - "
"use gnulib module mkostemps for portability");
@@ -969,7 +958,6 @@ _GL_CXXALIAS_SYS (mkstemp, int, (char * /*template*/));
# endif
_GL_CXXALIASWARN (mkstemp);
#elif defined GNULIB_POSIXCHECK
-# undef mkstemp
# if HAVE_RAW_DECL_MKSTEMP
_GL_WARN_ON_USE (mkstemp, "mkstemp is unportable - "
"use gnulib module mkstemp for portability");
@@ -994,7 +982,6 @@ _GL_FUNCDECL_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/),
_GL_CXXALIAS_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/));
_GL_CXXALIASWARN (mkstemps);
#elif defined GNULIB_POSIXCHECK
-# undef mkstemps
# if HAVE_RAW_DECL_MKSTEMPS
_GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - "
"use gnulib module mkstemps for portability");
@@ -1039,7 +1026,6 @@ _GL_CXXALIAS_SYS (posix_memalign, int,
_GL_CXXALIASWARN (posix_memalign);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef posix_memalign
# if HAVE_RAW_DECL_POSIX_MEMALIGN
_GL_WARN_ON_USE (posix_memalign, "posix_memalign is not portable - "
"use gnulib module posix_memalign for portability");
@@ -1066,7 +1052,6 @@ _GL_CXXALIAS_SYS (posix_openpt, int, (int flags));
_GL_CXXALIASWARN (posix_openpt);
# endif
#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");
@@ -1091,7 +1076,6 @@ _GL_CXXALIAS_SYS (ptsname, char *, (int fd));
# endif
_GL_CXXALIASWARN (ptsname);
#elif defined GNULIB_POSIXCHECK
-# undef ptsname
# if HAVE_RAW_DECL_PTSNAME
_GL_WARN_ON_USE (ptsname, "ptsname is not portable - "
"use gnulib module ptsname for portability");
@@ -1120,7 +1104,6 @@ _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");
@@ -1214,7 +1197,6 @@ _GL_CXXALIAS_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size,
_GL_CXXALIASWARN (qsort_r);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef qsort_r
# if HAVE_RAW_DECL_QSORT_R
_GL_WARN_ON_USE (qsort_r, "qsort_r is not portable - "
"use gnulib module qsort_r for portability");
@@ -1266,7 +1248,6 @@ _GL_CXXALIAS_SYS_CAST (random, long, (void));
_GL_CXXALIASWARN (random);
# endif
#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");
@@ -1293,7 +1274,6 @@ _GL_CXXALIAS_SYS_CAST (srandom, void, (unsigned int seed));
_GL_CXXALIASWARN (srandom);
# endif
#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");
@@ -1326,7 +1306,6 @@ _GL_CXXALIAS_SYS_CAST (initstate, char *,
_GL_CXXALIASWARN (initstate);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef initstate
# if HAVE_RAW_DECL_INITSTATE
_GL_WARN_ON_USE (initstate, "initstate is unportable - "
"use gnulib module random for portability");
@@ -1353,7 +1332,6 @@ _GL_CXXALIAS_SYS_CAST (setstate, char *, (char *arg_state));
_GL_CXXALIASWARN (setstate);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef setstate
# if HAVE_RAW_DECL_SETSTATE
_GL_WARN_ON_USE (setstate, "setstate is unportable - "
"use gnulib module random for portability");
@@ -1379,7 +1357,6 @@ _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
# if HAVE_RAW_DECL_RANDOM_R
_GL_WARN_ON_USE (random_r, "random_r is unportable - "
"use gnulib module random_r for portability");
@@ -1408,7 +1385,6 @@ _GL_CXXALIAS_SYS (srandom_r, int,
# endif
_GL_CXXALIASWARN (srandom_r);
#elif defined GNULIB_POSIXCHECK
-# undef srandom_r
# if HAVE_RAW_DECL_SRANDOM_R
_GL_WARN_ON_USE (srandom_r, "srandom_r is unportable - "
"use gnulib module random_r for portability");
@@ -1443,7 +1419,6 @@ _GL_CXXALIAS_SYS_CAST (initstate_r, int,
# endif
_GL_CXXALIASWARN (initstate_r);
#elif defined GNULIB_POSIXCHECK
-# undef initstate_r
# if HAVE_RAW_DECL_INITSTATE_R
_GL_WARN_ON_USE (initstate_r, "initstate_r is unportable - "
"use gnulib module random_r for portability");
@@ -1474,7 +1449,6 @@ _GL_CXXALIAS_SYS_CAST (setstate_r, int,
# endif
_GL_CXXALIASWARN (setstate_r);
#elif defined GNULIB_POSIXCHECK
-# undef setstate_r
# if HAVE_RAW_DECL_SETSTATE_R
_GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - "
"use gnulib module random_r for portability");
@@ -1544,7 +1518,6 @@ _GL_FUNCDECL_SYS (realloc, void *,
# endif
# endif
# if 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 - "
"use gnulib module realloc-posix for portability");
@@ -1576,7 +1549,6 @@ _GL_CXXALIAS_SYS (reallocarray, void *,
_GL_CXXALIASWARN (reallocarray);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef reallocarray
# if HAVE_RAW_DECL_REALLOCARRAY
_GL_WARN_ON_USE (reallocarray, "reallocarray is not portable - "
"use gnulib module reallocarray for portability");
@@ -1604,7 +1576,6 @@ _GL_CXXALIAS_SYS (realpath, char *,
# endif
_GL_CXXALIASWARN (realpath);
#elif defined GNULIB_POSIXCHECK
-# undef realpath
# if HAVE_RAW_DECL_REALPATH
_GL_WARN_ON_USE (realpath, "realpath is unportable - use gnulib module "
"canonicalize or canonicalize-lgpl for portability");
@@ -1621,7 +1592,6 @@ _GL_FUNCDECL_SYS (rpmatch, int, (const char *response),
_GL_CXXALIAS_SYS (rpmatch, int, (const char *response));
_GL_CXXALIASWARN (rpmatch);
#elif defined GNULIB_POSIXCHECK
-# undef rpmatch
# if HAVE_RAW_DECL_RPMATCH
_GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - "
"use gnulib module rpmatch for portability");
@@ -1638,7 +1608,6 @@ _GL_FUNCDECL_SYS (secure_getenv, char *,
_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");
@@ -1671,7 +1640,6 @@ _GL_CXXALIAS_SYS (setenv, int,
_GL_CXXALIASWARN (setenv);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef setenv
# if HAVE_RAW_DECL_SETENV
_GL_WARN_ON_USE (setenv, "setenv is unportable - "
"use gnulib module setenv for portability");
@@ -1716,7 +1684,6 @@ _GL_CXXALIAS_SYS (strtod, double,
_GL_CXXALIASWARN (strtod);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strtod
# if HAVE_RAW_DECL_STRTOD
_GL_WARN_ON_USE (strtod, "strtod is unportable - "
"use gnulib module strtod for portability");
@@ -1748,7 +1715,6 @@ _GL_CXXALIAS_SYS (strtof, float,
_GL_CXXALIASWARN (strtof);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strtof
# if HAVE_RAW_DECL_STRTOF
_GL_WARN_ON_USE (strtof, "strtof is unportable - "
"use gnulib module strtof for portability");
@@ -1778,7 +1744,6 @@ _GL_CXXALIAS_SYS (strtold, long double,
# endif
_GL_CXXALIASWARN (strtold);
#elif defined GNULIB_POSIXCHECK
-# undef strtold
# if HAVE_RAW_DECL_STRTOLD
_GL_WARN_ON_USE (strtold, "strtold is unportable - "
"use gnulib module strtold for portability");
@@ -1821,7 +1786,6 @@ _GL_CXXALIAS_SYS (strtol, long,
_GL_CXXALIASWARN (strtol);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strtol
# if HAVE_RAW_DECL_STRTOL
_GL_WARN_ON_USE (strtol, "strtol is unportable - "
"use gnulib module strtol for portability");
@@ -1862,7 +1826,6 @@ _GL_CXXALIAS_SYS (strtoll, long long,
# endif
_GL_CXXALIASWARN (strtoll);
#elif defined GNULIB_POSIXCHECK
-# undef strtoll
# if HAVE_RAW_DECL_STRTOLL
_GL_WARN_ON_USE (strtoll, "strtoll is unportable - "
"use gnulib module strtoll for portability");
@@ -1904,7 +1867,6 @@ _GL_CXXALIAS_SYS (strtoul, unsigned long,
_GL_CXXALIASWARN (strtoul);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strtoul
# if HAVE_RAW_DECL_STRTOUL
_GL_WARN_ON_USE (strtoul, "strtoul is unportable - "
"use gnulib module strtoul for portability");
@@ -1945,7 +1907,6 @@ _GL_CXXALIAS_SYS (strtoull, unsigned long long,
# endif
_GL_CXXALIASWARN (strtoull);
#elif defined GNULIB_POSIXCHECK
-# undef strtoull
# if HAVE_RAW_DECL_STRTOULL
_GL_WARN_ON_USE (strtoull, "strtoull is unportable - "
"use gnulib module strtoull for portability");
@@ -1961,7 +1922,6 @@ _GL_FUNCDECL_SYS (unlockpt, int, (int fd), );
_GL_CXXALIAS_SYS (unlockpt, int, (int fd));
_GL_CXXALIASWARN (unlockpt);
#elif defined GNULIB_POSIXCHECK
-# undef unlockpt
# if HAVE_RAW_DECL_UNLOCKPT
_GL_WARN_ON_USE (unlockpt, "unlockpt is not portable - "
"use gnulib module unlockpt for portability");
@@ -1987,7 +1947,6 @@ _GL_CXXALIAS_SYS (unsetenv, int, (const char *name));
_GL_CXXALIASWARN (unsetenv);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef unsetenv
# if HAVE_RAW_DECL_UNSETENV
_GL_WARN_ON_USE (unsetenv, "unsetenv is unportable - "
"use gnulib module unsetenv for portability");
diff --git a/lib/str-two-way.h b/lib/str-two-way.h
index d13fb298..7cf91ffd 100644
--- a/lib/str-two-way.h
+++ b/lib/str-two-way.h
@@ -1,5 +1,5 @@
/* Byte-wise substring search, using the Two-Way algorithm.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Eric Blake <ebb9@byu.net>, 2008.
@@ -108,13 +108,6 @@ 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)
@@ -133,73 +126,83 @@ critical_factorization (const unsigned char *needle, size_t needle_len,
*/
/* 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;
+ size_t max_suffix = /* Index of last byte of left half, or SIZE_MAX. */
+ SIZE_MAX;
+ {
+ size_t j = 0; /* Index into NEEDLE for current candidate suffix. */
+ size_t k = 1; /* Offset into current period. */
+ size_t p = 1; /* Intermediate period. */
+ while (j + k < needle_len)
+ {
+ unsigned char a = CANON_ELEMENT (needle[j + k]);
+ unsigned char 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;
- }
- }
+ size_t max_suffix_rev = /* Index of last byte of left half, or SIZE_MAX. */
+ SIZE_MAX;
+ size_t p_rev;
+ {
+ size_t j = 0; /* Index into NEEDLE for current candidate suffix. */
+ size_t k = 1; /* Offset into current period. */
+ size_t p = 1; /* Intermediate period. */
+ while (j + k < needle_len)
+ {
+ unsigned char a = CANON_ELEMENT (needle[j + k]);
+ unsigned char 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;
+ }
+ }
+ p_rev = p;
+ }
/* Choose the shorter suffix. Return the index of the first byte of
the right half, rather than the last byte of the left half.
@@ -217,7 +220,7 @@ critical_factorization (const unsigned char *needle, size_t needle_len,
factorization. */
if (max_suffix_rev + 1 < max_suffix + 1)
return max_suffix + 1;
- *period = p;
+ *period = p_rev;
return max_suffix_rev + 1;
}
@@ -235,15 +238,12 @@ static RETURN_TYPE _GL_ATTRIBUTE_PURE
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);
+ size_t period; /* The period of the right half of needle. */
+ size_t suffix = /* The index of the right half of needle. */
+ critical_factorization (needle, needle_len, &period);
/* Perform the search. Each iteration compares the right half
first. */
@@ -253,11 +253,12 @@ two_way_short_needle (const unsigned char *haystack, size_t haystack_len,
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;
+ size_t j = 0; /* Index into current window of HAYSTACK. */
while (AVAILABLE (haystack, haystack_len, j, needle_len))
{
/* Scan for matches in right half. */
- i = MAX (suffix, memory);
+ size_t i = /* Index into current byte of NEEDLE. */
+ MAX (suffix, memory);
while (i < needle_len && (CANON_ELEMENT (needle[i])
== CANON_ELEMENT (haystack[i + j])))
++i;
@@ -287,11 +288,12 @@ two_way_short_needle (const unsigned char *haystack, size_t haystack_len,
/* 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;
+ size_t j = 0; /* Index into current window of HAYSTACK. */
while (AVAILABLE (haystack, haystack_len, j, needle_len))
{
/* Scan for matches in right half. */
- i = suffix;
+ size_t i = /* Index into current byte of NEEDLE. */
+ suffix;
while (i < needle_len && (CANON_ELEMENT (needle[i])
== CANON_ELEMENT (haystack[i + j])))
++i;
@@ -329,24 +331,21 @@ static RETURN_TYPE _GL_ATTRIBUTE_PURE
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);
+ size_t period; /* The period of the right half of needle. */
+ size_t suffix = /* The index of the right half of needle. */
+ 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++)
+ size_t shift_table[1U << CHAR_BIT];
+ for (size_t i = 0; i < 1U << CHAR_BIT; i++)
shift_table[i] = needle_len;
- for (i = 0; i < needle_len; i++)
+ for (size_t 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
@@ -357,13 +356,13 @@ two_way_long_needle (const unsigned char *haystack, size_t haystack_len,
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;
+ size_t j = 0; /* Index into current window of HAYSTACK. */
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])];
+ size_t shift =
+ shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])];
if (0 < shift)
{
if (memory && shift < period)
@@ -375,32 +374,34 @@ two_way_long_needle (const unsigned char *haystack, size_t haystack_len,
}
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;
+ /* Scan for matches in right half. The last byte has
+ already been matched, by virtue of the shift table. */
+ size_t 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;
+ }
}
}
}
@@ -408,38 +409,40 @@ two_way_long_needle (const unsigned char *haystack, size_t haystack_len,
{
/* 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;
+ size_t j = 0; /* Index into current window of HAYSTACK. */
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])];
+ size_t 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)
+ else
{
- /* 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;
+ /* Scan for matches in right half. The last byte has
+ already been matched, by virtue of the shift table. */
+ size_t 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;
}
- else
- j += i - suffix + 1;
}
}
return NULL;
diff --git a/lib/streq.h b/lib/streq-opt.h
index eb0df460..31f0e775 100644
--- a/lib/streq.h
+++ b/lib/streq-opt.h
@@ -1,5 +1,5 @@
/* Optimized string comparison.
- Copyright (C) 2001-2002, 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -16,8 +16,8 @@
/* Written by Bruno Haible <bruno@clisp.org>. */
-#ifndef _GL_STREQ_H
-#define _GL_STREQ_H
+#ifndef _GL_STREQ_OPT_H
+#define _GL_STREQ_OPT_H
#include <string.h>
@@ -183,4 +183,4 @@ streq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23,
}
#endif
-#endif /* _GL_STREQ_H */
+#endif /* _GL_STREQ_OPT_H */
diff --git a/lib/striconveh.c b/lib/striconveh.c
index 9289591b..b345923d 100644
--- a/lib/striconveh.c
+++ b/lib/striconveh.c
@@ -1,5 +1,5 @@
/* Character set conversion with error handling.
- Copyright (C) 2001-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2026 Free Software Foundation, Inc.
Written by Bruno Haible and Simon Josefsson.
This file is free software: you can redistribute it and/or modify
@@ -46,12 +46,9 @@
int
iconveh_open (const char *to_codeset, const char *from_codeset, iconveh_t *cdp)
{
- iconv_t cd;
- iconv_t cd1;
- iconv_t cd2;
-
- cd = iconv_open (to_codeset, from_codeset);
+ iconv_t cd = iconv_open (to_codeset, from_codeset);
+ iconv_t cd1;
if (STRCASEEQ (from_codeset, "UTF-8", 'U','T','F','-','8',0,0,0,0))
cd1 = (iconv_t)(-1);
else
@@ -67,6 +64,7 @@ iconveh_open (const char *to_codeset, const char *from_codeset, iconveh_t *cdp)
}
}
+ iconv_t cd2;
if (STRCASEEQ (to_codeset, "UTF-8", 'U','T','F','-','8',0,0,0,0)
# if (((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2) \
&& !defined __UCLIBC__) \
@@ -148,12 +146,10 @@ iconv_carefully (iconv_t cd,
do
{
- size_t insize;
-
inptr_before = inptr;
res = (size_t)(-1);
- for (insize = 1; inptr + insize <= inptr_end; insize++)
+ for (size_t insize = 1; inptr + insize <= inptr_end; insize++)
{
res = iconv (cd,
(ICONV_CONST char **) &inptr, &insize,
@@ -215,9 +211,8 @@ iconv_carefully_1 (iconv_t cd,
char *outptr = *outbuf;
size_t outsize = *outbytesleft;
size_t res = (size_t)(-1);
- size_t insize;
- for (insize = 1; inptr_before + insize <= inptr_end; insize++)
+ for (size_t insize = 1; inptr_before + insize <= inptr_end; insize++)
{
inptr = inptr_before;
res = iconv (cd,
@@ -279,16 +274,11 @@ utf8conv_carefully (bool one_character_only,
size_t insize = *inbytesleft;
char *outptr = *outbuf;
size_t outsize = *outbytesleft;
- size_t res;
-
- res = 0;
+ size_t res = 0;
do
{
ucs4_t uc;
- int n;
- int m;
-
- n = u8_mbtoucr (&uc, (const uint8_t *) inptr, insize);
+ int n = u8_mbtoucr (&uc, (const uint8_t *) inptr, insize);
if (n < 0)
{
errno = (n == -2 ? EINVAL : EILSEQ);
@@ -306,7 +296,7 @@ utf8conv_carefully (bool one_character_only,
*incremented = false;
break;
}
- m = u8_uctomb ((uint8_t *) outptr, uc, outsize);
+ int m = u8_uctomb ((uint8_t *) outptr, uc, outsize);
if (m == -2)
{
errno = E2BIG;
@@ -355,11 +345,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
# define tmpbuf tmp.buf
char *initial_result;
- char *result;
size_t allocated;
- size_t length;
- size_t last_length = (size_t)(-1); /* only needed if offsets != NULL */
-
if (*resultp != NULL && *lengthp >= sizeof (tmpbuf))
{
initial_result = *resultp;
@@ -370,40 +356,39 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
initial_result = tmpbuf;
allocated = sizeof (tmpbuf);
}
- result = initial_result;
+
+ char *result = initial_result;
/* Test whether a direct conversion is possible at all. */
if (cd == (iconv_t)(-1))
goto indirectly;
+ size_t last_length = (size_t)(-1); /* only needed if offsets != NULL */
if (offsets != NULL)
{
- size_t i;
-
- for (i = 0; i < srclen; i++)
+ for (size_t i = 0; i < srclen; i++)
offsets[i] = (size_t)(-1);
last_length = (size_t)(-1);
}
- length = 0;
+ size_t length = 0;
/* First, try a direct conversion, and see whether a conversion error
occurs at all. */
{
- const char *inptr = src;
- size_t insize = srclen;
-
/* Set to the initial state. */
iconv (cd, NULL, NULL, NULL, NULL);
+ const char *inptr = src;
+ size_t insize = srclen;
+
while (insize > 0)
{
char *outptr = result + length;
size_t outsize = allocated - extra_alloc - length;
+
bool incremented;
size_t res;
- bool grow;
-
if (offsets != NULL)
{
if (length != last_length) /* ensure that offset[] be increasing */
@@ -429,7 +414,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
&incremented);
length = outptr - result;
- grow = (length + extra_alloc > allocated / 2);
+ bool grow = (length + extra_alloc > allocated / 2);
if (res == (size_t)(-1))
{
if (errno == E2BIG)
@@ -447,13 +432,12 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
(handler == iconveh_replacement_character ? 3 : 1);
if (length + extra_need + extra_alloc > allocated)
{
- char *memory;
-
allocated = 2 * allocated;
if (length + extra_need + extra_alloc > allocated)
allocated = 2 * allocated;
if (length + extra_need + extra_alloc > allocated)
abort ();
+ char *memory;
if (result == initial_result)
memory = (char *) malloc (allocated);
else
@@ -507,9 +491,8 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
break;
if (grow)
{
- char *memory;
-
allocated = 2 * allocated;
+ char *memory;
if (result == initial_result)
memory = (char *) malloc (allocated);
else
@@ -537,17 +520,15 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
{
char *outptr = result + length;
size_t outsize = allocated - extra_alloc - length;
- size_t res;
-
- res = iconv (cd, NULL, NULL, &outptr, &outsize);
+ size_t res = iconv (cd, NULL, NULL, &outptr, &outsize);
length = outptr - result;
if (res == (size_t)(-1))
{
if (errno == E2BIG)
{
- char *memory;
allocated = 2 * allocated;
+ char *memory;
if (result == initial_result)
memory = (char *) malloc (allocated);
else
@@ -583,15 +564,19 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
Use a conversion through UTF-8. */
if (offsets != NULL)
{
- size_t i;
-
- for (i = 0; i < srclen; i++)
+ for (size_t i = 0; i < srclen; i++)
offsets[i] = (size_t)(-1);
last_length = (size_t)(-1);
}
length = 0;
{
+ /* Set to the initial state. */
+ if (cd1 != (iconv_t)(-1))
+ iconv (cd1, NULL, NULL, NULL, NULL);
+ if (cd2 != (iconv_t)(-1))
+ iconv (cd2, NULL, NULL, NULL, NULL);
+
const bool slowly = (offsets != NULL || handler == iconveh_error);
# define utf8bufsize 4096 /* may also be smaller or larger than tmpbufsize */
char utf8buf[utf8bufsize + 3];
@@ -601,21 +586,14 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
bool do_final_flush1 = true;
bool do_final_flush2 = true;
- /* Set to the initial state. */
- if (cd1 != (iconv_t)(-1))
- iconv (cd1, NULL, NULL, NULL, NULL);
- if (cd2 != (iconv_t)(-1))
- iconv (cd2, NULL, NULL, NULL, NULL);
-
while (in1size > 0 || do_final_flush1 || utf8len > 0 || do_final_flush2)
{
char *out1ptr = utf8buf + utf8len;
size_t out1size = utf8bufsize - utf8len;
- bool incremented1;
- size_t res1;
- int errno1;
/* Conversion step 1: from FROM_CODESET to UTF-8. */
+ bool incremented1;
+ size_t res1;
if (in1size > 0)
{
if (offsets != NULL
@@ -698,7 +676,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
*out1ptr++ = '?';
res1 = 0;
}
- errno1 = errno;
+ int errno1 = errno;
utf8len = out1ptr - utf8buf;
if (offsets != NULL
@@ -715,10 +693,9 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
{
char *out2ptr = result + length;
size_t out2size = allocated - extra_alloc - length;
+
bool incremented2;
size_t res2;
- bool grow;
-
if (in2size > 0)
{
if (cd2 != (iconv_t)(-1))
@@ -751,7 +728,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
}
length = out2ptr - result;
- grow = (length + extra_alloc > allocated / 2);
+ bool grow = (length + extra_alloc > allocated / 2);
if (res2 == (size_t)(-1))
{
if (errno == E2BIG)
@@ -763,12 +740,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
/* Error handling can produce up to 10 bytes of UTF-8
output. But TO_CODESET may be UCS-2, UTF-16 or
UCS-4, so use CD2 here as well. */
- char scratchbuf[10];
- size_t scratchlen;
ucs4_t uc;
- const char *inptr;
- size_t insize;
- size_t res;
if (incremented2)
{
@@ -788,6 +760,8 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
in2size -= n;
}
+ char scratchbuf[10];
+ size_t scratchlen;
if (handler == iconveh_escape_sequence)
{
static char const hex[16] _GL_ATTRIBUTE_NONSTRING =
@@ -823,8 +797,9 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
scratchlen = 1;
}
- inptr = scratchbuf;
- insize = scratchlen;
+ const char *inptr = scratchbuf;
+ size_t insize = scratchlen;
+ size_t res;
if (cd2 != (iconv_t)(-1))
{
char *out2ptr_try = out2ptr;
@@ -884,11 +859,10 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
length = out2ptr - result;
if (res == (size_t)(-1) && errno == E2BIG)
{
- char *memory;
-
allocated = 2 * allocated;
if (length + 1 + extra_alloc > allocated)
abort ();
+ char *memory;
if (result == initial_result)
memory = (char *) malloc (allocated);
else
@@ -960,9 +934,8 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
break;
if (grow)
{
- char *memory;
-
allocated = 2 * allocated;
+ char *memory;
if (result == initial_result)
memory = (char *) malloc (allocated);
else
@@ -1012,9 +985,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
result = *resultp;
else
{
- char *memory;
-
- memory = (char *) malloc (memsize > 0 ? memsize : 1);
+ char *memory = (char *) malloc (memsize > 0 ? memsize : 1);
if (memory != NULL)
result = memory;
else
@@ -1029,9 +1000,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
{
/* Shrink the allocated memory if possible. */
size_t memsize = length + extra_alloc;
- char *memory;
-
- memory = (char *) realloc (result, memsize > 0 ? memsize : 1);
+ char *memory = (char *) realloc (result, memsize > 0 ? memsize : 1);
if (memory != NULL)
result = memory;
}
@@ -1119,17 +1088,13 @@ mem_iconveh (const char *src, size_t srclen,
{
#if HAVE_ICONV
iconveh_t cd;
- char *result;
- size_t length;
- int retval;
-
if (iconveh_open (to_codeset, from_codeset, &cd) < 0)
return -1;
- result = *resultp;
- length = *lengthp;
- retval = mem_cd_iconveh (src, srclen, &cd, handler, offsets,
- &result, &length);
+ char *result = *resultp;
+ size_t length = *lengthp;
+ int retval = mem_cd_iconveh (src, srclen, &cd, handler, offsets,
+ &result, &length);
if (retval < 0)
{
@@ -1179,12 +1144,10 @@ str_iconveh (const char *src,
{
#if HAVE_ICONV
iconveh_t cd;
- char *result;
-
if (iconveh_open (to_codeset, from_codeset, &cd) < 0)
return NULL;
- result = str_cd_iconveh (src, &cd, handler);
+ char *result = str_cd_iconveh (src, &cd, handler);
if (result == NULL)
{
diff --git a/lib/striconveh.h b/lib/striconveh.h
index c2b94648..7ac05da1 100644
--- a/lib/striconveh.h
+++ b/lib/striconveh.h
@@ -1,5 +1,5 @@
/* Character set conversion with error handling.
- Copyright (C) 2001-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible and Simon Josefsson.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/striconveha.c b/lib/striconveha.c
index b7dec017..4846a2e7 100644
--- a/lib/striconveha.c
+++ b/lib/striconveha.c
@@ -1,5 +1,5 @@
/* Character set conversion with error handling and autodetection.
- Copyright (C) 2002, 2005, 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005, 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible.
This file is free software: you can redistribute it and/or modify
@@ -84,11 +84,6 @@ int
uniconv_register_autodetect (const char *name,
const char * const *try_in_order)
{
- size_t namelen;
- size_t listlen;
- size_t memneed;
- size_t i;
-
/* The TRY_IN_ORDER list must not be empty. */
if (try_in_order[0] == NULL)
{
@@ -98,11 +93,15 @@ uniconv_register_autodetect (const char *name,
/* We must deep-copy NAME and TRY_IN_ORDER, because they may be allocated
with dynamic extent. */
- namelen = strlen (name) + 1;
- memneed = sizeof (struct autodetect_alias) + namelen + sizeof (char *);
- for (i = 0; try_in_order[i] != NULL; i++)
- memneed += sizeof (char *) + strlen (try_in_order[i]) + 1;
- listlen = i;
+ size_t namelen = strlen (name) + 1;
+ size_t memneed = sizeof (struct autodetect_alias) + namelen + sizeof (char *);
+ size_t listlen;
+ {
+ size_t i;
+ for (i = 0; try_in_order[i] != NULL; i++)
+ memneed += sizeof (char *) + strlen (try_in_order[i]) + 1;
+ listlen = i;
+ }
void *memory = malloc (memneed);
if (memory != NULL)
@@ -116,14 +115,17 @@ uniconv_register_autodetect (const char *name,
char *new_name = memcpy (memory, name, namelen);
memory = new_name + namelen;
- for (i = 0; i < listlen; i++)
- {
- size_t len = strlen (try_in_order[i]) + 1;
- char *copy = memcpy (memory, try_in_order[i], len);
- new_try_in_order[i] = copy;
- memory = copy + len;
- }
- new_try_in_order[i] = NULL;
+ {
+ size_t i;
+ for (i = 0; i < listlen; i++)
+ {
+ size_t len = strlen (try_in_order[i]) + 1;
+ char *copy = memcpy (memory, try_in_order[i], len);
+ new_try_in_order[i] = copy;
+ memory = copy + len;
+ }
+ new_try_in_order[i] = NULL;
+ }
/* Now insert the new alias. */
new_alias->name = new_name;
@@ -155,19 +157,17 @@ mem_iconveha_notranslit (const char *src, size_t srclen,
return retval;
else
{
- struct autodetect_alias *alias;
-
/* Unsupported from_codeset or to_codeset. Check whether the caller
requested autodetection. */
- for (alias = autodetect_list; alias != NULL; alias = alias->next)
+ for (struct autodetect_alias *alias = autodetect_list;
+ alias != NULL;
+ alias = alias->next)
if (streq (from_codeset, alias->name))
{
- const char * const *encodings;
-
if (handler != iconveh_error)
{
/* First try all encodings without any forgiving. */
- encodings = alias->encodings_to_try;
+ const char * const *encodings = alias->encodings_to_try;
do
{
retval = mem_iconveha_notranslit (src, srclen,
@@ -181,7 +181,7 @@ mem_iconveha_notranslit (const char *src, size_t srclen,
while (*encodings != NULL);
}
- encodings = alias->encodings_to_try;
+ const char * const *encodings = alias->encodings_to_try;
do
{
retval = mem_iconveha_notranslit (src, srclen,
@@ -227,7 +227,6 @@ mem_iconveha (const char *src, size_t srclen,
|| defined ICONV_SET_TRANSLITERATE
if (transliterate)
{
- int retval;
size_t len = strlen (to_codeset);
char *to_codeset_suffixed = (char *) malloca (len + 10 + 1);
if (to_codeset_suffixed == NULL)
@@ -238,9 +237,9 @@ mem_iconveha (const char *src, size_t srclen,
memcpy (to_codeset_suffixed, to_codeset, len);
memcpy (to_codeset_suffixed + len, "//TRANSLIT", 10 + 1);
- retval = mem_iconveha_notranslit (src, srclen,
- from_codeset, to_codeset_suffixed,
- handler, offsets, resultp, lengthp);
+ int retval = mem_iconveha_notranslit (src, srclen,
+ from_codeset, to_codeset_suffixed,
+ handler, offsets, resultp, lengthp);
freea (to_codeset_suffixed);
@@ -265,19 +264,17 @@ str_iconveha_notranslit (const char *src,
return result;
else
{
- struct autodetect_alias *alias;
-
/* Unsupported from_codeset or to_codeset. Check whether the caller
requested autodetection. */
- for (alias = autodetect_list; alias != NULL; alias = alias->next)
+ for (struct autodetect_alias *alias = autodetect_list;
+ alias != NULL;
+ alias = alias->next)
if (streq (from_codeset, alias->name))
{
- const char * const *encodings;
-
if (handler != iconveh_error)
{
/* First try all encodings without any forgiving. */
- encodings = alias->encodings_to_try;
+ const char * const *encodings = alias->encodings_to_try;
do
{
result = str_iconveha_notranslit (src,
@@ -290,7 +287,7 @@ str_iconveha_notranslit (const char *src,
while (*encodings != NULL);
}
- encodings = alias->encodings_to_try;
+ const char * const *encodings = alias->encodings_to_try;
do
{
result = str_iconveha_notranslit (src,
@@ -335,7 +332,6 @@ str_iconveha (const char *src,
|| defined ICONV_SET_TRANSLITERATE
if (transliterate)
{
- char *result;
size_t len = strlen (to_codeset);
char *to_codeset_suffixed = (char *) malloca (len + 10 + 1);
if (to_codeset_suffixed == NULL)
@@ -346,8 +342,9 @@ str_iconveha (const char *src,
memcpy (to_codeset_suffixed, to_codeset, len);
memcpy (to_codeset_suffixed + len, "//TRANSLIT", 10 + 1);
- result = str_iconveha_notranslit (src, from_codeset, to_codeset_suffixed,
- handler);
+ char *result =
+ str_iconveha_notranslit (src, from_codeset, to_codeset_suffixed,
+ handler);
freea (to_codeset_suffixed);
diff --git a/lib/striconveha.h b/lib/striconveha.h
index 229d78c1..7c90bec7 100644
--- a/lib/striconveha.h
+++ b/lib/striconveha.h
@@ -1,5 +1,5 @@
/* Character set conversion with error handling and autodetection.
- Copyright (C) 2002, 2005, 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005, 2007-2026 Free Software Foundation, Inc.
Written by Bruno Haible.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/string.c b/lib/string.c
index cce2eac9..b8f079aa 100644
--- a/lib/string.c
+++ b/lib/string.c
@@ -1,5 +1,5 @@
-/* streq and memeq functions.
- Copyright (C) 2025 Free Software Foundation, Inc.
+/* streq, memeq, gl_strnul functions.
+ Copyright (C) 2025-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -14,7 +14,6 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_STRING_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <string.h>
diff --git a/lib/string.in.h b/lib/string.in.h
index fdcdd21b..33422a06 100644
--- a/lib/string.in.h
+++ b/lib/string.in.h
@@ -1,6 +1,6 @@
/* A GNU-like <string.h>.
- Copyright (C) 1995-1996, 2001-2025 Free Software Foundation, Inc.
+ Copyright (C) 1995-1996, 2001-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -312,7 +312,6 @@ _GL_FUNCDECL_SYS (explicit_bzero, void,
_GL_CXXALIAS_SYS (explicit_bzero, void, (void *__dest, size_t __n));
_GL_CXXALIASWARN (explicit_bzero);
#elif defined GNULIB_POSIXCHECK
-# undef explicit_bzero
# if HAVE_RAW_DECL_EXPLICIT_BZERO
_GL_WARN_ON_USE (explicit_bzero, "explicit_bzero is unportable - "
"use gnulib module explicit_bzero for portability");
@@ -328,7 +327,6 @@ _GL_FUNCDECL_SYS (ffsl, int, (long int i), );
_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
@@ -351,7 +349,6 @@ _GL_CXXALIAS_SYS (ffsll, int, (long long int i));
# endif
_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
@@ -409,10 +406,11 @@ _GL_CXXALIASWARN1 (memchr, void const *,
_GL_CXXALIASWARN (memchr);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef memchr
/* Assume memchr is always declared. */
-_GL_WARN_ON_USE (memchr, "memchr has platform-specific bugs - "
- "use gnulib module memchr for portability" );
+_GL_WARN_ON_USE_CXX (memchr,
+ const void *, void *, (void const *, int, size_t),
+ "memchr has platform-specific bugs - "
+ "use gnulib module memchr for portability" );
#endif
/* Are S1 and S2, of size N, bytewise equal? */
@@ -458,7 +456,6 @@ _GL_CXXALIAS_SYS (memmem, void *,
# endif
_GL_CXXALIASWARN (memmem);
#elif defined GNULIB_POSIXCHECK
-# undef memmem
# if HAVE_RAW_DECL_MEMMEM
_GL_WARN_ON_USE (memmem, "memmem is unportable and often quadratic - "
"use gnulib module memmem-simple for portability, "
@@ -496,7 +493,6 @@ _GL_CXXALIAS_SYS (mempcpy, void *,
_GL_CXXALIASWARN (mempcpy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mempcpy
# if HAVE_RAW_DECL_MEMPCPY
_GL_WARN_ON_USE (mempcpy, "mempcpy is unportable - "
"use gnulib module mempcpy for portability");
@@ -529,7 +525,6 @@ _GL_CXXALIASWARN1 (memrchr, void const *,
_GL_CXXALIASWARN (memrchr);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef memrchr
# if HAVE_RAW_DECL_MEMRCHR
_GL_WARN_ON_USE (memrchr, "memrchr is unportable - "
"use gnulib module memrchr for portability");
@@ -560,7 +555,6 @@ _GL_CXXALIAS_SYS (memset_explicit, void *, (void *__dest, int __c, size_t __n));
_GL_CXXALIASWARN (memset_explicit);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef memset_explicit
# if HAVE_RAW_DECL_MEMSET_EXPLICIT
_GL_WARN_ON_USE (memset_explicit, "memset_explicit is unportable - "
"use gnulib module memset_explicit for portability");
@@ -595,7 +589,6 @@ _GL_CXXALIASWARN1 (rawmemchr, void const *,
_GL_CXXALIASWARN (rawmemchr);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef rawmemchr
# if HAVE_RAW_DECL_RAWMEMCHR
_GL_WARN_ON_USE (rawmemchr, "rawmemchr is unportable - "
"use gnulib module rawmemchr for portability");
@@ -627,7 +620,6 @@ _GL_CXXALIAS_SYS (stpcpy, char *,
_GL_CXXALIASWARN (stpcpy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef stpcpy
# if HAVE_RAW_DECL_STPCPY
_GL_WARN_ON_USE (stpcpy, "stpcpy is unportable - "
"use gnulib module stpcpy for portability");
@@ -664,7 +656,6 @@ _GL_CXXALIAS_SYS (stpncpy, char *,
_GL_CXXALIASWARN (stpncpy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef stpncpy
# if HAVE_RAW_DECL_STPNCPY
_GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - "
"use gnulib module stpncpy for portability");
@@ -674,7 +665,6 @@ _GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - "
#if defined GNULIB_POSIXCHECK
/* strchr() does not work with multibyte strings if the locale encoding is
GB18030 and the character to be searched is a digit. */
-# undef strchr
/* Assume strchr is always declared. */
_GL_WARN_ON_USE_CXX (strchr,
const char *, char *, (const char *, int),
@@ -720,7 +710,6 @@ _GL_CXXALIASWARN1 (strchrnul, char const *,
_GL_CXXALIASWARN (strchrnul);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strchrnul
# if HAVE_RAW_DECL_STRCHRNUL
_GL_WARN_ON_USE (strchrnul, "strchrnul is unportable - "
"use gnulib module strchrnul for portability");
@@ -785,7 +774,6 @@ _GL_FUNCDECL_SYS (strdup, char *,
# endif
# endif
# if defined GNULIB_POSIXCHECK
-# undef strdup
# if HAVE_RAW_DECL_STRDUP
_GL_WARN_ON_USE (strdup, "strdup is unportable - "
"use gnulib module strdup for portability");
@@ -846,13 +834,41 @@ _GL_CXXALIAS_SYS (strncat, char *,
_GL_CXXALIASWARN (strncat);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strncat
# if HAVE_RAW_DECL_STRNCAT
_GL_WARN_ON_USE (strncat, "strncat is unportable - "
"use gnulib module strncat for portability");
# endif
#endif
+/* Copy no more than N bytes of SRC to DST, returning DST. */
+#if @GNULIB_STRNCPY@
+# if @REPLACE_STRNCPY@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef strncpy
+# define strncpy rpl_strncpy
+# endif
+_GL_FUNCDECL_RPL (strncpy, char *,
+ (char *restrict __dst, char const *restrict __src,
+ size_t __n),
+ _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (strncpy, char *,
+ (char *restrict __dst, char const *restrict __src,
+ size_t __n));
+# else
+_GL_CXXALIAS_SYS (strncpy, char *,
+ (char *restrict __dst, char const *restrict __src,
+ size_t __n));
+# endif
+# if __GLIBC__ >= 2
+_GL_CXXALIASWARN (strncpy);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# if HAVE_RAW_DECL_STRNCPY
+_GL_WARN_ON_USE (strncpy, "strncpy is unportable - "
+ "use gnulib module strncpy for portability");
+# endif
+#endif
+
/* Return a newly allocated copy of at most N bytes of STRING. */
#if @GNULIB_STRNDUP@
# if @REPLACE_STRNDUP@
@@ -901,7 +917,6 @@ _GL_FUNCDECL_SYS (strndup, char *,
# endif
# endif
# if defined GNULIB_POSIXCHECK
-# undef strndup
# if HAVE_RAW_DECL_STRNDUP
_GL_WARN_ON_USE (strndup, "strndup is unportable - "
"use gnulib module strndup for portability");
@@ -932,7 +947,6 @@ _GL_CXXALIAS_SYS (strnlen, size_t, (char const *__s, size_t __maxlen));
# endif
_GL_CXXALIASWARN (strnlen);
#elif defined GNULIB_POSIXCHECK
-# undef strnlen
# if HAVE_RAW_DECL_STRNLEN
_GL_WARN_ON_USE (strnlen, "strnlen is unportable - "
"use gnulib module strnlen for portability");
@@ -944,7 +958,6 @@ _GL_WARN_ON_USE (strnlen, "strnlen is unportable - "
Even in this simple case, it does not work with multibyte strings if the
locale encoding is GB18030 and one of the characters to be searched is a
digit. */
-# undef strcspn
/* Assume strcspn is always declared. */
_GL_WARN_ON_USE (strcspn, "strcspn cannot work correctly on character strings "
"in multibyte locales - "
@@ -981,7 +994,6 @@ _GL_CXXALIASWARN (strpbrk);
Even in this simple case, it does not work with multibyte strings if the
locale encoding is GB18030 and one of the characters to be searched is a
digit. */
-# undef strpbrk
_GL_WARN_ON_USE_CXX (strpbrk,
const char *, char *, (const char *, const char *),
"strpbrk cannot work correctly on character strings "
@@ -1001,7 +1013,6 @@ _GL_WARN_ON_USE_CXX (strpbrk,
#if defined GNULIB_POSIXCHECK
/* strspn() assumes the second argument is a list of single-byte characters.
Even in this simple case, it cannot work with multibyte strings. */
-# undef strspn
/* Assume strspn is always declared. */
_GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings "
"in multibyte locales - "
@@ -1011,7 +1022,6 @@ _GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings "
#if defined GNULIB_POSIXCHECK
/* strrchr() does not work with multibyte strings if the locale encoding is
GB18030 and the character to be searched is a digit. */
-# undef strrchr
/* Assume strrchr is always declared. */
_GL_WARN_ON_USE_CXX (strrchr,
const char *, char *, (const char *, int),
@@ -1046,13 +1056,11 @@ _GL_CXXALIAS_SYS (strsep, char *,
(char **restrict __stringp, char const *restrict __delim));
_GL_CXXALIASWARN (strsep);
# if defined GNULIB_POSIXCHECK
-# undef strsep
_GL_WARN_ON_USE (strsep, "strsep cannot work correctly on character strings "
"in multibyte locales - "
"use mbssep if you care about internationalization");
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strsep
# if HAVE_RAW_DECL_STRSEP
_GL_WARN_ON_USE (strsep, "strsep is unportable - "
"use gnulib module strsep for portability");
@@ -1095,11 +1103,13 @@ _GL_CXXALIASWARN (strstr);
as a sequence of bytes, not of characters. */
# undef strstr
/* Assume strstr is always declared. */
-_GL_WARN_ON_USE (strstr, "strstr is quadratic on many systems, and cannot "
- "work correctly on character strings in most "
- "multibyte locales - "
- "use mbsstr if you care about internationalization, "
- "or use strstr if you care about speed");
+_GL_WARN_ON_USE_CXX (strstr,
+ const char *, char *, (const char *, const char *),
+ "strstr is quadratic on many systems, and cannot "
+ "work correctly on character strings in most "
+ "multibyte locales - "
+ "use mbsstr if you care about internationalization, "
+ "or use strstr if you care about speed");
#endif
/* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive
@@ -1145,7 +1155,6 @@ _GL_CXXALIASWARN (strcasestr);
/* strcasestr() does not work with multibyte strings:
It is a glibc extension, and glibc implements it only for unibyte
locales. */
-# undef strcasestr
# if HAVE_RAW_DECL_STRCASESTR
_GL_WARN_ON_USE (strcasestr, "strcasestr does work correctly on character "
"strings in multibyte locales - "
@@ -1191,7 +1200,7 @@ _GL_CXXALIAS_RPL (strtok_r, char *,
(char *restrict s, char const *restrict delim,
char **restrict save_ptr));
# else
-# if @UNDEFINE_STRTOK_R@ || defined GNULIB_POSIXCHECK
+# if @UNDEFINE_STRTOK_R@
# undef strtok_r
# endif
# if ! @HAVE_DECL_STRTOK_R@
@@ -1211,7 +1220,6 @@ _GL_WARN_ON_USE (strtok_r, "strtok_r cannot work correctly on character "
"use mbstok_r if you care about internationalization");
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strtok_r
# if HAVE_RAW_DECL_STRTOK_R
_GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - "
"use gnulib module strtok_r for portability");
@@ -1222,6 +1230,64 @@ _GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - "
/* The following functions are not specified by POSIX. They are gnulib
extensions. */
+#if @GNULIB_STRNUL@
+/* Returns a pointer to the terminating NUL byte of STRING.
+ strnul (string)
+ This is a type-generic macro:
+ If STRING is a 'const char *', the result is 'const char *'.
+ If STRING is a 'char *', the result is 'char *'.
+ It is equivalent to
+ string + strlen (string)
+ or to
+ strchr (string, '\0'). */
+# ifdef __cplusplus
+extern "C" {
+# endif
+_GL_STRING_INLINE const char *gl_strnul (const char *string)
+ _GL_ATTRIBUTE_PURE
+ _GL_ARG_NONNULL ((1));
+_GL_STRING_INLINE const char *gl_strnul (const char *string)
+{
+ /* In gcc >= 7 or clang >= 4, we could use the expression
+ strchr (string, '\0')
+ because these compiler versions produce identical code for both
+ expressions. But this optimization in not available in older
+ compiler versions, and is also not available when the compiler
+ option '-fno-builtin' is in use. */
+ return string + strlen (string);
+}
+# ifdef __cplusplus
+}
+# endif
+# ifdef __cplusplus
+template <typename T> T strnul (T);
+template <> inline const char *strnul<const char *> (const char *s)
+{ return gl_strnul (s); }
+template <> inline char *strnul< char *> ( char *s)
+{ return const_cast<char *>(gl_strnul (s)); }
+# else
+# if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 9) > 4 && !defined __cplusplus) \
+ || (defined __clang__ && __clang_major__ >= 3) \
+ || (defined __SUNPRO_C && __SUNPRO_C >= 0x5150) \
+ || (__STDC_VERSION__ >= 201112L && !defined __GNUC__)
+/* The compiler supports _Generic from ISO C11. */
+/* Since in C (but not in C++!), any function that accepts a '[const] char *'
+ also accepts a '[const] void *' as argument, we make sure that the function-
+ like macro does the same, by mapping its type first:
+ char *, void * -> void *
+ const char *, const void * -> const void *
+ This mapping is done through the conditional expression. */
+# define strnul(s) \
+ _Generic (1 ? (s) : (void *) 99, \
+ void * : (char *) gl_strnul (s), \
+ const void * : gl_strnul (s))
+# else
+# define strnul(s) \
+ ((char *) gl_strnul (s))
+# endif
+# endif
+#endif
+
#if @GNULIB_STR_STARTSWITH@
/* Returns true if STRING starts with PREFIX.
Returns false otherwise. */
@@ -1579,7 +1645,6 @@ _GL_CXXALIAS_SYS (strerror, char *, (int));
_GL_CXXALIASWARN (strerror);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strerror
/* Assume strerror is always declared. */
_GL_WARN_ON_USE (strerror, "strerror is unportable - "
"use gnulib module strerror to guarantee non-NULL result");
@@ -1607,7 +1672,6 @@ _GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen));
_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");
@@ -1636,7 +1700,6 @@ _GL_CXXALIAS_SYS (strerror_l, char *, (int errnum, locale_t locale));
_GL_CXXALIASWARN (strerror_l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strerror_l
# if HAVE_RAW_DECL_STRERROR_L
_GL_WARN_ON_USE (strerror_l, "strerror_l is unportable - "
"use gnulib module strerror_l for portability");
@@ -1671,7 +1734,6 @@ _GL_CXXALIAS_SYS (strerrorname_np, const char *, (int errnum));
_GL_CXXALIASWARN (strerrorname_np);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strerrorname_np
# if HAVE_RAW_DECL_STRERRORNAME_NP
_GL_WARN_ON_USE (strerrorname_np, "strerrorname_np is unportable - "
"use gnulib module strerrorname_np for portability");
@@ -1686,7 +1748,6 @@ _GL_FUNCDECL_SYS (sigabbrev_np, const char *, (int sig), );
_GL_CXXALIAS_SYS (sigabbrev_np, const char *, (int sig));
_GL_CXXALIASWARN (sigabbrev_np);
#elif defined GNULIB_POSIXCHECK
-# undef sigabbrev_np
# if HAVE_RAW_DECL_SIGABBREV_NP
_GL_WARN_ON_USE (sigabbrev_np, "sigabbrev_np is unportable - "
"use gnulib module sigabbrev_np for portability");
@@ -1701,7 +1762,6 @@ _GL_FUNCDECL_SYS (sigdescr_np, const char *, (int sig), );
_GL_CXXALIAS_SYS (sigdescr_np, const char *, (int sig));
_GL_CXXALIASWARN (sigdescr_np);
#elif defined GNULIB_POSIXCHECK
-# undef sigdescr_np
# if HAVE_RAW_DECL_SIGDESCR_NP
_GL_WARN_ON_USE (sigdescr_np, "sigdescr_np is unportable - "
"use gnulib module sigdescr_np for portability");
@@ -1725,7 +1785,6 @@ _GL_CXXALIAS_SYS_CAST (strsignal, char *, (int __sig));
# endif
_GL_CXXALIASWARN (strsignal);
#elif defined GNULIB_POSIXCHECK
-# undef strsignal
# if HAVE_RAW_DECL_STRSIGNAL
_GL_WARN_ON_USE (strsignal, "strsignal is unportable - "
"use gnulib module strsignal for portability");
@@ -1751,7 +1810,6 @@ _GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *));
# endif
_GL_CXXALIASWARN (strverscmp);
#elif defined GNULIB_POSIXCHECK
-# undef strverscmp
# if HAVE_RAW_DECL_STRVERSCMP
_GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - "
"use gnulib module strverscmp for portability");
diff --git a/lib/strncat.c b/lib/strncat.c
index 4514445e..5e77ea88 100644
--- a/lib/strncat.c
+++ b/lib/strncat.c
@@ -1,5 +1,5 @@
/* Concatenate strings.
- Copyright (C) 1999, 2002, 2006, 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2010-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/strncpy.c b/lib/strncpy.c
new file mode 100644
index 00000000..25908377
--- /dev/null
+++ b/lib/strncpy.c
@@ -0,0 +1,38 @@
+/* Copy a size-bounded string.
+ Copyright (C) 1999, 2011-2026 Free Software Foundation, Inc.
+
+ This file is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ This file is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 1999. */
+
+#include <config.h>
+
+/* Specification. */
+#include <string.h>
+
+char *
+strncpy (char *dest, const char *src, size_t n)
+{
+ char *destptr = dest;
+
+ for (; n > 0 && (*destptr = *src) != '\0'; src++, destptr++, n--)
+ ;
+
+ /* This behavior is rarely useful, but it is specified by the ISO C
+ standard. */
+ for (; n > 0; n--)
+ *destptr++ = '\0';
+
+ return dest;
+}
diff --git a/lib/strstr.c b/lib/strstr.c
index d6953f90..a5730a37 100644
--- a/lib/strstr.c
+++ b/lib/strstr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1994, 1996-1998, 2000, 2004, 2007-2025 Free Software
+/* Copyright (C) 1991-1994, 1996-1998, 2000, 2004, 2007-2026 Free Software
Foundation, Inc.
This file is part of the GNU C Library.
@@ -36,31 +36,33 @@
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;
+ {
+ const char *haystack = haystack_start;
+ bool ok = true; /* True if NEEDLE is prefix of HAYSTACK. */
+ 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);
+ size_t needle_len = /* Length of NEEDLE. */
+ needle - needle_start;
+ const char *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);
+ size_t haystack_len = /* Known minimum length of HAYSTACK. */
+ (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
diff --git a/lib/struniq.h b/lib/struniq.h
index 00446f6e..a9686f1a 100644
--- a/lib/struniq.h
+++ b/lib/struniq.h
@@ -1,5 +1,5 @@
/* Define a file-local string uniquification function.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -80,14 +80,11 @@ struniq (const char *string)
{
size_t hashcode = string_hash (string);
size_t slot = hashcode % STRUNIQ_HASH_TABLE_SIZE;
- size_t size;
- struct struniq_hash_node *new_node;
- struct struniq_hash_node *p;
- for (p = struniq_hash_table[slot]; p != NULL; p = p->next)
+ for (struct struniq_hash_node *p = struniq_hash_table[slot]; p != NULL; p = p->next)
if (streq (p->contents, string))
return p->contents;
- size = strlen (string) + 1;
- new_node =
+ size_t size = strlen (string) + 1;
+ struct struniq_hash_node *new_node =
(struct struniq_hash_node *)
malloc (FLEXSIZEOF (struct struniq_hash_node, contents, size));
if (new_node == NULL)
@@ -100,7 +97,7 @@ struniq (const char *string)
if (mt) gl_lock_lock (struniq_lock);
/* Check whether another thread already added the string while we were
waiting on the lock. */
- for (p = struniq_hash_table[slot]; p != NULL; p = p->next)
+ for (struct struniq_hash_node *p = struniq_hash_table[slot]; p != NULL; p = p->next)
if (streq (p->contents, string))
{
free (new_node);
diff --git a/lib/sys_types.in.h b/lib/sys_types.in.h
index acf9b2f7..733b4ba4 100644
--- a/lib/sys_types.in.h
+++ b/lib/sys_types.in.h
@@ -1,6 +1,6 @@
/* Provide a more complete sys/types.h.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/thread-optim.h b/lib/thread-optim.h
index 1056c2f3..dbfc030c 100644
--- a/lib/thread-optim.h
+++ b/lib/thread-optim.h
@@ -1,6 +1,6 @@
/* Optimization of multithreaded code.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/time.in.h b/lib/time.in.h
index 3ff16e3b..5bbccf76 100644
--- a/lib/time.in.h
+++ b/lib/time.in.h
@@ -1,6 +1,6 @@
/* A more-standard <time.h>.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -161,7 +161,6 @@ _GL_CXXALIAS_SYS (timespec_get, int, (struct timespec *ts, int base));
_GL_CXXALIASWARN (timespec_get);
# endif
# elif defined GNULIB_POSIXCHECK
-# undef timespec_get
# if HAVE_RAW_DECL_TIMESPEC_GET
_GL_WARN_ON_USE (timespec_get, "timespec_get is unportable - "
"use gnulib module timespec_get for portability");
@@ -190,7 +189,6 @@ _GL_CXXALIAS_SYS (timespec_getres, int, (struct timespec *ts, int base));
_GL_CXXALIASWARN (timespec_getres);
# endif
# elif defined GNULIB_POSIXCHECK
-# undef timespec_getres
# if HAVE_RAW_DECL_TIMESPEC_GETRES
_GL_WARN_ON_USE (timespec_getres, "timespec_getres is unportable - "
"use gnulib module timespec_getres for portability");
@@ -212,7 +210,6 @@ _GL_CXXALIAS_SYS (time, time_t, (time_t *__tp));
_GL_CXXALIASWARN (time);
# endif
# elif defined GNULIB_POSIXCHECK
-# undef time
# if HAVE_RAW_DECL_TIME
_GL_WARN_ON_USE (time, "time has consistency problems - "
"use gnulib module time for portability");
@@ -243,7 +240,6 @@ _GL_CXXALIAS_SYS (nanosleep, int,
# endif
_GL_CXXALIASWARN (nanosleep);
# elif defined GNULIB_POSIXCHECK
-# undef nanosleep
# if HAVE_RAW_DECL_NANOSLEEP
_GL_WARN_ON_USE (nanosleep, "nanosleep is unportable - "
"use gnulib module nanosleep for portability");
@@ -284,7 +280,6 @@ _GL_CXXALIAS_SYS (tzset, void, (void));
# endif
_GL_CXXALIASWARN (tzset);
# elif defined GNULIB_POSIXCHECK
-# undef tzset
# if HAVE_RAW_DECL_TZSET
_GL_WARN_ON_USE (tzset, "tzset has portability problems - "
"use gnulib module tzset for portability");
@@ -306,7 +301,6 @@ _GL_CXXALIAS_SYS (mktime, time_t, (struct tm *__tp));
_GL_CXXALIASWARN (mktime);
# endif
# elif defined GNULIB_POSIXCHECK
-# undef mktime
# if HAVE_RAW_DECL_MKTIME
_GL_WARN_ON_USE (mktime, "mktime has portability problems - "
"use gnulib module mktime for portability");
@@ -362,12 +356,10 @@ _GL_CXXALIAS_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer,
_GL_CXXALIASWARN (gmtime_r);
# endif
# elif defined GNULIB_POSIXCHECK
-# undef localtime_r
# if HAVE_RAW_DECL_LOCALTIME_R
_GL_WARN_ON_USE (localtime_r, "localtime_r is unportable - "
"use gnulib module time_r for portability");
# endif
-# undef gmtime_r
# if HAVE_RAW_DECL_GMTIME_R
_GL_WARN_ON_USE (gmtime_r, "gmtime_r is unportable - "
"use gnulib module time_r for portability");
@@ -393,7 +385,6 @@ _GL_CXXALIAS_SYS (localtime, struct tm *, (time_t const *__timer));
_GL_CXXALIASWARN (localtime);
# endif
# elif defined GNULIB_POSIXCHECK
-# undef localtime
# if HAVE_RAW_DECL_LOCALTIME
_GL_WARN_ON_USE (localtime, "localtime has portability problems - "
"use gnulib module localtime for portability");
@@ -430,7 +421,6 @@ _GL_CXXALIAS_SYS (strptime, char *, (char const *restrict __buf,
struct tm *restrict __tm));
_GL_CXXALIASWARN (strptime);
# elif defined GNULIB_POSIXCHECK
-# undef strptime
# if HAVE_RAW_DECL_STRPTIME
_GL_WARN_ON_USE (strptime, "strptime is unportable - "
"use gnulib module strptime for portability");
@@ -483,7 +473,6 @@ _GL_CXXALIAS_SYS (strftime, size_t,
_GL_CXXALIASWARN (strftime);
# endif
# elif defined GNULIB_POSIXCHECK
-# undef strftime
# if HAVE_RAW_DECL_STRFTIME
_GL_WARN_ON_USE (strftime, "strftime has portability problems - "
"use gnulib module strftime-fixes for portability");
@@ -523,11 +512,18 @@ _GL_CXXALIAS_SYS (tzalloc, timezone_t, (char const *__name));
# endif
/* tzfree (tz)
- Frees a time zone object.
+ Free a time zone object, preserving errno.
The argument must have been returned by tzalloc(). */
# if !@HAVE_TZALLOC@
_GL_FUNCDECL_SYS (tzfree, void, (timezone_t __tz), );
_GL_CXXALIAS_SYS (tzfree, void, (timezone_t __tz));
+# else
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef tzfree
+# define tzfree rpl_tzfree
+# endif
+_GL_FUNCDECL_RPL (tzfree, void, (timezone_t __tz), );
+_GL_CXXALIAS_RPL (tzfree, void, (timezone_t __tz));
# endif
/* localtime_rz (tz, &t, &result)
@@ -611,7 +607,6 @@ _GL_CXXALIAS_SYS (timegm, time_t, (struct tm *__tm));
_GL_CXXALIASWARN (timegm);
# endif
# elif defined GNULIB_POSIXCHECK
-# undef timegm
# if HAVE_RAW_DECL_TIMEGM
_GL_WARN_ON_USE (timegm, "timegm is unportable - "
"use gnulib module timegm for portability");
@@ -622,28 +617,24 @@ _GL_WARN_ON_USE (timegm, "timegm is unportable - "
buffers when given outlandish struct tm values. Portable
applications should use strftime (or even sprintf) instead. */
# if defined GNULIB_POSIXCHECK
-# undef asctime
# if HAVE_RAW_DECL_ASCTIME
_GL_WARN_ON_USE (asctime, "asctime can overrun buffers in some cases - "
"better use strftime (or even sprintf) instead");
# endif
# endif
# if defined GNULIB_POSIXCHECK
-# undef asctime_r
# if HAVE_RAW_DECL_ASCTIME_R
_GL_WARN_ON_USE (asctime_r, "asctime_r can overrun buffers in some cases - "
"better use strftime (or even sprintf) instead");
# endif
# endif
# if defined GNULIB_POSIXCHECK
-# undef ctime
# if HAVE_RAW_DECL_CTIME
_GL_WARN_ON_USE (ctime, "ctime can overrun buffers in some cases - "
"better use strftime (or even sprintf) instead");
# endif
# endif
# if defined GNULIB_POSIXCHECK
-# undef ctime_r
# if HAVE_RAW_DECL_CTIME_R
_GL_WARN_ON_USE (ctime_r, "ctime_r can overrun buffers in some cases - "
"better use strftime (or even sprintf) instead");
diff --git a/lib/uchar.in.h b/lib/uchar.in.h
index 9a65ac37..300f7b5f 100644
--- a/lib/uchar.in.h
+++ b/lib/uchar.in.h
@@ -1,5 +1,5 @@
/* <uchar.h> substitute - 16-bit and 32-bit wide character types.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -490,7 +490,6 @@ _GL_CXXALIAS_SYS (c32rtomb, size_t, (char *s, char32_t wc, mbstate_t *ps));
_GL_CXXALIASWARN (c32rtomb);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef c32rtomb
# if HAVE_RAW_DECL_C32RTOMB
_GL_WARN_ON_USE (c32rtomb, "c32rtomb is not portable - "
"use gnulib module c32rtomb for portability");
@@ -647,7 +646,6 @@ _GL_CXXALIAS_SYS (mbrtoc32, size_t,
_GL_CXXALIASWARN (mbrtoc32);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mbrtoc32
# if HAVE_RAW_DECL_MBRTOC32
_GL_WARN_ON_USE (mbrtoc32, "mbrtoc32 is not portable - "
"use gnulib module mbrtoc32 for portability");
@@ -679,7 +677,6 @@ _GL_CXXALIAS_SYS (mbrtoc16, size_t,
_GL_CXXALIASWARN (mbrtoc16);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mbrtoc16
# if HAVE_RAW_DECL_MBRTOC16
_GL_WARN_ON_USE (mbrtoc16, "mbrtoc16 is not portable - "
"use gnulib module mbrtoc16 for portability");
diff --git a/lib/unicase.in.h b/lib/unicase.in.h
index c6df04b3..e1615aff 100644
--- a/lib/unicase.in.h
+++ b/lib/unicase.in.h
@@ -1,5 +1,5 @@
/* Unicode character case mappings.
- Copyright (C) 2002, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/unicase/cased.c b/lib/unicase/cased.c
index 580a6fd0..356e2e4e 100644
--- a/lib/unicase/cased.c
+++ b/lib/unicase/cased.c
@@ -1,5 +1,5 @@
/* Test whether a Unicode character is cased.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/casefold.h b/lib/unicase/casefold.h
index 6373ced1..573ae4fd 100644
--- a/lib/unicase/casefold.h
+++ b/lib/unicase/casefold.h
@@ -1,5 +1,5 @@
/* Casefolding of Unicode characters.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/caseprop.h b/lib/unicase/caseprop.h
index 2310dfd6..a469f316 100644
--- a/lib/unicase/caseprop.h
+++ b/lib/unicase/caseprop.h
@@ -1,5 +1,5 @@
/* Case related properties of Unicode characters.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/context.h b/lib/unicase/context.h
index 2227e5b9..5b1c8b62 100644
--- a/lib/unicase/context.h
+++ b/lib/unicase/context.h
@@ -1,5 +1,5 @@
/* Case-mapping contexts of UTF-8/UTF-16/UTF-32 substring.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/empty-prefix-context.c b/lib/unicase/empty-prefix-context.c
index 4c4d0b8b..897e9f40 100644
--- a/lib/unicase/empty-prefix-context.c
+++ b/lib/unicase/empty-prefix-context.c
@@ -1,5 +1,5 @@
/* Case-mapping context of empty prefix string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/empty-suffix-context.c b/lib/unicase/empty-suffix-context.c
index c637857d..c000056f 100644
--- a/lib/unicase/empty-suffix-context.c
+++ b/lib/unicase/empty-suffix-context.c
@@ -1,5 +1,5 @@
/* Case-mapping context of empty suffix string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/ignorable.c b/lib/unicase/ignorable.c
index e17ccaba..3e17f6af 100644
--- a/lib/unicase/ignorable.c
+++ b/lib/unicase/ignorable.c
@@ -1,5 +1,5 @@
/* Test whether a Unicode character is case-ignorable.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/invariant.h b/lib/unicase/invariant.h
index d3a346b7..5059aef5 100644
--- a/lib/unicase/invariant.h
+++ b/lib/unicase/invariant.h
@@ -1,5 +1,5 @@
/* Internal functions for Unicode character case mappings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/locale-language.c b/lib/unicase/locale-language.c
index 8a064acf..0481e9b7 100644
--- a/lib/unicase/locale-language.c
+++ b/lib/unicase/locale-language.c
@@ -1,5 +1,5 @@
/* Language code of current locale.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -39,10 +39,9 @@ const char *
uc_locale_language (void)
{
const char *locale_name = gl_locale_name (LC_CTYPE, "LC_CTYPE");
- const char *p;
/* Find the end of the language portion. */
- p = locale_name;
+ const char *p = locale_name;
while (*p != '\0' && *p != '_' && *p != '.' && *p != '@')
p++;
diff --git a/lib/unicase/locale-languages.gperf b/lib/unicase/locale-languages.gperf
index 26a31f11..fb1eb1bc 100644
--- a/lib/unicase/locale-languages.gperf
+++ b/lib/unicase/locale-languages.gperf
@@ -1,5 +1,5 @@
/* Language codes of locales.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unicase/locale-languages.h b/lib/unicase/locale-languages.h
index 373622f1..a82829b2 100644
--- a/lib/unicase/locale-languages.h
+++ b/lib/unicase/locale-languages.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 unicase/locale-languages.gperf */
/* Computed positions: -k'1-3' */
@@ -84,17 +84,17 @@ uc_locale_language_hash (register const char *str, register size_t len)
{
default:
hval += asso_values[(unsigned char)str[2]+2];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
case 2:
hval += asso_values[(unsigned char)str[1]+17];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -1034,7 +1034,7 @@ uc_locale_languages_lookup (register const char *str, register size_t len)
return s;
}
}
- return 0;
+ return (const char *) 0;
}
#line 295 "unicase/locale-languages.gperf"
diff --git a/lib/unicase/simple-mapping.h b/lib/unicase/simple-mapping.h
index 0c4c75b3..2b3d21d6 100644
--- a/lib/unicase/simple-mapping.h
+++ b/lib/unicase/simple-mapping.h
@@ -1,5 +1,5 @@
/* Simple case mapping for Unicode characters.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unicase/special-casing.c b/lib/unicase/special-casing.c
index 3f61bbdb..befde291 100644
--- a/lib/unicase/special-casing.c
+++ b/lib/unicase/special-casing.c
@@ -1,5 +1,5 @@
/* Special casing table.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/special-casing.in.h b/lib/unicase/special-casing.in.h
index 6ea5f800..21ec9e12 100644
--- a/lib/unicase/special-casing.in.h
+++ b/lib/unicase/special-casing.in.h
@@ -1,5 +1,5 @@
/* Special casing table.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/tocasefold.c b/lib/unicase/tocasefold.c
index c8d33866..60d4ca11 100644
--- a/lib/unicase/tocasefold.c
+++ b/lib/unicase/tocasefold.c
@@ -1,5 +1,5 @@
/* Casefold mapping for Unicode characters (locale and context independent).
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/tolower.c b/lib/unicase/tolower.c
index a1c898ef..89676ad6 100644
--- a/lib/unicase/tolower.c
+++ b/lib/unicase/tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for Unicode characters (locale and context independent).
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unicase/totitle.c b/lib/unicase/totitle.c
index 1b44a87a..32924213 100644
--- a/lib/unicase/totitle.c
+++ b/lib/unicase/totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for Unicode characters (locale and context independent).
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/toupper.c b/lib/unicase/toupper.c
index 36840a93..86cbffee 100644
--- a/lib/unicase/toupper.c
+++ b/lib/unicase/toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for Unicode characters (locale and context independent).
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unicase/u-casecmp.h b/lib/unicase/u-casecmp.h
index 4869e335..f1515e11 100644
--- a/lib/unicase/u-casecmp.h
+++ b/lib/unicase/u-casecmp.h
@@ -1,5 +1,5 @@
/* Case and normalization insensitive comparison of Unicode strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -27,29 +27,23 @@ int
FUNC (const SRC_UNIT *s1, size_t n1, const SRC_UNIT *s2, size_t n2,
const char *iso639_language, uninorm_t nf, int *resultp)
{
- UNIT buf1[2048 / sizeof (UNIT)];
- UNIT buf2[2048 / sizeof (UNIT)];
- UNIT *norms1;
- size_t norms1_length;
- UNIT *norms2;
- size_t norms2_length;
- int cmp;
-
/* Optimization: There is no need to do canonical composition of each string.
Decomposition is enough. */
if (nf != NULL)
nf = uninorm_decomposing_form (nf);
/* Case-fold and normalize S1. */
- norms1_length = sizeof (buf1) / sizeof (UNIT);
- norms1 = U_CASEFOLD (s1, n1, iso639_language, nf, buf1, &norms1_length);
+ UNIT buf1[2048 / sizeof (UNIT)];
+ size_t norms1_length = sizeof (buf1) / sizeof (UNIT);
+ UNIT *norms1 = U_CASEFOLD (s1, n1, iso639_language, nf, buf1, &norms1_length);
if (norms1 == NULL)
/* errno is set here. */
return -1;
/* Case-fold and normalize S2. */
- norms2_length = sizeof (buf2) / sizeof (UNIT);
- norms2 = U_CASEFOLD (s2, n2, iso639_language, nf, buf2, &norms2_length);
+ UNIT buf2[2048 / sizeof (UNIT)];
+ size_t norms2_length = sizeof (buf2) / sizeof (UNIT);
+ UNIT *norms2 = U_CASEFOLD (s2, n2, iso639_language, nf, buf2, &norms2_length);
if (norms2 == NULL)
{
if (norms1 != buf1)
@@ -62,7 +56,7 @@ FUNC (const SRC_UNIT *s1, size_t n1, const SRC_UNIT *s2, size_t n2,
}
/* Compare the normalized strings. */
- cmp = U_CMP2 (norms1, norms1_length, norms2, norms2_length);
+ int cmp = U_CMP2 (norms1, norms1_length, norms2, norms2_length);
if (cmp > 0)
cmp = 1;
else if (cmp < 0)
diff --git a/lib/unicase/u-casecoll.h b/lib/unicase/u-casecoll.h
index 8787b451..74c0697f 100644
--- a/lib/unicase/u-casecoll.h
+++ b/lib/unicase/u-casecoll.h
@@ -1,6 +1,6 @@
/* Locale dependent, case and normalization insensitive comparison of Unicode
strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -28,25 +28,19 @@ int
FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2,
const char *iso639_language, uninorm_t nf, int *resultp)
{
- char buf1[2048];
- char buf2[2048];
- char *transformed1;
- size_t transformed1_length;
- char *transformed2;
- size_t transformed2_length;
- int cmp;
-
/* Normalize and transform S1. */
- transformed1_length = sizeof (buf1);
- transformed1 =
+ char buf1[2048];
+ size_t transformed1_length = sizeof (buf1);
+ char *transformed1 =
U_CASEXFRM (s1, n1, iso639_language, nf, buf1, &transformed1_length);
if (transformed1 == NULL)
/* errno is set here. */
return -1;
/* Normalize and transform S2. */
- transformed2_length = sizeof (buf2);
- transformed2 =
+ char buf2[2048];
+ size_t transformed2_length = sizeof (buf2);
+ char *transformed2 =
U_CASEXFRM (s2, n2, iso639_language, nf, buf2, &transformed2_length);
if (transformed2 == NULL)
{
@@ -60,8 +54,8 @@ FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2,
}
/* Compare the transformed strings. */
- cmp = memcmp2 (transformed1, transformed1_length,
- transformed2, transformed2_length);
+ int cmp = memcmp2 (transformed1, transformed1_length,
+ transformed2, transformed2_length);
if (cmp < 0)
cmp = -1;
else if (cmp > 0)
diff --git a/lib/unicase/u-casefold.h b/lib/unicase/u-casefold.h
index f87094cd..d4b6aa79 100644
--- a/lib/unicase/u-casefold.h
+++ b/lib/unicase/u-casefold.h
@@ -1,5 +1,5 @@
/* Casefolding mapping for Unicode strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u-casemap.h b/lib/unicase/u-casemap.h
index fba36655..abb67820 100644
--- a/lib/unicase/u-casemap.h
+++ b/lib/unicase/u-casemap.h
@@ -1,5 +1,5 @@
/* Case mapping for UTF-8/UTF-16/UTF-32 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -35,10 +35,7 @@ FUNC (const UNIT *s, size_t n,
{
/* The result being accumulated. */
UNIT *result;
- size_t length;
size_t allocated;
-
- /* Initialize the accumulator. */
if (nf != NULL || resultbuf == NULL)
{
result = NULL;
@@ -49,7 +46,7 @@ FUNC (const UNIT *s, size_t n,
result = resultbuf;
allocated = *lengthp;
}
- length = 0;
+ size_t length = 0;
{
const UNIT *s_end = s + n;
@@ -97,10 +94,10 @@ FUNC (const UNIT *s, size_t n,
{
/* Does the context apply? */
int context = rule->context;
- bool applies;
-
if (context < 0)
context = - context;
+
+ bool applies;
switch (context)
{
case SCC_ALWAYS:
@@ -281,15 +278,65 @@ FUNC (const UNIT *s, size_t n,
found_mapping:
/* Found the mapping: uc maps to mapped_uc[0..mapped_count-1]. */
- {
- unsigned int i;
+ for (unsigned int i = 0; i < mapped_count; i++)
+ {
+ ucs4_t muc = mapped_uc[i];
- for (i = 0; i < mapped_count; i++)
+ /* Append muc to the result accumulator. */
+ if (length < allocated)
+ {
+ int ret = U_UCTOMB (result + length, muc, allocated - length);
+ if (ret == -1)
+ {
+ errno = EINVAL;
+ goto fail;
+ }
+ if (ret >= 0)
+ {
+ length += ret;
+ goto done_appending;
+ }
+ }
{
- ucs4_t muc = mapped_uc[i];
-
- /* Append muc to the result accumulator. */
- if (length < allocated)
+ size_t old_allocated = allocated;
+ size_t new_allocated = 2 * old_allocated;
+ if (new_allocated < 64)
+ new_allocated = 64;
+ if (new_allocated < old_allocated) /* integer overflow? */
+ abort ();
+ {
+ UNIT *larger_result;
+ if (result == NULL)
+ {
+ larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail;
+ }
+ }
+ else if (result == resultbuf)
+ {
+ larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail;
+ }
+ U_CPY (larger_result, resultbuf, length);
+ }
+ else
+ {
+ larger_result =
+ (UNIT *) realloc (result, new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail;
+ }
+ }
+ result = larger_result;
+ allocated = new_allocated;
{
int ret = U_UCTOMB (result + length, muc, allocated - length);
if (ret == -1)
@@ -297,69 +344,15 @@ FUNC (const UNIT *s, size_t n,
errno = EINVAL;
goto fail;
}
- if (ret >= 0)
- {
- length += ret;
- goto done_appending;
- }
- }
- {
- size_t old_allocated = allocated;
- size_t new_allocated = 2 * old_allocated;
- if (new_allocated < 64)
- new_allocated = 64;
- if (new_allocated < old_allocated) /* integer overflow? */
- abort ();
- {
- UNIT *larger_result;
- if (result == NULL)
- {
- larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
- if (larger_result == NULL)
- {
- errno = ENOMEM;
- goto fail;
- }
- }
- else if (result == resultbuf)
- {
- larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
- if (larger_result == NULL)
- {
- errno = ENOMEM;
- goto fail;
- }
- U_CPY (larger_result, resultbuf, length);
- }
- else
- {
- larger_result =
- (UNIT *) realloc (result, new_allocated * sizeof (UNIT));
- if (larger_result == NULL)
- {
- errno = ENOMEM;
- goto fail;
- }
- }
- result = larger_result;
- allocated = new_allocated;
- {
- int ret = U_UCTOMB (result + length, muc, allocated - length);
- if (ret == -1)
- {
- errno = EINVAL;
- goto fail;
- }
- if (ret < 0)
- abort ();
- length += ret;
- goto done_appending;
- }
+ if (ret < 0)
+ abort ();
+ length += ret;
+ goto done_appending;
}
}
- done_appending: ;
}
- }
+ done_appending: ;
+ }
if (!uc_is_case_ignorable (uc))
last_char_except_ignorable = uc;
@@ -377,9 +370,8 @@ FUNC (const UNIT *s, size_t n,
if (nf != NULL)
{
/* Finally, normalize the result. */
- UNIT *normalized_result;
-
- normalized_result = U_NORMALIZE (nf, result, length, resultbuf, lengthp);
+ UNIT *normalized_result =
+ U_NORMALIZE (nf, result, length, resultbuf, lengthp);
if (normalized_result == NULL)
goto fail;
@@ -403,9 +395,7 @@ FUNC (const UNIT *s, size_t n,
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- UNIT *memory;
-
- memory = (UNIT *) realloc (result, length * sizeof (UNIT));
+ UNIT *memory = (UNIT *) realloc (result, length * sizeof (UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/unicase/u-casexfrm.h b/lib/unicase/u-casexfrm.h
index c5d0c978..f9195c7f 100644
--- a/lib/unicase/u-casexfrm.h
+++ b/lib/unicase/u-casexfrm.h
@@ -1,6 +1,6 @@
/* Locale dependent transformation for case insensitive comparison of Unicode
strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -28,28 +28,22 @@ char *
FUNC (const UNIT *s, size_t n, const char *iso639_language, uninorm_t nf,
char *resultbuf, size_t *lengthp)
{
- UNIT foldedsbuf[2048 / sizeof (UNIT)];
- UNIT *foldeds;
- size_t foldeds_length;
- char convsbuf[2048];
- char *convs;
- size_t convs_length;
- char *result;
-
/* Casefold and normalize the Unicode string. */
- foldeds_length = sizeof (foldedsbuf) / sizeof (UNIT);
- foldeds = U_CASEFOLD (s, n, iso639_language, nf, foldedsbuf, &foldeds_length);
+ UNIT foldedsbuf[2048 / sizeof (UNIT)];
+ size_t foldeds_length = sizeof (foldedsbuf) / sizeof (UNIT);
+ UNIT *foldeds = U_CASEFOLD (s, n, iso639_language, nf, foldedsbuf, &foldeds_length);
if (foldeds == NULL)
/* errno is set here. */
return NULL;
/* Convert it to locale encoding. */
- convs_length = sizeof (convsbuf) - 1;
- convs = U_CONV_TO_ENCODING (locale_charset (),
- iconveh_error,
- foldeds, foldeds_length,
- NULL,
- convsbuf, &convs_length);
+ char convsbuf[2048];
+ size_t convs_length = sizeof (convsbuf) - 1;
+ char *convs = U_CONV_TO_ENCODING (locale_charset (),
+ iconveh_error,
+ foldeds, foldeds_length,
+ NULL,
+ convsbuf, &convs_length);
if (convs == NULL)
{
if (foldeds != foldedsbuf)
@@ -78,7 +72,7 @@ FUNC (const UNIT *s, size_t n, const char *iso639_language, uninorm_t nf,
}
/* Apply locale dependent transformations for comparison. */
- result = amemxfrm (convs, convs_length, resultbuf, lengthp);
+ char *result = amemxfrm (convs, convs_length, resultbuf, lengthp);
if (result == NULL)
{
if (convs != convsbuf)
diff --git a/lib/unicase/u-ct-casefold.h b/lib/unicase/u-ct-casefold.h
index bd8cee18..c2801e39 100644
--- a/lib/unicase/u-ct-casefold.h
+++ b/lib/unicase/u-ct-casefold.h
@@ -1,5 +1,5 @@
/* Casefolding mapping for Unicode substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -53,27 +53,23 @@ FUNC (const UNIT *s, size_t n,
/* X -> nf(toCasefold(NFD(X))) or
X -> nf(toCasefold(nfd(toCasefold(NFD(X))))) */
int repeat = (uninorm_is_compat_decomposing (nf) ? 2 : 1);
- UNIT tmpbuf1[2048 / sizeof (UNIT)];
- UNIT tmpbuf2[2048 / sizeof (UNIT)];
- UNIT *tmp1;
- size_t tmp1_length;
- UNIT *tmp2;
- size_t tmp2_length;
- tmp1_length = sizeof (tmpbuf1) / sizeof (UNIT);
- tmp1 = U_NORMALIZE (UNINORM_NFD, s, n, tmpbuf1, &tmp1_length);
+ UNIT tmpbuf1[2048 / sizeof (UNIT)];
+ size_t tmp1_length = sizeof (tmpbuf1) / sizeof (UNIT);
+ UNIT *tmp1 = U_NORMALIZE (UNINORM_NFD, s, n, tmpbuf1, &tmp1_length);
if (tmp1 == NULL)
/* errno is set here. */
return NULL;
do
{
- tmp2_length = sizeof (tmpbuf2) / sizeof (UNIT);
- tmp2 = U_CASEMAP (tmp1, tmp1_length,
- prefix_context, suffix_context, iso639_language,
- uc_tocasefold, offsetof (struct special_casing_rule, casefold[0]),
- NULL,
- tmpbuf2, &tmp2_length);
+ UNIT tmpbuf2[2048 / sizeof (UNIT)];
+ size_t tmp2_length = sizeof (tmpbuf2) / sizeof (UNIT);
+ UNIT *tmp2 = U_CASEMAP (tmp1, tmp1_length,
+ prefix_context, suffix_context, iso639_language,
+ uc_tocasefold, offsetof (struct special_casing_rule, casefold[0]),
+ NULL,
+ tmpbuf2, &tmp2_length);
if (tmp2 == NULL)
{
int saved_errno = errno;
diff --git a/lib/unicase/u-ct-totitle.h b/lib/unicase/u-ct-totitle.h
index 94428726..803636c5 100644
--- a/lib/unicase/u-ct-totitle.h
+++ b/lib/unicase/u-ct-totitle.h
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-8/UTF-16/UTF-32 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -40,12 +40,7 @@ FUNC (const UNIT *s, size_t n,
{
/* The result being accumulated. */
UNIT *result;
- size_t length;
size_t allocated;
- /* An array containing the word break positions. */
- char *wordbreaks;
-
- /* Initialize the accumulator. */
if (nf != NULL || resultbuf == NULL)
{
result = NULL;
@@ -56,8 +51,10 @@ FUNC (const UNIT *s, size_t n,
result = resultbuf;
allocated = *lengthp;
}
- length = 0;
+ size_t length = 0;
+ /* An array containing the word break positions. */
+ char *wordbreaks;
/* Initialize the word breaks array. */
if (n > 0)
{
@@ -102,16 +99,13 @@ FUNC (const UNIT *s, size_t n,
ucs4_t uc;
int count = U_MBTOUC_UNSAFE (&uc, s, s_end - s);
- ucs4_t (*single_character_map) (ucs4_t);
- size_t offset_in_rule; /* offset in 'struct special_casing_rule' */
-
- ucs4_t mapped_uc[3];
- unsigned int mapped_count;
-
if (*wp)
/* Crossing a word boundary. */
in_word_first_part = true;
+ ucs4_t (*single_character_map) (ucs4_t);
+ size_t offset_in_rule; /* offset in 'struct special_casing_rule' */
+
/* Determine single_character_map, offset_in_rule.
There are three possibilities:
- uc should not be converted.
@@ -140,6 +134,9 @@ FUNC (const UNIT *s, size_t n,
offset_in_rule = offsetof (struct special_casing_rule, lower[0]);
}
+ ucs4_t mapped_uc[3];
+ unsigned int mapped_count;
+
/* Actually map uc. */
if (single_character_map == NULL)
{
@@ -173,10 +170,11 @@ FUNC (const UNIT *s, size_t n,
{
/* Does the context apply? */
int context = rule->context;
- bool applies;
if (context < 0)
context = - context;
+
+ bool applies;
switch (context)
{
case SCC_ALWAYS:
@@ -357,15 +355,65 @@ FUNC (const UNIT *s, size_t n,
found_mapping:
/* Found the mapping: uc maps to mapped_uc[0..mapped_count-1]. */
- {
- unsigned int i;
+ for (unsigned int i = 0; i < mapped_count; i++)
+ {
+ ucs4_t muc = mapped_uc[i];
- for (i = 0; i < mapped_count; i++)
+ /* Append muc to the result accumulator. */
+ if (length < allocated)
+ {
+ int ret = U_UCTOMB (result + length, muc, allocated - length);
+ if (ret == -1)
+ {
+ errno = EINVAL;
+ goto fail1;
+ }
+ if (ret >= 0)
+ {
+ length += ret;
+ goto done_appending;
+ }
+ }
{
- ucs4_t muc = mapped_uc[i];
-
- /* Append muc to the result accumulator. */
- if (length < allocated)
+ size_t old_allocated = allocated;
+ size_t new_allocated = 2 * old_allocated;
+ if (new_allocated < 64)
+ new_allocated = 64;
+ if (new_allocated < old_allocated) /* integer overflow? */
+ abort ();
+ {
+ UNIT *larger_result;
+ if (result == NULL)
+ {
+ larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail1;
+ }
+ }
+ else if (result == resultbuf)
+ {
+ larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail1;
+ }
+ U_CPY (larger_result, resultbuf, length);
+ }
+ else
+ {
+ larger_result =
+ (UNIT *) realloc (result, new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail1;
+ }
+ }
+ result = larger_result;
+ allocated = new_allocated;
{
int ret = U_UCTOMB (result + length, muc, allocated - length);
if (ret == -1)
@@ -373,69 +421,15 @@ FUNC (const UNIT *s, size_t n,
errno = EINVAL;
goto fail1;
}
- if (ret >= 0)
- {
- length += ret;
- goto done_appending;
- }
- }
- {
- size_t old_allocated = allocated;
- size_t new_allocated = 2 * old_allocated;
- if (new_allocated < 64)
- new_allocated = 64;
- if (new_allocated < old_allocated) /* integer overflow? */
- abort ();
- {
- UNIT *larger_result;
- if (result == NULL)
- {
- larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
- if (larger_result == NULL)
- {
- errno = ENOMEM;
- goto fail1;
- }
- }
- else if (result == resultbuf)
- {
- larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
- if (larger_result == NULL)
- {
- errno = ENOMEM;
- goto fail1;
- }
- U_CPY (larger_result, resultbuf, length);
- }
- else
- {
- larger_result =
- (UNIT *) realloc (result, new_allocated * sizeof (UNIT));
- if (larger_result == NULL)
- {
- errno = ENOMEM;
- goto fail1;
- }
- }
- result = larger_result;
- allocated = new_allocated;
- {
- int ret = U_UCTOMB (result + length, muc, allocated - length);
- if (ret == -1)
- {
- errno = EINVAL;
- goto fail1;
- }
- if (ret < 0)
- abort ();
- length += ret;
- goto done_appending;
- }
+ if (ret < 0)
+ abort ();
+ length += ret;
+ goto done_appending;
}
}
- done_appending: ;
}
- }
+ done_appending: ;
+ }
if (!uc_is_case_ignorable (uc))
last_char_except_ignorable = uc;
@@ -456,9 +450,8 @@ FUNC (const UNIT *s, size_t n,
if (nf != NULL)
{
/* Finally, normalize the result. */
- UNIT *normalized_result;
-
- normalized_result = U_NORMALIZE (nf, result, length, resultbuf, lengthp);
+ UNIT *normalized_result =
+ U_NORMALIZE (nf, result, length, resultbuf, lengthp);
if (normalized_result == NULL)
goto fail2;
@@ -482,9 +475,7 @@ FUNC (const UNIT *s, size_t n,
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- UNIT *memory;
-
- memory = (UNIT *) realloc (result, length * sizeof (UNIT));
+ UNIT *memory = (UNIT *) realloc (result, length * sizeof (UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/unicase/u-is-cased.h b/lib/unicase/u-is-cased.h
index f22282af..faddbb74 100644
--- a/lib/unicase/u-is-cased.h
+++ b/lib/unicase/u-is-cased.h
@@ -1,5 +1,5 @@
/* Test whether case matters for a Unicode string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -27,27 +27,20 @@ int
FUNC (const UNIT *s, size_t n, const char *iso639_language,
bool *resultp)
{
- UNIT normsbuf[2048 / sizeof (UNIT)];
- UNIT *norms;
- size_t norms_length;
- UNIT mappedbuf[2048 / sizeof (UNIT)];
- UNIT *mapped_toupper;
- UNIT *mapped_tolower;
- UNIT *mapped_totitle;
- size_t mapped_length;
-
/* Apply canonical decomposition to S. */
- norms_length = sizeof (normsbuf) / sizeof (UNIT);
- norms = U_NORMALIZE (UNINORM_NFD, s, n, normsbuf, &norms_length);
+ UNIT normsbuf[2048 / sizeof (UNIT)];
+ size_t norms_length = sizeof (normsbuf) / sizeof (UNIT);
+ UNIT *norms = U_NORMALIZE (UNINORM_NFD, s, n, normsbuf, &norms_length);
if (norms == NULL)
/* errno is set here. */
return -1;
- mapped_length = sizeof (mappedbuf) / sizeof (UNIT);
+ UNIT mappedbuf[2048 / sizeof (UNIT)];
+ size_t mapped_length = sizeof (mappedbuf) / sizeof (UNIT);
/* Apply toupper mapping. */
- mapped_toupper = U_TOUPPER (norms, norms_length, iso639_language, NULL,
- mappedbuf, &mapped_length);
+ UNIT *mapped_toupper = U_TOUPPER (norms, norms_length, iso639_language, NULL,
+ mappedbuf, &mapped_length);
if (mapped_toupper == NULL)
goto fail;
@@ -61,8 +54,8 @@ FUNC (const UNIT *s, size_t n, const char *iso639_language,
}
/* Apply tolower mapping. */
- mapped_tolower = U_TOLOWER (norms, norms_length, iso639_language, NULL,
- mapped_toupper, &mapped_length);
+ UNIT *mapped_tolower = U_TOLOWER (norms, norms_length, iso639_language, NULL,
+ mapped_toupper, &mapped_length);
if (mapped_tolower == NULL)
{
if (mapped_toupper != mappedbuf)
@@ -87,8 +80,8 @@ FUNC (const UNIT *s, size_t n, const char *iso639_language,
}
/* Apply totitle mapping. */
- mapped_totitle = U_TOTITLE (norms, norms_length, iso639_language, NULL,
- mapped_tolower, &mapped_length);
+ UNIT *mapped_totitle = U_TOTITLE (norms, norms_length, iso639_language, NULL,
+ mapped_tolower, &mapped_length);
if (mapped_totitle == NULL)
{
if (mapped_tolower != mappedbuf)
diff --git a/lib/unicase/u-is-invariant.h b/lib/unicase/u-is-invariant.h
index 131c1aa6..c859b4e5 100644
--- a/lib/unicase/u-is-invariant.h
+++ b/lib/unicase/u-is-invariant.h
@@ -1,5 +1,5 @@
/* Test whether a Unicode string is invariant under a given case mapping.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -31,24 +31,19 @@ FUNC (const UNIT *s, size_t n,
const char *iso639_language,
bool *resultp)
{
- UNIT normsbuf[2048 / sizeof (UNIT)];
- UNIT *norms;
- size_t norms_length;
- UNIT mappedbuf[2048 / sizeof (UNIT)];
- UNIT *mapped;
- size_t mapped_length;
-
/* Apply canonical decomposition to S. */
- norms_length = sizeof (normsbuf) / sizeof (UNIT);
- norms = U_NORMALIZE (UNINORM_NFD, s, n, normsbuf, &norms_length);
+ UNIT normsbuf[2048 / sizeof (UNIT)];
+ size_t norms_length = sizeof (normsbuf) / sizeof (UNIT);
+ UNIT *norms = U_NORMALIZE (UNINORM_NFD, s, n, normsbuf, &norms_length);
if (norms == NULL)
/* errno is set here. */
return -1;
/* Apply mapping. */
- mapped_length = sizeof (mappedbuf) / sizeof (UNIT);
- mapped = mapping (norms, norms_length, iso639_language, NULL,
- mappedbuf, &mapped_length);
+ UNIT mappedbuf[2048 / sizeof (UNIT)];
+ size_t mapped_length = sizeof (mappedbuf) / sizeof (UNIT);
+ UNIT *mapped = mapping (norms, norms_length, iso639_language, NULL,
+ mappedbuf, &mapped_length);
if (mapped == NULL)
{
if (norms != normsbuf)
diff --git a/lib/unicase/u-prefix-context.h b/lib/unicase/u-prefix-context.h
index 4b03a1ee..80598269 100644
--- a/lib/unicase/u-prefix-context.h
+++ b/lib/unicase/u-prefix-context.h
@@ -1,5 +1,5 @@
/* Case-mapping context of prefix UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u-suffix-context.h b/lib/unicase/u-suffix-context.h
index f996f523..792adff5 100644
--- a/lib/unicase/u-suffix-context.h
+++ b/lib/unicase/u-suffix-context.h
@@ -1,5 +1,5 @@
/* Case-mapping context of suffix UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u-totitle.h b/lib/unicase/u-totitle.h
index b6d62a84..e39d1954 100644
--- a/lib/unicase/u-totitle.h
+++ b/lib/unicase/u-totitle.h
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-8/UTF-16/UTF-32 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-casecmp.c b/lib/unicase/u16-casecmp.c
index e8b0ef9a..d98dd4ce 100644
--- a/lib/unicase/u16-casecmp.c
+++ b/lib/unicase/u16-casecmp.c
@@ -1,5 +1,5 @@
/* Case and normalization insensitive comparison of UTF-16 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-casecoll.c b/lib/unicase/u16-casecoll.c
index ed7faa01..ae9bada9 100644
--- a/lib/unicase/u16-casecoll.c
+++ b/lib/unicase/u16-casecoll.c
@@ -1,6 +1,6 @@
/* Locale dependent, case and normalization insensitive comparison of UTF-16
strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-casefold.c b/lib/unicase/u16-casefold.c
index cd636b4f..ca9a7a79 100644
--- a/lib/unicase/u16-casefold.c
+++ b/lib/unicase/u16-casefold.c
@@ -1,5 +1,5 @@
/* Casefolding mapping for UTF-16 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-casemap.c b/lib/unicase/u16-casemap.c
index 9406e99b..47b210c0 100644
--- a/lib/unicase/u16-casemap.c
+++ b/lib/unicase/u16-casemap.c
@@ -1,5 +1,5 @@
/* Case mapping for UTF-16 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-casexfrm.c b/lib/unicase/u16-casexfrm.c
index b44351c3..ffdb805e 100644
--- a/lib/unicase/u16-casexfrm.c
+++ b/lib/unicase/u16-casexfrm.c
@@ -1,6 +1,6 @@
/* Locale dependent transformation for case insensitive comparison of UTF-16
strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-ct-casefold.c b/lib/unicase/u16-ct-casefold.c
index 6e60d4ad..fb50cd17 100644
--- a/lib/unicase/u16-ct-casefold.c
+++ b/lib/unicase/u16-ct-casefold.c
@@ -1,5 +1,5 @@
/* Casefolding mapping for UTF-16 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-ct-tolower.c b/lib/unicase/u16-ct-tolower.c
index 09e242aa..6ef80c6a 100644
--- a/lib/unicase/u16-ct-tolower.c
+++ b/lib/unicase/u16-ct-tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for UTF-16 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-ct-totitle.c b/lib/unicase/u16-ct-totitle.c
index 555e149c..bf4a38f4 100644
--- a/lib/unicase/u16-ct-totitle.c
+++ b/lib/unicase/u16-ct-totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-16 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-ct-toupper.c b/lib/unicase/u16-ct-toupper.c
index 1673376d..fb4a9459 100644
--- a/lib/unicase/u16-ct-toupper.c
+++ b/lib/unicase/u16-ct-toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for UTF-16 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-is-cased.c b/lib/unicase/u16-is-cased.c
index 327816ee..92851fe8 100644
--- a/lib/unicase/u16-is-cased.c
+++ b/lib/unicase/u16-is-cased.c
@@ -1,5 +1,5 @@
/* Test whether case matters for an UTF-16 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-is-casefolded.c b/lib/unicase/u16-is-casefolded.c
index 9aa0018a..d7c34d31 100644
--- a/lib/unicase/u16-is-casefolded.c
+++ b/lib/unicase/u16-is-casefolded.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-16 string is already case-folded.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-is-invariant.c b/lib/unicase/u16-is-invariant.c
index 8f0487ab..7b44c054 100644
--- a/lib/unicase/u16-is-invariant.c
+++ b/lib/unicase/u16-is-invariant.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-16 string is invariant under a given case mapping.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-is-lowercase.c b/lib/unicase/u16-is-lowercase.c
index a5487dff..d4ed1939 100644
--- a/lib/unicase/u16-is-lowercase.c
+++ b/lib/unicase/u16-is-lowercase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-16 string is entirely lower case.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-is-titlecase.c b/lib/unicase/u16-is-titlecase.c
index 360b2a53..a911bd53 100644
--- a/lib/unicase/u16-is-titlecase.c
+++ b/lib/unicase/u16-is-titlecase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-16 string is entirely title case.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-is-uppercase.c b/lib/unicase/u16-is-uppercase.c
index 18c918a0..a8f5865f 100644
--- a/lib/unicase/u16-is-uppercase.c
+++ b/lib/unicase/u16-is-uppercase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-16 string is entirely upper case.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-prefix-context.c b/lib/unicase/u16-prefix-context.c
index 6538cdb9..ec67e0f5 100644
--- a/lib/unicase/u16-prefix-context.c
+++ b/lib/unicase/u16-prefix-context.c
@@ -1,5 +1,5 @@
/* Case-mapping context of prefix UTF-16 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-suffix-context.c b/lib/unicase/u16-suffix-context.c
index 30b1bcf7..b6cfe6e4 100644
--- a/lib/unicase/u16-suffix-context.c
+++ b/lib/unicase/u16-suffix-context.c
@@ -1,5 +1,5 @@
/* Case-mapping context of suffix UTF-16 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-tolower.c b/lib/unicase/u16-tolower.c
index 9fe111a0..b3a3b1db 100644
--- a/lib/unicase/u16-tolower.c
+++ b/lib/unicase/u16-tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for UTF-16 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-totitle.c b/lib/unicase/u16-totitle.c
index 99fa10ba..5b4da8fb 100644
--- a/lib/unicase/u16-totitle.c
+++ b/lib/unicase/u16-totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-16 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-toupper.c b/lib/unicase/u16-toupper.c
index 8c3c6346..e1f2635a 100644
--- a/lib/unicase/u16-toupper.c
+++ b/lib/unicase/u16-toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for UTF-16 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-casecmp.c b/lib/unicase/u32-casecmp.c
index 84588670..6898823c 100644
--- a/lib/unicase/u32-casecmp.c
+++ b/lib/unicase/u32-casecmp.c
@@ -1,5 +1,5 @@
/* Case and normalization insensitive comparison of UTF-32 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-casecoll.c b/lib/unicase/u32-casecoll.c
index c606310b..f43119ce 100644
--- a/lib/unicase/u32-casecoll.c
+++ b/lib/unicase/u32-casecoll.c
@@ -1,6 +1,6 @@
/* Locale dependent, case and normalization insensitive comparison of UTF-32
strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-casefold.c b/lib/unicase/u32-casefold.c
index 43614d8c..f54fd9d0 100644
--- a/lib/unicase/u32-casefold.c
+++ b/lib/unicase/u32-casefold.c
@@ -1,5 +1,5 @@
/* Casefolding mapping for UTF-32 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-casemap.c b/lib/unicase/u32-casemap.c
index 52e96696..4f1161b5 100644
--- a/lib/unicase/u32-casemap.c
+++ b/lib/unicase/u32-casemap.c
@@ -1,5 +1,5 @@
/* Case mapping for UTF-32 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-casexfrm.c b/lib/unicase/u32-casexfrm.c
index c105221f..85396426 100644
--- a/lib/unicase/u32-casexfrm.c
+++ b/lib/unicase/u32-casexfrm.c
@@ -1,6 +1,6 @@
/* Locale dependent transformation for case insensitive comparison of UTF-32
strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-ct-casefold.c b/lib/unicase/u32-ct-casefold.c
index 3da61533..5ea1ee74 100644
--- a/lib/unicase/u32-ct-casefold.c
+++ b/lib/unicase/u32-ct-casefold.c
@@ -1,5 +1,5 @@
/* Casefolding mapping for UTF-32 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-ct-tolower.c b/lib/unicase/u32-ct-tolower.c
index c73126f4..95834829 100644
--- a/lib/unicase/u32-ct-tolower.c
+++ b/lib/unicase/u32-ct-tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for UTF-32 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-ct-totitle.c b/lib/unicase/u32-ct-totitle.c
index 389680a4..6f93f008 100644
--- a/lib/unicase/u32-ct-totitle.c
+++ b/lib/unicase/u32-ct-totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-32 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-ct-toupper.c b/lib/unicase/u32-ct-toupper.c
index 20b123d9..f457f49b 100644
--- a/lib/unicase/u32-ct-toupper.c
+++ b/lib/unicase/u32-ct-toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for UTF-32 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-is-cased.c b/lib/unicase/u32-is-cased.c
index 2ef7ba05..14500c97 100644
--- a/lib/unicase/u32-is-cased.c
+++ b/lib/unicase/u32-is-cased.c
@@ -1,5 +1,5 @@
/* Test whether case matters for an UTF-32 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-is-casefolded.c b/lib/unicase/u32-is-casefolded.c
index 14b5fb56..a1a4ae0f 100644
--- a/lib/unicase/u32-is-casefolded.c
+++ b/lib/unicase/u32-is-casefolded.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-32 string is already case-folded.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-is-invariant.c b/lib/unicase/u32-is-invariant.c
index 8322d09f..312d0504 100644
--- a/lib/unicase/u32-is-invariant.c
+++ b/lib/unicase/u32-is-invariant.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-32 string is invariant under a given case mapping.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-is-lowercase.c b/lib/unicase/u32-is-lowercase.c
index 33e9b969..494ef976 100644
--- a/lib/unicase/u32-is-lowercase.c
+++ b/lib/unicase/u32-is-lowercase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-32 string is entirely lower case.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-is-titlecase.c b/lib/unicase/u32-is-titlecase.c
index e27e84be..12162c34 100644
--- a/lib/unicase/u32-is-titlecase.c
+++ b/lib/unicase/u32-is-titlecase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-32 string is entirely title case.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-is-uppercase.c b/lib/unicase/u32-is-uppercase.c
index a1491875..95ea76f0 100644
--- a/lib/unicase/u32-is-uppercase.c
+++ b/lib/unicase/u32-is-uppercase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-32 string is entirely upper case.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-prefix-context.c b/lib/unicase/u32-prefix-context.c
index 03c96dda..8e2da09b 100644
--- a/lib/unicase/u32-prefix-context.c
+++ b/lib/unicase/u32-prefix-context.c
@@ -1,5 +1,5 @@
/* Case-mapping context of prefix UTF-32 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-suffix-context.c b/lib/unicase/u32-suffix-context.c
index 440de756..2849111d 100644
--- a/lib/unicase/u32-suffix-context.c
+++ b/lib/unicase/u32-suffix-context.c
@@ -1,5 +1,5 @@
/* Case-mapping context of suffix UTF-32 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-tolower.c b/lib/unicase/u32-tolower.c
index 6ade7ca9..3c75471e 100644
--- a/lib/unicase/u32-tolower.c
+++ b/lib/unicase/u32-tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for UTF-32 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-totitle.c b/lib/unicase/u32-totitle.c
index caf02bd3..918f5814 100644
--- a/lib/unicase/u32-totitle.c
+++ b/lib/unicase/u32-totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-32 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-toupper.c b/lib/unicase/u32-toupper.c
index 928eac45..1ec20b43 100644
--- a/lib/unicase/u32-toupper.c
+++ b/lib/unicase/u32-toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for UTF-32 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-casecmp.c b/lib/unicase/u8-casecmp.c
index 8ae141ca..4aa61d55 100644
--- a/lib/unicase/u8-casecmp.c
+++ b/lib/unicase/u8-casecmp.c
@@ -1,5 +1,5 @@
/* Case and normalization insensitive comparison of UTF-8 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-casecoll.c b/lib/unicase/u8-casecoll.c
index 43833896..cd9d42d4 100644
--- a/lib/unicase/u8-casecoll.c
+++ b/lib/unicase/u8-casecoll.c
@@ -1,6 +1,6 @@
/* Locale dependent, case and normalization insensitive comparison of UTF-8
strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-casefold.c b/lib/unicase/u8-casefold.c
index 59dee49e..d446855c 100644
--- a/lib/unicase/u8-casefold.c
+++ b/lib/unicase/u8-casefold.c
@@ -1,5 +1,5 @@
/* Casefolding mapping for UTF-8 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -50,7 +50,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -66,7 +65,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
diff --git a/lib/unicase/u8-casemap.c b/lib/unicase/u8-casemap.c
index 9488db6d..780fbbf3 100644
--- a/lib/unicase/u8-casemap.c
+++ b/lib/unicase/u8-casemap.c
@@ -1,5 +1,5 @@
/* Case mapping for UTF-8 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-casexfrm.c b/lib/unicase/u8-casexfrm.c
index 6e6ef004..f88f1a0c 100644
--- a/lib/unicase/u8-casexfrm.c
+++ b/lib/unicase/u8-casexfrm.c
@@ -1,6 +1,6 @@
/* Locale dependent transformation for case insensitive comparison of UTF-8
strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-ct-casefold.c b/lib/unicase/u8-ct-casefold.c
index 6b84998d..d132af19 100644
--- a/lib/unicase/u8-ct-casefold.c
+++ b/lib/unicase/u8-ct-casefold.c
@@ -1,5 +1,5 @@
/* Casefolding mapping for UTF-8 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-ct-tolower.c b/lib/unicase/u8-ct-tolower.c
index b699c72a..93412107 100644
--- a/lib/unicase/u8-ct-tolower.c
+++ b/lib/unicase/u8-ct-tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for UTF-8 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-ct-totitle.c b/lib/unicase/u8-ct-totitle.c
index c7a53567..ae4a123f 100644
--- a/lib/unicase/u8-ct-totitle.c
+++ b/lib/unicase/u8-ct-totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-8 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-ct-toupper.c b/lib/unicase/u8-ct-toupper.c
index ca092c73..1d4ee155 100644
--- a/lib/unicase/u8-ct-toupper.c
+++ b/lib/unicase/u8-ct-toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for UTF-8 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-is-cased.c b/lib/unicase/u8-is-cased.c
index 52c10c0a..e84ae088 100644
--- a/lib/unicase/u8-is-cased.c
+++ b/lib/unicase/u8-is-cased.c
@@ -1,5 +1,5 @@
/* Test whether case matters for an UTF-8 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-is-casefolded.c b/lib/unicase/u8-is-casefolded.c
index 034127bb..c242922b 100644
--- a/lib/unicase/u8-is-casefolded.c
+++ b/lib/unicase/u8-is-casefolded.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-8 string is already case-folded.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-is-invariant.c b/lib/unicase/u8-is-invariant.c
index 5e157247..11392017 100644
--- a/lib/unicase/u8-is-invariant.c
+++ b/lib/unicase/u8-is-invariant.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-8 string is invariant under a given case mapping.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-is-lowercase.c b/lib/unicase/u8-is-lowercase.c
index 9706901f..62ed1626 100644
--- a/lib/unicase/u8-is-lowercase.c
+++ b/lib/unicase/u8-is-lowercase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-8 string is entirely lower case.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-is-titlecase.c b/lib/unicase/u8-is-titlecase.c
index 841227b9..0d7ff162 100644
--- a/lib/unicase/u8-is-titlecase.c
+++ b/lib/unicase/u8-is-titlecase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-8 string is entirely title case.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-is-uppercase.c b/lib/unicase/u8-is-uppercase.c
index e105f164..d177cf71 100644
--- a/lib/unicase/u8-is-uppercase.c
+++ b/lib/unicase/u8-is-uppercase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-8 string is entirely upper case.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-prefix-context.c b/lib/unicase/u8-prefix-context.c
index fa11aefd..1111b628 100644
--- a/lib/unicase/u8-prefix-context.c
+++ b/lib/unicase/u8-prefix-context.c
@@ -1,5 +1,5 @@
/* Case-mapping context of prefix UTF-8 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-suffix-context.c b/lib/unicase/u8-suffix-context.c
index a1fb33e3..1ff29488 100644
--- a/lib/unicase/u8-suffix-context.c
+++ b/lib/unicase/u8-suffix-context.c
@@ -1,5 +1,5 @@
/* Case-mapping context of suffix UTF-8 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-tolower.c b/lib/unicase/u8-tolower.c
index 352a0ef9..cc4bc036 100644
--- a/lib/unicase/u8-tolower.c
+++ b/lib/unicase/u8-tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for UTF-8 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -63,7 +63,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -79,7 +78,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
diff --git a/lib/unicase/u8-totitle.c b/lib/unicase/u8-totitle.c
index c72e5d82..2b0d3cf7 100644
--- a/lib/unicase/u8-totitle.c
+++ b/lib/unicase/u8-totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-8 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -50,7 +50,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -66,7 +65,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
diff --git a/lib/unicase/u8-toupper.c b/lib/unicase/u8-toupper.c
index 2968d989..9dccf9d9 100644
--- a/lib/unicase/u8-toupper.c
+++ b/lib/unicase/u8-toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for UTF-8 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -63,7 +63,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -79,7 +78,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
diff --git a/lib/unicase/ulc-casecmp.c b/lib/unicase/ulc-casecmp.c
index ced4f8e4..3504addc 100644
--- a/lib/unicase/ulc-casecmp.c
+++ b/lib/unicase/ulc-casecmp.c
@@ -1,5 +1,5 @@
/* Case and normalization insensitive comparison of strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -41,14 +41,10 @@ ulc_u8_casefold (const char *s, size_t n, const char *iso639_language,
uninorm_t nf,
uint8_t *resultbuf, size_t *lengthp)
{
- uint8_t convbuf[2048 / sizeof (uint8_t)];
- uint8_t *conv;
- size_t conv_length;
- uint8_t *result;
-
/* Convert the string to UTF-8. */
- conv_length = sizeof (convbuf) / sizeof (uint8_t);
- conv =
+ uint8_t convbuf[2048 / sizeof (uint8_t)];
+ size_t conv_length = sizeof (convbuf) / sizeof (uint8_t);
+ uint8_t *conv =
u8_conv_from_encoding (locale_charset (), iconveh_error, s, n, NULL,
convbuf, &conv_length);
if (conv == NULL)
@@ -56,8 +52,8 @@ ulc_u8_casefold (const char *s, size_t n, const char *iso639_language,
return NULL;
/* Case-fold and normalize. */
- result = u8_casefold (conv, conv_length, iso639_language, nf,
- resultbuf, lengthp);
+ uint8_t *result = u8_casefold (conv, conv_length, iso639_language, nf,
+ resultbuf, lengthp);
if (result == NULL)
{
if (conv != convbuf)
diff --git a/lib/unicase/ulc-casecoll.c b/lib/unicase/ulc-casecoll.c
index 1367e193..9cbfbb6a 100644
--- a/lib/unicase/ulc-casecoll.c
+++ b/lib/unicase/ulc-casecoll.c
@@ -1,5 +1,5 @@
/* Locale dependent, case and normalization insensitive comparison of strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/ulc-casexfrm.c b/lib/unicase/ulc-casexfrm.c
index f18ad566..ef27d2ad 100644
--- a/lib/unicase/ulc-casexfrm.c
+++ b/lib/unicase/ulc-casexfrm.c
@@ -1,5 +1,5 @@
/* Locale dependent transformation for case insensitive comparison of strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -38,14 +38,10 @@ ulc_casexfrm (const char *s, size_t n, const char *iso639_language,
uninorm_t nf,
char *resultbuf, size_t *lengthp)
{
- uint8_t convbuf[2048 / sizeof (uint8_t)];
- uint8_t *conv;
- size_t conv_length;
- char *result;
-
/* Convert the string to UTF-8. */
- conv_length = sizeof (convbuf) / sizeof (uint8_t);
- conv =
+ uint8_t convbuf[2048 / sizeof (uint8_t)];
+ size_t conv_length = sizeof (convbuf) / sizeof (uint8_t);
+ uint8_t *conv =
u8_conv_from_encoding (locale_charset (), iconveh_error, s, n, NULL,
convbuf, &conv_length);
if (conv == NULL)
@@ -53,8 +49,8 @@ ulc_casexfrm (const char *s, size_t n, const char *iso639_language,
return NULL;
/* Case-fold and normalize. */
- result = u8_casexfrm (conv, conv_length, iso639_language, nf,
- resultbuf, lengthp);
+ char *result = u8_casexfrm (conv, conv_length, iso639_language, nf,
+ resultbuf, lengthp);
if (result == NULL)
{
if (conv != convbuf)
diff --git a/lib/unicase/unicasemap.h b/lib/unicase/unicasemap.h
index 3aec2c61..ce80329e 100644
--- a/lib/unicase/unicasemap.h
+++ b/lib/unicase/unicasemap.h
@@ -1,5 +1,5 @@
/* Case mapping for UTF-8/UTF-16/UTF-32 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uniconv.in.h b/lib/uniconv.in.h
index 5b716d29..6a02dc1d 100644
--- a/lib/uniconv.in.h
+++ b/lib/uniconv.in.h
@@ -1,5 +1,5 @@
/* Conversions between Unicode and legacy encodings.
- Copyright (C) 2002, 2005, 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005, 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/uniconv/u-conv-from-enc.h b/lib/uniconv/u-conv-from-enc.h
index 32251c5e..4371d2b1 100644
--- a/lib/uniconv/u-conv-from-enc.h
+++ b/lib/uniconv/u-conv-from-enc.h
@@ -1,5 +1,5 @@
/* Conversion to UTF-16/UTF-32 from legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -40,9 +40,8 @@ FUNC (const char *fromcode,
{
/* Convert 'char *' offsets to 'UNIT *' offsets. */
size_t *offsets_end = offsets + srclen;
- size_t *o;
- for (o = offsets; o < offsets_end; o++)
+ for (size_t *o = offsets; o < offsets_end; o++)
if (*o != (size_t)(-1))
*o = *o / sizeof (UNIT);
}
@@ -51,16 +50,14 @@ FUNC (const char *fromcode,
*lengthp = length / sizeof (UNIT);
return (UNIT *) result;
#else
- uint8_t *utf8_string;
size_t utf8_length;
- UNIT *result;
-
- utf8_string =
+ uint8_t *utf8_string =
u8_conv_from_encoding (fromcode, handler, src, srclen, offsets,
NULL, &utf8_length);
if (utf8_string == NULL)
return NULL;
- result = U8_TO_U (utf8_string, utf8_length, resultbuf, lengthp);
+
+ UNIT *result = U8_TO_U (utf8_string, utf8_length, resultbuf, lengthp);
if (result == NULL)
{
int saved_errno = errno;
@@ -72,11 +69,10 @@ FUNC (const char *fromcode,
{
size_t length = *lengthp;
size_t *offsets_end = offsets + srclen;
- size_t *o;
- size_t off8 = 0; /* offset into utf8_string */
- size_t offunit = 0; /* offset into result */
- for (o = offsets; o < offsets_end; o++)
+ size_t off8 = 0; /* offset into utf8_string */
+ size_t offunit = 0; /* offset into result */
+ for (size_t *o = offsets; o < offsets_end; o++)
if (*o != (size_t)(-1))
{
while (off8 < *o)
diff --git a/lib/uniconv/u-conv-to-enc.h b/lib/uniconv/u-conv-to-enc.h
index e1a85324..1ab900cc 100644
--- a/lib/uniconv/u-conv-to-enc.h
+++ b/lib/uniconv/u-conv-to-enc.h
@@ -1,5 +1,5 @@
/* Conversion from UTF-16/UTF-32 to legacy encodings.
- Copyright (C) 2002, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -31,9 +31,6 @@ FUNC (const char *tocode,
{
#if HAVE_UTF_NAME
size_t *scaled_offsets;
- char *result;
- size_t length;
-
if (offsets != NULL && srclen > 0)
{
scaled_offsets =
@@ -47,8 +44,8 @@ FUNC (const char *tocode,
else
scaled_offsets = NULL;
- result = resultbuf;
- length = *lengthp;
+ char *result = resultbuf;
+ size_t length = *lengthp;
if (mem_iconveha ((const char *) src, srclen * sizeof (UNIT),
UTF_NAME, tocode,
handler == iconveh_question_mark, handler,
@@ -64,9 +61,7 @@ FUNC (const char *tocode,
{
/* Convert scaled_offsets[srclen * sizeof (UNIT)] to
offsets[srclen]. */
- size_t i;
-
- for (i = 0; i < srclen; i++)
+ for (size_t i = 0; i < srclen; i++)
offsets[i] = scaled_offsets[i * sizeof (UNIT)];
free (scaled_offsets);
}
@@ -85,16 +80,12 @@ FUNC (const char *tocode,
#else
uint8_t tmpbuf[4096];
size_t tmpbufsize = SIZEOF (tmpbuf);
- uint8_t *utf8_src;
- size_t utf8_srclen;
- size_t *scaled_offsets;
- char *result;
-
- utf8_src = U_TO_U8 (src, srclen, tmpbuf, &tmpbufsize);
+ uint8_t *utf8_src = U_TO_U8 (src, srclen, tmpbuf, &tmpbufsize);
if (utf8_src == NULL)
return NULL;
- utf8_srclen = tmpbufsize;
+ size_t utf8_srclen = tmpbufsize;
+ size_t *scaled_offsets;
if (offsets != NULL && utf8_srclen > 0)
{
scaled_offsets = (size_t *) malloc (utf8_srclen * sizeof (size_t));
@@ -109,8 +100,8 @@ FUNC (const char *tocode,
else
scaled_offsets = NULL;
- result = u8_conv_to_encoding (tocode, handler, utf8_src, utf8_srclen,
- scaled_offsets, resultbuf, lengthp);
+ char *result = u8_conv_to_encoding (tocode, handler, utf8_src, utf8_srclen,
+ scaled_offsets, resultbuf, lengthp);
if (result == NULL)
{
int saved_errno = errno;
@@ -122,23 +113,17 @@ FUNC (const char *tocode,
}
if (offsets != NULL)
{
- size_t iunit; /* offset into src */
- size_t i8; /* offset into utf8_src */
-
- for (iunit = 0; iunit < srclen; iunit++)
+ for (size_t iunit = 0; iunit < srclen; iunit++)
offsets[iunit] = (size_t)(-1);
- iunit = 0;
- i8 = 0;
+ size_t iunit = 0; /* offset into src */
+ size_t i8 = 0; /* offset into utf8_src */
while (iunit < srclen && i8 < utf8_srclen)
{
- int countunit;
- int count8;
-
offsets[iunit] = scaled_offsets[i8];
- countunit = U_MBLEN (src + iunit, srclen - iunit);
- count8 = u8_mblen (utf8_src + i8, utf8_srclen - i8);
+ int countunit = U_MBLEN (src + iunit, srclen - iunit);
+ int count8 = u8_mblen (utf8_src + i8, utf8_srclen - i8);
if (countunit < 0 || count8 < 0)
abort ();
iunit += countunit;
diff --git a/lib/uniconv/u-strconv-from-enc.h b/lib/uniconv/u-strconv-from-enc.h
index 2d1e4ce6..034be44c 100644
--- a/lib/uniconv/u-strconv-from-enc.h
+++ b/lib/uniconv/u-strconv-from-enc.h
@@ -1,5 +1,5 @@
/* Conversion to UTF-8/UTF-16/UTF-32 from legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -19,10 +19,8 @@ FUNC (const char *string,
const char *fromcode,
enum iconv_ilseq_handler handler)
{
- UNIT *result;
size_t length;
-
- result =
+ UNIT *result =
U_CONV_FROM_ENCODING (fromcode, handler,
string, strlen (string) + 1, NULL,
NULL, &length);
diff --git a/lib/uniconv/u-strconv-to-enc.h b/lib/uniconv/u-strconv-to-enc.h
index 91b8e1a9..175aac20 100644
--- a/lib/uniconv/u-strconv-to-enc.h
+++ b/lib/uniconv/u-strconv-to-enc.h
@@ -1,5 +1,5 @@
/* Conversion from UTF-16/UTF-32 to legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -47,13 +47,10 @@ FUNC (const UNIT *string,
#else
uint8_t tmpbuf[4096];
size_t tmpbufsize = SIZEOF (tmpbuf);
- uint8_t *utf8_string;
- char *result;
-
- utf8_string = U_TO_U8 (string, U_STRLEN (string) + 1, tmpbuf, &tmpbufsize);
+ uint8_t *utf8_string = U_TO_U8 (string, U_STRLEN (string) + 1, tmpbuf, &tmpbufsize);
if (utf8_string == NULL)
return NULL;
- result = u8_strconv_to_encoding (utf8_string, tocode, handler);
+ char *result = u8_strconv_to_encoding (utf8_string, tocode, handler);
if (result == NULL)
{
if (utf8_string != tmpbuf)
diff --git a/lib/uniconv/u16-conv-from-enc.c b/lib/uniconv/u16-conv-from-enc.c
index f2c3dfa1..7c5e1f15 100644
--- a/lib/uniconv/u16-conv-from-enc.c
+++ b/lib/uniconv/u16-conv-from-enc.c
@@ -1,5 +1,5 @@
/* Conversion to UTF-16 from legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u16-conv-to-enc.c b/lib/uniconv/u16-conv-to-enc.c
index f44e90f0..1214e671 100644
--- a/lib/uniconv/u16-conv-to-enc.c
+++ b/lib/uniconv/u16-conv-to-enc.c
@@ -1,5 +1,5 @@
/* Conversion from UTF-16 to legacy encodings.
- Copyright (C) 2002, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -62,11 +62,10 @@ static DST_UNIT *
FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
{
const SRC_UNIT *s_end = s + n;
+
/* Output string accumulator. */
DST_UNIT *result;
size_t allocated;
- size_t length;
-
if (resultbuf != NULL)
{
result = resultbuf;
@@ -77,18 +76,16 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
result = NULL;
allocated = 0;
}
- length = 0;
+ size_t length = 0;
/* Invariants:
result is either == resultbuf or == NULL or malloc-allocated.
If length > 0, then result != NULL. */
while (s < s_end)
{
- ucs4_t uc;
- int count;
-
/* Fetch a Unicode character from the input string. */
- count = u16_mbtoucr (&uc, s, s_end - s);
+ ucs4_t uc;
+ int count = u16_mbtoucr (&uc, s, s_end - s);
if (count < 0)
{
if (count == -2)
@@ -112,11 +109,11 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
}
if (count == -2)
{
- DST_UNIT *memory;
-
allocated = (allocated > 0 ? 2 * allocated : 12);
if (length + 6 > allocated)
allocated = length + 6;
+
+ DST_UNIT *memory;
if (result == resultbuf || result == NULL)
memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
else
@@ -157,9 +154,8 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- DST_UNIT *memory;
-
- memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ DST_UNIT *memory =
+ (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/uniconv/u16-strconv-from-enc.c b/lib/uniconv/u16-strconv-from-enc.c
index 19ead042..efb3a9c3 100644
--- a/lib/uniconv/u16-strconv-from-enc.c
+++ b/lib/uniconv/u16-strconv-from-enc.c
@@ -1,5 +1,5 @@
/* Conversion to UTF-16 from legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u16-strconv-from-locale.c b/lib/uniconv/u16-strconv-from-locale.c
index bc9e5175..6f670255 100644
--- a/lib/uniconv/u16-strconv-from-locale.c
+++ b/lib/uniconv/u16-strconv-from-locale.c
@@ -1,5 +1,5 @@
/* Conversion to UTF-16 from the locale encoding.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u16-strconv-to-enc.c b/lib/uniconv/u16-strconv-to-enc.c
index 85ca8a6d..83d5f090 100644
--- a/lib/uniconv/u16-strconv-to-enc.c
+++ b/lib/uniconv/u16-strconv-to-enc.c
@@ -1,5 +1,5 @@
/* Conversion from UTF-16 to legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u16-strconv-to-locale.c b/lib/uniconv/u16-strconv-to-locale.c
index 697023a8..cdf8cc9b 100644
--- a/lib/uniconv/u16-strconv-to-locale.c
+++ b/lib/uniconv/u16-strconv-to-locale.c
@@ -1,5 +1,5 @@
/* Conversion from UTF-16 to the locale encoding.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u32-conv-from-enc.c b/lib/uniconv/u32-conv-from-enc.c
index 33cefb7f..a18ca18a 100644
--- a/lib/uniconv/u32-conv-from-enc.c
+++ b/lib/uniconv/u32-conv-from-enc.c
@@ -1,5 +1,5 @@
/* Conversion to UTF-32 from legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u32-conv-to-enc.c b/lib/uniconv/u32-conv-to-enc.c
index a96f16de..e0504f46 100644
--- a/lib/uniconv/u32-conv-to-enc.c
+++ b/lib/uniconv/u32-conv-to-enc.c
@@ -1,5 +1,5 @@
/* Conversion from UTF-32 to legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u32-strconv-from-enc.c b/lib/uniconv/u32-strconv-from-enc.c
index 18adfe00..e6095da4 100644
--- a/lib/uniconv/u32-strconv-from-enc.c
+++ b/lib/uniconv/u32-strconv-from-enc.c
@@ -1,5 +1,5 @@
/* Conversion to UTF-32 from legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u32-strconv-from-locale.c b/lib/uniconv/u32-strconv-from-locale.c
index 896c3fd7..6e16662b 100644
--- a/lib/uniconv/u32-strconv-from-locale.c
+++ b/lib/uniconv/u32-strconv-from-locale.c
@@ -1,5 +1,5 @@
/* Conversion to UTF-32 from the locale encoding.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u32-strconv-to-enc.c b/lib/uniconv/u32-strconv-to-enc.c
index f63ced59..31c2354b 100644
--- a/lib/uniconv/u32-strconv-to-enc.c
+++ b/lib/uniconv/u32-strconv-to-enc.c
@@ -1,5 +1,5 @@
/* Conversion from UTF-32 to legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u32-strconv-to-locale.c b/lib/uniconv/u32-strconv-to-locale.c
index d19f3760..578fd0d2 100644
--- a/lib/uniconv/u32-strconv-to-locale.c
+++ b/lib/uniconv/u32-strconv-to-locale.c
@@ -1,5 +1,5 @@
/* Conversion from UTF-32 to the locale encoding.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u8-conv-from-enc.c b/lib/uniconv/u8-conv-from-enc.c
index e292e954..fa2bb59c 100644
--- a/lib/uniconv/u8-conv-from-enc.c
+++ b/lib/uniconv/u8-conv-from-enc.c
@@ -1,5 +1,5 @@
/* Conversion to UTF-8 from legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -39,7 +39,6 @@ u8_conv_from_encoding (const char *fromcode,
if (STRCASEEQ (fromcode, "UTF-8", 'U','T','F','-','8',0,0,0,0))
{
/* Conversion from UTF-8 to UTF-8. No need to go through iconv(). */
- uint8_t *result;
if (u8_check ((const uint8_t *) src, srclen))
{
@@ -48,23 +47,20 @@ u8_conv_from_encoding (const char *fromcode,
}
if (offsets != NULL)
- {
- size_t i;
-
- for (i = 0; i < srclen; )
- {
- int count = u8_mblen ((const uint8_t *) src + i, srclen - i);
- /* We can rely on count > 0 because of the previous u8_check. */
- if (count <= 0)
- abort ();
- offsets[i] = i;
- i++;
- while (--count > 0)
- offsets[i++] = (size_t)(-1);
- }
- }
+ for (size_t i = 0; i < srclen; )
+ {
+ int count = u8_mblen ((const uint8_t *) src + i, srclen - i);
+ /* We can rely on count > 0 because of the previous u8_check. */
+ if (count <= 0)
+ abort ();
+ offsets[i] = i;
+ i++;
+ while (--count > 0)
+ offsets[i++] = (size_t)(-1);
+ }
/* Memory allocation. */
+ uint8_t *result;
if (resultbuf != NULL && *lengthp >= srclen)
result = resultbuf;
else
diff --git a/lib/uniconv/u8-conv-to-enc.c b/lib/uniconv/u8-conv-to-enc.c
index bd6c150c..90b1825d 100644
--- a/lib/uniconv/u8-conv-to-enc.c
+++ b/lib/uniconv/u8-conv-to-enc.c
@@ -1,5 +1,5 @@
/* Conversion from UTF-8 to legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -46,8 +46,6 @@ u8_conv_to_encoding (const char *tocode,
{
if (STRCASEEQ (tocode, "UTF-8", 'U','T','F','-','8',0,0,0,0))
{
- char *result;
-
/* Conversion from UTF-8 to UTF-8. No need to go through iconv(). */
if (u8_check (src, srclen))
{
@@ -56,6 +54,7 @@ u8_conv_to_encoding (const char *tocode,
}
/* Memory allocation. */
+ char *result;
if (resultbuf != NULL && *lengthp >= srclen)
result = resultbuf;
else
diff --git a/lib/uniconv/u8-strconv-from-enc.c b/lib/uniconv/u8-strconv-from-enc.c
index 2e16689c..2b17f59e 100644
--- a/lib/uniconv/u8-strconv-from-enc.c
+++ b/lib/uniconv/u8-strconv-from-enc.c
@@ -1,5 +1,5 @@
/* Conversion to UTF-8 from legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/uniconv/u8-strconv-from-locale.c b/lib/uniconv/u8-strconv-from-locale.c
index f5ea013b..3c1462ee 100644
--- a/lib/uniconv/u8-strconv-from-locale.c
+++ b/lib/uniconv/u8-strconv-from-locale.c
@@ -1,5 +1,5 @@
/* Conversion to UTF-8 from the locale encoding.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/uniconv/u8-strconv-to-enc.c b/lib/uniconv/u8-strconv-to-enc.c
index d346c482..35bd5813 100644
--- a/lib/uniconv/u8-strconv-to-enc.c
+++ b/lib/uniconv/u8-strconv-to-enc.c
@@ -1,5 +1,5 @@
/* Conversion from UTF-8 to legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -42,19 +42,16 @@ u8_strconv_to_encoding (const uint8_t *string,
const char *tocode,
enum iconv_ilseq_handler handler)
{
- char *result;
- size_t length;
-
if (STRCASEEQ (tocode, "UTF-8", 'U','T','F','-','8',0,0,0,0))
{
/* Conversion from UTF-8 to UTF-8. No need to go through iconv(). */
- length = u8_strlen (string) + 1;
+ size_t length = u8_strlen (string) + 1;
if (u8_check (string, length))
{
errno = EILSEQ;
return NULL;
}
- result = (char *) malloc (length);
+ char *result = (char *) malloc (length);
if (result == NULL)
{
errno = ENOMEM;
@@ -65,8 +62,8 @@ u8_strconv_to_encoding (const uint8_t *string,
}
else
{
- result = NULL;
- length = 0;
+ char *result = NULL;
+ size_t length = 0;
if (mem_iconveha ((const char *) string, u8_strlen (string) + 1,
"UTF-8", tocode,
handler == iconveh_question_mark, handler,
diff --git a/lib/uniconv/u8-strconv-to-locale.c b/lib/uniconv/u8-strconv-to-locale.c
index ce9f2513..923f348d 100644
--- a/lib/uniconv/u8-strconv-to-locale.c
+++ b/lib/uniconv/u8-strconv-to-locale.c
@@ -1,5 +1,5 @@
/* Conversion from UTF-8 to the locale encoding.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unictype.in.h b/lib/unictype.in.h
index e94d6626..c3b9ecaf 100644
--- a/lib/unictype.in.h
+++ b/lib/unictype.in.h
@@ -1,5 +1,5 @@
/* Unicode character classification and properties.
- Copyright (C) 2002, 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/unictype/bidi_byname.c b/lib/unictype/bidi_byname.c
index a4175604..f4c2196a 100644
--- a/lib/unictype/bidi_byname.c
+++ b/lib/unictype/bidi_byname.c
@@ -1,5 +1,5 @@
/* Bidi classes of Unicode characters.
- Copyright (C) 2002, 2006, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -35,13 +35,10 @@
int
uc_bidi_class_byname (const char *bidi_class_name)
{
- size_t len;
-
- len = strlen (bidi_class_name);
+ size_t len = strlen (bidi_class_name);
if (len <= MAX_WORD_LENGTH)
{
char buf[MAX_WORD_LENGTH + 1];
- const struct named_bidi_class *found;
/* Copy bidi_class_name into buf, converting '_' and '-' to ' '. */
{
@@ -62,7 +59,7 @@ uc_bidi_class_byname (const char *bidi_class_name)
/* Here q == buf + len. */
/* Do a hash table lookup, with case-insensitive comparison. */
- found = uc_bidi_class_lookup (buf, len);
+ const struct named_bidi_class *found = uc_bidi_class_lookup (buf, len);
if (found != NULL)
return found->bidi_class;
}
diff --git a/lib/unictype/bidi_byname.gperf b/lib/unictype/bidi_byname.gperf
index dfb1b637..81d2fb66 100644
--- a/lib/unictype/bidi_byname.gperf
+++ b/lib/unictype/bidi_byname.gperf
@@ -1,5 +1,5 @@
/* Bidi classes of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unictype/bidi_byname.h b/lib/unictype/bidi_byname.h
index 46f35551..28156ab9 100644
--- a/lib/unictype/bidi_byname.h
+++ b/lib/unictype/bidi_byname.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 unictype/bidi_byname.gperf */
/* Computed positions: -k'1,9,$' */
@@ -125,9 +125,9 @@ bidi_class_hash (register const char *str, register size_t len)
{
default:
hval += asso_values[(unsigned char)str[8]];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -291,6 +291,10 @@ static const struct bidi_class_stringpool_t bidi_class_stringpool_contents =
};
#define bidi_class_stringpool ((const char *) &bidi_class_stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct named_bidi_class bidi_class_names[] =
{
{-1}, {-1}, {-1}, {-1}, {-1},
@@ -443,6 +447,9 @@ static const struct named_bidi_class bidi_class_names[] =
#line 102 "unictype/bidi_byname.gperf"
{(int)(size_t)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str87, UC_BIDI_S}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
static const struct named_bidi_class *
uc_bidi_class_lookup (register const char *str, register size_t len)
@@ -463,5 +470,5 @@ uc_bidi_class_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct named_bidi_class *) 0;
}
diff --git a/lib/unictype/bidi_longname.c b/lib/unictype/bidi_longname.c
index 8a2f34e8..4a3fe274 100644
--- a/lib/unictype/bidi_longname.c
+++ b/lib/unictype/bidi_longname.c
@@ -1,5 +1,5 @@
/* Bidi classes of Unicode characters.
- Copyright (C) 2002, 2006, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/bidi_name.c b/lib/unictype/bidi_name.c
index f53c6587..fc439735 100644
--- a/lib/unictype/bidi_name.c
+++ b/lib/unictype/bidi_name.c
@@ -1,5 +1,5 @@
/* Bidi classes of Unicode characters.
- Copyright (C) 2002, 2006, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/bidi_of.c b/lib/unictype/bidi_of.c
index c808381e..a4e3f3b7 100644
--- a/lib/unictype/bidi_of.c
+++ b/lib/unictype/bidi_of.c
@@ -1,5 +1,5 @@
/* Bidi classes of Unicode characters.
- Copyright (C) 2002, 2006, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/bidi_test.c b/lib/unictype/bidi_test.c
index 1cbafd6b..1debda38 100644
--- a/lib/unictype/bidi_test.c
+++ b/lib/unictype/bidi_test.c
@@ -1,5 +1,5 @@
/* Bidi classes of Unicode characters.
- Copyright (C) 2002, 2006, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/bitmap.h b/lib/unictype/bitmap.h
index 869ac066..621861da 100644
--- a/lib/unictype/bitmap.h
+++ b/lib/unictype/bitmap.h
@@ -1,5 +1,5 @@
/* Three-level bitmap lookup.
- Copyright (C) 2000-2002, 2005-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2000-2002, 2005-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2000-2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/block_test.c b/lib/unictype/block_test.c
index 337cf7e6..702b5629 100644
--- a/lib/unictype/block_test.c
+++ b/lib/unictype/block_test.c
@@ -1,5 +1,5 @@
/* Blocks of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
diff --git a/lib/unictype/blocks.c b/lib/unictype/blocks.c
index 11bd2629..e9087d5f 100644
--- a/lib/unictype/blocks.c
+++ b/lib/unictype/blocks.c
@@ -1,5 +1,5 @@
/* Blocks of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
diff --git a/lib/unictype/categ_C.c b/lib/unictype/categ_C.c
index 7a0ea55b..cd6b3f52 100644
--- a/lib/unictype/categ_C.c
+++ b/lib/unictype/categ_C.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Cc.c b/lib/unictype/categ_Cc.c
index 5053e9c9..a0e79b7a 100644
--- a/lib/unictype/categ_Cc.c
+++ b/lib/unictype/categ_Cc.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Cf.c b/lib/unictype/categ_Cf.c
index 7bb26532..809bc3d6 100644
--- a/lib/unictype/categ_Cf.c
+++ b/lib/unictype/categ_Cf.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Cn.c b/lib/unictype/categ_Cn.c
index 952e696b..71bcb245 100644
--- a/lib/unictype/categ_Cn.c
+++ b/lib/unictype/categ_Cn.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Co.c b/lib/unictype/categ_Co.c
index 28626d99..58db4466 100644
--- a/lib/unictype/categ_Co.c
+++ b/lib/unictype/categ_Co.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Cs.c b/lib/unictype/categ_Cs.c
index 5da99da3..8986d7b7 100644
--- a/lib/unictype/categ_Cs.c
+++ b/lib/unictype/categ_Cs.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_L.c b/lib/unictype/categ_L.c
index bcfd100f..22056433 100644
--- a/lib/unictype/categ_L.c
+++ b/lib/unictype/categ_L.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_LC.c b/lib/unictype/categ_LC.c
index fb9f85f6..3cfef936 100644
--- a/lib/unictype/categ_LC.c
+++ b/lib/unictype/categ_LC.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/categ_Ll.c b/lib/unictype/categ_Ll.c
index 712c7c3b..80c456b1 100644
--- a/lib/unictype/categ_Ll.c
+++ b/lib/unictype/categ_Ll.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Lm.c b/lib/unictype/categ_Lm.c
index 8ed12659..ba104284 100644
--- a/lib/unictype/categ_Lm.c
+++ b/lib/unictype/categ_Lm.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Lo.c b/lib/unictype/categ_Lo.c
index 279c6ba7..e01c1dc2 100644
--- a/lib/unictype/categ_Lo.c
+++ b/lib/unictype/categ_Lo.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Lt.c b/lib/unictype/categ_Lt.c
index 143da5cb..572306ab 100644
--- a/lib/unictype/categ_Lt.c
+++ b/lib/unictype/categ_Lt.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Lu.c b/lib/unictype/categ_Lu.c
index cb744f37..aa349e6c 100644
--- a/lib/unictype/categ_Lu.c
+++ b/lib/unictype/categ_Lu.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_M.c b/lib/unictype/categ_M.c
index 475e2c99..4d2ef72f 100644
--- a/lib/unictype/categ_M.c
+++ b/lib/unictype/categ_M.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/categ_Mc.c b/lib/unictype/categ_Mc.c
index d5092726..564dac56 100644
--- a/lib/unictype/categ_Mc.c
+++ b/lib/unictype/categ_Mc.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Me.c b/lib/unictype/categ_Me.c
index 5cb5c405..245839cb 100644
--- a/lib/unictype/categ_Me.c
+++ b/lib/unictype/categ_Me.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Mn.c b/lib/unictype/categ_Mn.c
index 1ef67222..9068a7e6 100644
--- a/lib/unictype/categ_Mn.c
+++ b/lib/unictype/categ_Mn.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_N.c b/lib/unictype/categ_N.c
index a9a8b989..709121c4 100644
--- a/lib/unictype/categ_N.c
+++ b/lib/unictype/categ_N.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Nd.c b/lib/unictype/categ_Nd.c
index d48d5d3b..dca1c2a3 100644
--- a/lib/unictype/categ_Nd.c
+++ b/lib/unictype/categ_Nd.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Nl.c b/lib/unictype/categ_Nl.c
index a0ee7cef..7f9f80e3 100644
--- a/lib/unictype/categ_Nl.c
+++ b/lib/unictype/categ_Nl.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_No.c b/lib/unictype/categ_No.c
index 5d6f973d..d858650b 100644
--- a/lib/unictype/categ_No.c
+++ b/lib/unictype/categ_No.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_P.c b/lib/unictype/categ_P.c
index fcf212b6..bdf53f9d 100644
--- a/lib/unictype/categ_P.c
+++ b/lib/unictype/categ_P.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Pc.c b/lib/unictype/categ_Pc.c
index 0507bfd7..332434c0 100644
--- a/lib/unictype/categ_Pc.c
+++ b/lib/unictype/categ_Pc.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Pd.c b/lib/unictype/categ_Pd.c
index 8e76f9fd..08387dde 100644
--- a/lib/unictype/categ_Pd.c
+++ b/lib/unictype/categ_Pd.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Pe.c b/lib/unictype/categ_Pe.c
index ff0ed3a1..1f02efff 100644
--- a/lib/unictype/categ_Pe.c
+++ b/lib/unictype/categ_Pe.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Pf.c b/lib/unictype/categ_Pf.c
index 95646625..3b85ce52 100644
--- a/lib/unictype/categ_Pf.c
+++ b/lib/unictype/categ_Pf.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Pi.c b/lib/unictype/categ_Pi.c
index 6679d544..a340224a 100644
--- a/lib/unictype/categ_Pi.c
+++ b/lib/unictype/categ_Pi.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Po.c b/lib/unictype/categ_Po.c
index eff79afb..c79014a6 100644
--- a/lib/unictype/categ_Po.c
+++ b/lib/unictype/categ_Po.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Ps.c b/lib/unictype/categ_Ps.c
index d58afe87..0f626e7c 100644
--- a/lib/unictype/categ_Ps.c
+++ b/lib/unictype/categ_Ps.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_S.c b/lib/unictype/categ_S.c
index a9eb7a12..87dce451 100644
--- a/lib/unictype/categ_S.c
+++ b/lib/unictype/categ_S.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Sc.c b/lib/unictype/categ_Sc.c
index a3a11e17..9fca2c68 100644
--- a/lib/unictype/categ_Sc.c
+++ b/lib/unictype/categ_Sc.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Sk.c b/lib/unictype/categ_Sk.c
index 4340c43b..c4d240d4 100644
--- a/lib/unictype/categ_Sk.c
+++ b/lib/unictype/categ_Sk.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Sm.c b/lib/unictype/categ_Sm.c
index 59872c77..888e082c 100644
--- a/lib/unictype/categ_Sm.c
+++ b/lib/unictype/categ_Sm.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_So.c b/lib/unictype/categ_So.c
index eb590f0f..e796965c 100644
--- a/lib/unictype/categ_So.c
+++ b/lib/unictype/categ_So.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Z.c b/lib/unictype/categ_Z.c
index 7b8ac8ad..ab996e67 100644
--- a/lib/unictype/categ_Z.c
+++ b/lib/unictype/categ_Z.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Zl.c b/lib/unictype/categ_Zl.c
index 143b10f1..7e38efac 100644
--- a/lib/unictype/categ_Zl.c
+++ b/lib/unictype/categ_Zl.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Zp.c b/lib/unictype/categ_Zp.c
index 175e740c..9ad2da11 100644
--- a/lib/unictype/categ_Zp.c
+++ b/lib/unictype/categ_Zp.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Zs.c b/lib/unictype/categ_Zs.c
index 674cad16..c40f5d0e 100644
--- a/lib/unictype/categ_Zs.c
+++ b/lib/unictype/categ_Zs.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_and.c b/lib/unictype/categ_and.c
index 35d3991e..5964f9a1 100644
--- a/lib/unictype/categ_and.c
+++ b/lib/unictype/categ_and.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
@@ -32,10 +32,7 @@ uc_general_category_t
uc_general_category_and (uc_general_category_t category1,
uc_general_category_t category2)
{
- uint32_t bitmask;
- uc_general_category_t result;
-
- bitmask = category1.bitmask & category2.bitmask;
+ uint32_t bitmask = category1.bitmask & category2.bitmask;
if (bitmask == category1.bitmask)
return category1;
@@ -46,6 +43,7 @@ uc_general_category_and (uc_general_category_t category1,
if (bitmask == 0)
return _UC_CATEGORY_NONE;
+ uc_general_category_t result;
result.bitmask = bitmask;
result.generic = 1;
result.lookup.lookup_fn = &uc_is_general_category_withtable;
diff --git a/lib/unictype/categ_and_not.c b/lib/unictype/categ_and_not.c
index d771de1b..25c37a5b 100644
--- a/lib/unictype/categ_and_not.c
+++ b/lib/unictype/categ_and_not.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
@@ -32,10 +32,7 @@ uc_general_category_t
uc_general_category_and_not (uc_general_category_t category1,
uc_general_category_t category2)
{
- uint32_t bitmask;
- uc_general_category_t result;
-
- bitmask = category1.bitmask & ~category2.bitmask;
+ uint32_t bitmask = category1.bitmask & ~category2.bitmask;
if (bitmask == category1.bitmask)
return category1;
@@ -43,6 +40,7 @@ uc_general_category_and_not (uc_general_category_t category1,
if (bitmask == 0)
return _UC_CATEGORY_NONE;
+ uc_general_category_t result;
result.bitmask = bitmask;
result.generic = 1;
result.lookup.lookup_fn = &uc_is_general_category_withtable;
diff --git a/lib/unictype/categ_byname.c b/lib/unictype/categ_byname.c
index cb612386..a4e0e4f1 100644
--- a/lib/unictype/categ_byname.c
+++ b/lib/unictype/categ_byname.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -81,13 +81,10 @@ enum
uc_general_category_t
uc_general_category_byname (const char *category_name)
{
- size_t len;
-
- len = strlen (category_name);
+ size_t 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 ' '. */
{
@@ -108,7 +105,8 @@ uc_general_category_byname (const char *category_name)
/* Here q == buf + len. */
/* Do a hash table lookup, with case-insensitive comparison. */
- found = uc_general_category_lookup (buf, len);
+ const struct named_category *found =
+ uc_general_category_lookup (buf, len);
if (found != NULL)
/* Use a 'switch' statement here, because a table would introduce
load-time relocations. */
diff --git a/lib/unictype/categ_byname.gperf b/lib/unictype/categ_byname.gperf
index fd30e80e..5197c65a 100644
--- a/lib/unictype/categ_byname.gperf
+++ b/lib/unictype/categ_byname.gperf
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unictype/categ_byname.h b/lib/unictype/categ_byname.h
index 09c1b683..df2ed854 100644
--- a/lib/unictype/categ_byname.h
+++ b/lib/unictype/categ_byname.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 unictype/categ_byname.gperf */
/* Computed positions: -k'1-2,7,$' */
@@ -125,9 +125,9 @@ general_category_hash (register const char *str, register size_t len)
{
default:
hval += asso_values[(unsigned char)str[6]];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -137,9 +137,9 @@ general_category_hash (register const char *str, register size_t len)
case 3:
case 2:
hval += asso_values[(unsigned char)str[1]];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -364,6 +364,10 @@ static const struct general_category_stringpool_t general_category_stringpool_co
};
#define general_category_stringpool ((const char *) &general_category_stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct named_category general_category_names[] =
{
{-1},
@@ -602,6 +606,9 @@ static const struct named_category general_category_names[] =
#line 93 "unictype/categ_byname.gperf"
{(int)(size_t)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str150, UC_CATEGORY_INDEX_Me}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
static const struct named_category *
uc_general_category_lookup (register const char *str, register size_t len)
@@ -622,5 +629,5 @@ uc_general_category_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct named_category *) 0;
}
diff --git a/lib/unictype/categ_longname.c b/lib/unictype/categ_longname.c
index e2936328..7ef3d520 100644
--- a/lib/unictype/categ_longname.c
+++ b/lib/unictype/categ_longname.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/categ_name.c b/lib/unictype/categ_name.c
index e0679a81..1e522c64 100644
--- a/lib/unictype/categ_name.c
+++ b/lib/unictype/categ_name.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_none.c b/lib/unictype/categ_none.c
index 8b66d380..499cd57e 100644
--- a/lib/unictype/categ_none.c
+++ b/lib/unictype/categ_none.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/categ_of.c b/lib/unictype/categ_of.c
index 0fe94567..12088601 100644
--- a/lib/unictype/categ_of.c
+++ b/lib/unictype/categ_of.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
@@ -68,10 +68,10 @@ uc_general_category_t
uc_general_category (ucs4_t uc)
{
int bit = lookup_withtable (uc);
- uc_general_category_t result;
if (bit >= 0)
{
+ uc_general_category_t result;
result.bitmask = 1 << bit;
result.generic = 1;
result.lookup.lookup_fn = &uc_is_general_category_withtable;
diff --git a/lib/unictype/categ_or.c b/lib/unictype/categ_or.c
index 89c3f922..1d544483 100644
--- a/lib/unictype/categ_or.c
+++ b/lib/unictype/categ_or.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
@@ -32,10 +32,7 @@ uc_general_category_t
uc_general_category_or (uc_general_category_t category1,
uc_general_category_t category2)
{
- uint32_t bitmask;
- uc_general_category_t result;
-
- bitmask = category1.bitmask | category2.bitmask;
+ uint32_t bitmask = category1.bitmask | category2.bitmask;
if (bitmask == category1.bitmask)
return category1;
@@ -43,6 +40,7 @@ uc_general_category_or (uc_general_category_t category1,
if (bitmask == category2.bitmask)
return category2;
+ uc_general_category_t result;
result.bitmask = bitmask;
result.generic = 1;
result.lookup.lookup_fn = &uc_is_general_category_withtable;
diff --git a/lib/unictype/categ_test.c b/lib/unictype/categ_test.c
index 8e48123f..72a3b771 100644
--- a/lib/unictype/categ_test.c
+++ b/lib/unictype/categ_test.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/combiningclass.c b/lib/unictype/combiningclass.c
index 9db1d13c..8d7588bf 100644
--- a/lib/unictype/combiningclass.c
+++ b/lib/unictype/combiningclass.c
@@ -1,5 +1,5 @@
/* Combining classes of Unicode characters.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/combiningclass_byname.c b/lib/unictype/combiningclass_byname.c
index ee162607..4065fea1 100644
--- a/lib/unictype/combiningclass_byname.c
+++ b/lib/unictype/combiningclass_byname.c
@@ -1,5 +1,5 @@
/* Canonical combining classes of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
@@ -35,13 +35,10 @@
int
uc_combining_class_byname (const char *ccc_name)
{
- size_t len;
-
- len = strlen (ccc_name);
+ size_t 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 ' '. */
{
@@ -62,7 +59,8 @@ uc_combining_class_byname (const char *ccc_name)
/* Here q == buf + len. */
/* Do a hash table lookup, with case-insensitive comparison. */
- found = uc_combining_class_lookup (buf, len);
+ const struct named_combining_class *found =
+ uc_combining_class_lookup (buf, len);
if (found != NULL)
return found->combining_class;
}
diff --git a/lib/unictype/combiningclass_byname.gperf b/lib/unictype/combiningclass_byname.gperf
index b8526996..0a2c03e5 100644
--- a/lib/unictype/combiningclass_byname.gperf
+++ b/lib/unictype/combiningclass_byname.gperf
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unictype/combiningclass_byname.h b/lib/unictype/combiningclass_byname.h
index 2323383b..d41adba5 100644
--- a/lib/unictype/combiningclass_byname.h
+++ b/lib/unictype/combiningclass_byname.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 unictype/combiningclass_byname.gperf */
/* Computed positions: -k'1,6,$' */
@@ -125,9 +125,9 @@ combining_class_hash (register const char *str, register size_t len)
{
default:
hval += asso_values[(unsigned char)str[5]];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -256,6 +256,10 @@ static const struct combining_class_stringpool_t combining_class_stringpool_cont
};
#define combining_class_stringpool ((const char *) &combining_class_stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct named_combining_class combining_class_names[] =
{
{-1}, {-1}, {-1},
@@ -374,6 +378,9 @@ static const struct named_combining_class combining_class_names[] =
#line 84 "unictype/combiningclass_byname.gperf"
{(int)(size_t)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str66, UC_CCC_DB}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
static const struct named_combining_class *
uc_combining_class_lookup (register const char *str, register size_t len)
@@ -394,5 +401,5 @@ uc_combining_class_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct named_combining_class *) 0;
}
diff --git a/lib/unictype/combiningclass_longname.c b/lib/unictype/combiningclass_longname.c
index ae343b6f..4f01ce5d 100644
--- a/lib/unictype/combiningclass_longname.c
+++ b/lib/unictype/combiningclass_longname.c
@@ -1,5 +1,5 @@
/* Canonical combining classes of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
@@ -118,7 +118,6 @@ 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)
diff --git a/lib/unictype/combiningclass_name.c b/lib/unictype/combiningclass_name.c
index fdc0cc00..5291be8d 100644
--- a/lib/unictype/combiningclass_name.c
+++ b/lib/unictype/combiningclass_name.c
@@ -1,5 +1,5 @@
/* Canonical combining classes of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
@@ -118,7 +118,6 @@ 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)
diff --git a/lib/unictype/ctype_alnum.c b/lib/unictype/ctype_alnum.c
index f58f4310..7cd9157a 100644
--- a/lib/unictype/ctype_alnum.c
+++ b/lib/unictype/ctype_alnum.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_alpha.c b/lib/unictype/ctype_alpha.c
index c422fec6..9beeb03f 100644
--- a/lib/unictype/ctype_alpha.c
+++ b/lib/unictype/ctype_alpha.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_blank.c b/lib/unictype/ctype_blank.c
index 25a08013..e14cc44e 100644
--- a/lib/unictype/ctype_blank.c
+++ b/lib/unictype/ctype_blank.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_cntrl.c b/lib/unictype/ctype_cntrl.c
index eb7467dd..1c5cefa1 100644
--- a/lib/unictype/ctype_cntrl.c
+++ b/lib/unictype/ctype_cntrl.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_digit.c b/lib/unictype/ctype_digit.c
index a82b3bb0..71d68807 100644
--- a/lib/unictype/ctype_digit.c
+++ b/lib/unictype/ctype_digit.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_graph.c b/lib/unictype/ctype_graph.c
index 2c41c794..92701700 100644
--- a/lib/unictype/ctype_graph.c
+++ b/lib/unictype/ctype_graph.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_lower.c b/lib/unictype/ctype_lower.c
index 99a05e09..b113106f 100644
--- a/lib/unictype/ctype_lower.c
+++ b/lib/unictype/ctype_lower.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_print.c b/lib/unictype/ctype_print.c
index 0197d496..f689b0ad 100644
--- a/lib/unictype/ctype_print.c
+++ b/lib/unictype/ctype_print.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_punct.c b/lib/unictype/ctype_punct.c
index f2d647de..3c30ba70 100644
--- a/lib/unictype/ctype_punct.c
+++ b/lib/unictype/ctype_punct.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_space.c b/lib/unictype/ctype_space.c
index 4c032398..ee9ce3fd 100644
--- a/lib/unictype/ctype_space.c
+++ b/lib/unictype/ctype_space.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_upper.c b/lib/unictype/ctype_upper.c
index af2c3fe6..31210804 100644
--- a/lib/unictype/ctype_upper.c
+++ b/lib/unictype/ctype_upper.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_xdigit.c b/lib/unictype/ctype_xdigit.c
index ee4b2ea4..bea31a1b 100644
--- a/lib/unictype/ctype_xdigit.c
+++ b/lib/unictype/ctype_xdigit.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/decdigit.c b/lib/unictype/decdigit.c
index d8fa77b7..45d7a993 100644
--- a/lib/unictype/decdigit.c
+++ b/lib/unictype/decdigit.c
@@ -1,5 +1,5 @@
/* Values of decimal digit Unicode characters.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/digit.c b/lib/unictype/digit.c
index 346a4a2c..76f6a5f2 100644
--- a/lib/unictype/digit.c
+++ b/lib/unictype/digit.c
@@ -1,5 +1,5 @@
/* Values of digit Unicode characters.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/identsyntaxmap.h b/lib/unictype/identsyntaxmap.h
index c5a0d2a1..9bfb5621 100644
--- a/lib/unictype/identsyntaxmap.h
+++ b/lib/unictype/identsyntaxmap.h
@@ -1,5 +1,5 @@
/* Three-level bitmap lookup.
- Copyright (C) 2000-2002, 2005-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2000-2002, 2005-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2000-2002.
This file is free software.
diff --git a/lib/unictype/incb_byname.c b/lib/unictype/incb_byname.c
index 09ffd218..a9edbfec 100644
--- a/lib/unictype/incb_byname.c
+++ b/lib/unictype/incb_byname.c
@@ -1,5 +1,5 @@
/* Indic_Conjunct_Break values.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2024.
This file is free software.
@@ -35,13 +35,10 @@
int
uc_indic_conjunct_break_byname (const char *indic_conjunct_break_name)
{
- size_t len;
-
- len = strlen (indic_conjunct_break_name);
+ size_t len = strlen (indic_conjunct_break_name);
if (len <= MAX_WORD_LENGTH)
{
char buf[MAX_WORD_LENGTH + 1];
- const struct named_indic_conjunct_break *found;
/* Copy indic_conjunct_break_name into buf, converting '_' and '-'
to ' '. */
@@ -63,7 +60,8 @@ uc_indic_conjunct_break_byname (const char *indic_conjunct_break_name)
/* Here q == buf + len. */
/* Do a hash table lookup, with case-insensitive comparison. */
- found = uc_indic_conjunct_break_lookup (buf, len);
+ const struct named_indic_conjunct_break *found =
+ uc_indic_conjunct_break_lookup (buf, len);
if (found != NULL)
return found->indic_conjunct_break;
}
diff --git a/lib/unictype/incb_byname.gperf b/lib/unictype/incb_byname.gperf
index 0bded354..5e7c912e 100644
--- a/lib/unictype/incb_byname.gperf
+++ b/lib/unictype/incb_byname.gperf
@@ -1,5 +1,5 @@
/* Indic_Conjunct_Break values.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unictype/incb_byname.h b/lib/unictype/incb_byname.h
index 20df45e3..5146c546 100644
--- a/lib/unictype/incb_byname.h
+++ b/lib/unictype/incb_byname.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 unictype/incb_byname.gperf */
/* Computed positions: -k'1' */
@@ -138,6 +138,10 @@ static const struct indic_conjunct_break_stringpool_t indic_conjunct_break_strin
};
#define indic_conjunct_break_stringpool ((const char *) &indic_conjunct_break_stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct named_indic_conjunct_break indic_conjunct_break_names[] =
{
{-1}, {-1}, {-1}, {-1},
@@ -152,6 +156,9 @@ static const struct named_indic_conjunct_break indic_conjunct_break_names[] =
#line 38 "unictype/incb_byname.gperf"
{(int)(size_t)&((struct indic_conjunct_break_stringpool_t *)0)->indic_conjunct_break_stringpool_str9, UC_INDIC_CONJUNCT_BREAK_CONSONANT}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
static const struct named_indic_conjunct_break *
uc_indic_conjunct_break_lookup (register const char *str, register size_t len)
@@ -172,5 +179,5 @@ uc_indic_conjunct_break_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct named_indic_conjunct_break *) 0;
}
diff --git a/lib/unictype/incb_name.c b/lib/unictype/incb_name.c
index 46a190fc..8651a42f 100644
--- a/lib/unictype/incb_name.c
+++ b/lib/unictype/incb_name.c
@@ -1,5 +1,5 @@
/* Indic_Conjunct_Break values.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2024.
This file is free software.
diff --git a/lib/unictype/incb_name.h b/lib/unictype/incb_name.h
index baa10c8f..47c1636c 100644
--- a/lib/unictype/incb_name.h
+++ b/lib/unictype/incb_name.h
@@ -1,5 +1,5 @@
/* Indic_Conjunct_Break values.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2024.
This file is free software.
diff --git a/lib/unictype/incb_of.c b/lib/unictype/incb_of.c
index 665dccd1..01d7fd82 100644
--- a/lib/unictype/incb_of.c
+++ b/lib/unictype/incb_of.c
@@ -1,5 +1,5 @@
/* Indic_Conjunct_Break attribute of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2024.
This file is free software.
diff --git a/lib/unictype/joininggroup_byname.c b/lib/unictype/joininggroup_byname.c
index 00aaaaee..54713236 100644
--- a/lib/unictype/joininggroup_byname.c
+++ b/lib/unictype/joininggroup_byname.c
@@ -1,5 +1,5 @@
/* Arabic joining group of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
@@ -35,13 +35,10 @@
int
uc_joining_group_byname (const char *joining_group_name)
{
- size_t len;
-
- len = strlen (joining_group_name);
+ size_t 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 ' '. */
{
@@ -62,7 +59,8 @@ uc_joining_group_byname (const char *joining_group_name)
/* Here q == buf + len. */
/* Do a hash table lookup, with case-insensitive comparison. */
- found = uc_joining_group_lookup (buf, len);
+ const struct named_joining_group *found =
+ uc_joining_group_lookup (buf, len);
if (found != NULL)
return found->joining_group;
}
diff --git a/lib/unictype/joininggroup_byname.gperf b/lib/unictype/joininggroup_byname.gperf
index d0e9f7af..825a792c 100644
--- a/lib/unictype/joininggroup_byname.gperf
+++ b/lib/unictype/joininggroup_byname.gperf
@@ -1,5 +1,5 @@
/* Arabic joining group of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unictype/joininggroup_name.c b/lib/unictype/joininggroup_name.c
index d01e659d..f90d41f3 100644
--- a/lib/unictype/joininggroup_name.c
+++ b/lib/unictype/joininggroup_name.c
@@ -1,5 +1,5 @@
/* Arabic joining group of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/joininggroup_name.h b/lib/unictype/joininggroup_name.h
index 4465652e..17261f52 100644
--- a/lib/unictype/joininggroup_name.h
+++ b/lib/unictype/joininggroup_name.h
@@ -1,5 +1,5 @@
/* Arabic joining group of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/joininggroup_of.c b/lib/unictype/joininggroup_of.c
index ef51aec0..7343f2d7 100644
--- a/lib/unictype/joininggroup_of.c
+++ b/lib/unictype/joininggroup_of.c
@@ -1,5 +1,5 @@
/* Arabic joining group of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/joiningtype_byname.c b/lib/unictype/joiningtype_byname.c
index 055869cc..e1589784 100644
--- a/lib/unictype/joiningtype_byname.c
+++ b/lib/unictype/joiningtype_byname.c
@@ -1,5 +1,5 @@
/* Arabic joining type of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
@@ -35,13 +35,10 @@
int
uc_joining_type_byname (const char *joining_type_name)
{
- size_t len;
-
- len = strlen (joining_type_name);
+ size_t 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 ' '. */
{
@@ -62,7 +59,8 @@ uc_joining_type_byname (const char *joining_type_name)
/* Here q == buf + len. */
/* Do a hash table lookup, with case-insensitive comparison. */
- found = uc_joining_type_lookup (buf, len);
+ const struct named_joining_type *found =
+ uc_joining_type_lookup (buf, len);
if (found != NULL)
return found->joining_type;
}
diff --git a/lib/unictype/joiningtype_byname.gperf b/lib/unictype/joiningtype_byname.gperf
index 9bb121dc..e897765a 100644
--- a/lib/unictype/joiningtype_byname.gperf
+++ b/lib/unictype/joiningtype_byname.gperf
@@ -1,5 +1,5 @@
/* Arabic joining type of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unictype/joiningtype_byname.h b/lib/unictype/joiningtype_byname.h
index 8b3cd205..2a1dd898 100644
--- a/lib/unictype/joiningtype_byname.h
+++ b/lib/unictype/joiningtype_byname.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 unictype/joiningtype_byname.gperf */
/* Computed positions: -k'1' */
@@ -164,6 +164,10 @@ static const struct joining_type_stringpool_t joining_type_stringpool_contents =
};
#define joining_type_stringpool ((const char *) &joining_type_stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct named_joining_type joining_type_names[] =
{
{-1},
@@ -204,6 +208,9 @@ static const struct named_joining_type joining_type_names[] =
#line 43 "unictype/joiningtype_byname.gperf"
{(int)(size_t)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str21, UC_JOINING_TYPE_C}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
static const struct named_joining_type *
uc_joining_type_lookup (register const char *str, register size_t len)
@@ -224,5 +231,5 @@ uc_joining_type_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct named_joining_type *) 0;
}
diff --git a/lib/unictype/joiningtype_longname.c b/lib/unictype/joiningtype_longname.c
index 80c23627..c011bd97 100644
--- a/lib/unictype/joiningtype_longname.c
+++ b/lib/unictype/joiningtype_longname.c
@@ -1,5 +1,5 @@
/* Arabic joining type of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/joiningtype_name.c b/lib/unictype/joiningtype_name.c
index 304e2f08..f2788b92 100644
--- a/lib/unictype/joiningtype_name.c
+++ b/lib/unictype/joiningtype_name.c
@@ -1,5 +1,5 @@
/* Arabic joining type of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/joiningtype_of.c b/lib/unictype/joiningtype_of.c
index 251ae5ec..9e7a5162 100644
--- a/lib/unictype/joiningtype_of.c
+++ b/lib/unictype/joiningtype_of.c
@@ -1,5 +1,5 @@
/* Arabic joining type of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/mirror.c b/lib/unictype/mirror.c
index d361fc79..2fd81d0e 100644
--- a/lib/unictype/mirror.c
+++ b/lib/unictype/mirror.c
@@ -1,5 +1,5 @@
/* Mirrored Unicode characters.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/numeric.c b/lib/unictype/numeric.c
index 0f342efc..24e1a0e6 100644
--- a/lib/unictype/numeric.c
+++ b/lib/unictype/numeric.c
@@ -1,5 +1,5 @@
/* Values of numeric Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_alphabetic.c b/lib/unictype/pr_alphabetic.c
index 0146d8a8..06276c8e 100644
--- a/lib/unictype/pr_alphabetic.c
+++ b/lib/unictype/pr_alphabetic.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_ascii_hex_digit.c b/lib/unictype/pr_ascii_hex_digit.c
index d0c8b855..4733b8c3 100644
--- a/lib/unictype/pr_ascii_hex_digit.c
+++ b/lib/unictype/pr_ascii_hex_digit.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_arabic_digit.c b/lib/unictype/pr_bidi_arabic_digit.c
index b3bd9b08..c15816db 100644
--- a/lib/unictype/pr_bidi_arabic_digit.c
+++ b/lib/unictype/pr_bidi_arabic_digit.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_arabic_right_to_left.c b/lib/unictype/pr_bidi_arabic_right_to_left.c
index 43ba744a..71519154 100644
--- a/lib/unictype/pr_bidi_arabic_right_to_left.c
+++ b/lib/unictype/pr_bidi_arabic_right_to_left.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_block_separator.c b/lib/unictype/pr_bidi_block_separator.c
index 54733d90..f4de91e6 100644
--- a/lib/unictype/pr_bidi_block_separator.c
+++ b/lib/unictype/pr_bidi_block_separator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_boundary_neutral.c b/lib/unictype/pr_bidi_boundary_neutral.c
index d642ff7a..da86be1c 100644
--- a/lib/unictype/pr_bidi_boundary_neutral.c
+++ b/lib/unictype/pr_bidi_boundary_neutral.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_common_separator.c b/lib/unictype/pr_bidi_common_separator.c
index 93c99bed..caffcc7b 100644
--- a/lib/unictype/pr_bidi_common_separator.c
+++ b/lib/unictype/pr_bidi_common_separator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_control.c b/lib/unictype/pr_bidi_control.c
index 3311c32e..10c70e3d 100644
--- a/lib/unictype/pr_bidi_control.c
+++ b/lib/unictype/pr_bidi_control.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_embedding_or_override.c b/lib/unictype/pr_bidi_embedding_or_override.c
index af5e7571..4447bad4 100644
--- a/lib/unictype/pr_bidi_embedding_or_override.c
+++ b/lib/unictype/pr_bidi_embedding_or_override.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_eur_num_separator.c b/lib/unictype/pr_bidi_eur_num_separator.c
index 9f96ea77..bf255ad6 100644
--- a/lib/unictype/pr_bidi_eur_num_separator.c
+++ b/lib/unictype/pr_bidi_eur_num_separator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_eur_num_terminator.c b/lib/unictype/pr_bidi_eur_num_terminator.c
index c29b9a38..506f4e35 100644
--- a/lib/unictype/pr_bidi_eur_num_terminator.c
+++ b/lib/unictype/pr_bidi_eur_num_terminator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_european_digit.c b/lib/unictype/pr_bidi_european_digit.c
index 581d9af9..fc206b2f 100644
--- a/lib/unictype/pr_bidi_european_digit.c
+++ b/lib/unictype/pr_bidi_european_digit.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_hebrew_right_to_left.c b/lib/unictype/pr_bidi_hebrew_right_to_left.c
index 7e1dcbcb..fd0d5ed4 100644
--- a/lib/unictype/pr_bidi_hebrew_right_to_left.c
+++ b/lib/unictype/pr_bidi_hebrew_right_to_left.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_left_to_right.c b/lib/unictype/pr_bidi_left_to_right.c
index d802385a..588015df 100644
--- a/lib/unictype/pr_bidi_left_to_right.c
+++ b/lib/unictype/pr_bidi_left_to_right.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_non_spacing_mark.c b/lib/unictype/pr_bidi_non_spacing_mark.c
index c26f7ba7..aa8a18c9 100644
--- a/lib/unictype/pr_bidi_non_spacing_mark.c
+++ b/lib/unictype/pr_bidi_non_spacing_mark.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_other_neutral.c b/lib/unictype/pr_bidi_other_neutral.c
index 1a7f30cd..4c251a7d 100644
--- a/lib/unictype/pr_bidi_other_neutral.c
+++ b/lib/unictype/pr_bidi_other_neutral.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_pdf.c b/lib/unictype/pr_bidi_pdf.c
index 7e329f50..77073608 100644
--- a/lib/unictype/pr_bidi_pdf.c
+++ b/lib/unictype/pr_bidi_pdf.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_segment_separator.c b/lib/unictype/pr_bidi_segment_separator.c
index 18c65a2b..28f05241 100644
--- a/lib/unictype/pr_bidi_segment_separator.c
+++ b/lib/unictype/pr_bidi_segment_separator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_whitespace.c b/lib/unictype/pr_bidi_whitespace.c
index fdee4c04..f6d6b0d3 100644
--- a/lib/unictype/pr_bidi_whitespace.c
+++ b/lib/unictype/pr_bidi_whitespace.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_byname.c b/lib/unictype/pr_byname.c
index 459ab382..bd94ff91 100644
--- a/lib/unictype/pr_byname.c
+++ b/lib/unictype/pr_byname.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2007, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
@@ -146,27 +146,29 @@ uc_property_t
uc_property_byname (const char *property_name)
{
char buf[MAX_WORD_LENGTH + 1];
- const char *cp;
char *bp;
- unsigned int count;
- const struct named_property *found;
- for (cp = property_name, bp = buf, count = MAX_WORD_LENGTH + 1; ; cp++, bp++)
- {
- unsigned char c = (unsigned char) *cp;
- if (c >= 0x80)
- goto invalid;
- if (c >= 'A' && c <= 'Z')
- c += 'a' - 'A';
- else if (c == ' ' || c == '-')
- c = '_';
- *bp = c;
- if (c == '\0')
- break;
- if (--count == 0)
- goto invalid;
- }
- found = uc_property_lookup (buf, bp - buf);
+ {
+ const char *cp;
+ unsigned int count;
+ for (cp = property_name, bp = buf, count = MAX_WORD_LENGTH + 1; ; cp++, bp++)
+ {
+ unsigned char c = (unsigned char) *cp;
+ if (c >= 0x80)
+ goto invalid;
+ if (c >= 'A' && c <= 'Z')
+ c += 'a' - 'A';
+ else if (c == ' ' || c == '-')
+ c = '_';
+ *bp = c;
+ if (c == '\0')
+ break;
+ if (--count == 0)
+ goto invalid;
+ }
+ }
+
+ const struct named_property *found = uc_property_lookup (buf, bp - buf);
if (found != NULL)
/* Use a 'switch' statement here, because a table would introduce load-time
relocations. */
diff --git a/lib/unictype/pr_byname.gperf b/lib/unictype/pr_byname.gperf
index e3ae3764..83414a62 100644
--- a/lib/unictype/pr_byname.gperf
+++ b/lib/unictype/pr_byname.gperf
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unictype/pr_byname.h b/lib/unictype/pr_byname.h
index 92e6717d..ef1b5824 100644
--- a/lib/unictype/pr_byname.h
+++ b/lib/unictype/pr_byname.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 unictype/pr_byname.gperf */
/* Computed positions: -k'1-2,8,14,18,$' */
@@ -71,9 +71,9 @@ properties_hash (register const char *str, register size_t len)
{
default:
hval += asso_values[(unsigned char)str[17]];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -82,9 +82,9 @@ properties_hash (register const char *str, register size_t len)
case 15:
case 14:
hval += asso_values[(unsigned char)str[13]];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -95,9 +95,9 @@ properties_hash (register const char *str, register size_t len)
case 9:
case 8:
hval += asso_values[(unsigned char)str[7]];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -108,9 +108,9 @@ properties_hash (register const char *str, register size_t len)
case 3:
case 2:
hval += asso_values[(unsigned char)str[1]];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -567,6 +567,10 @@ static const struct properties_stringpool_t properties_stringpool_contents =
};
#define properties_stringpool ((const char *) &properties_stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct named_property properties[] =
{
{-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
@@ -1108,6 +1112,9 @@ static const struct named_property properties[] =
#line 92 "unictype/pr_byname.gperf"
{(int)(size_t)&((struct properties_stringpool_t *)0)->properties_stringpool_str565, UC_PROPERTY_INDEX_CHANGES_WHEN_CASEMAPPED}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
static const struct named_property *
uc_property_lookup (register const char *str, register size_t len)
@@ -1128,5 +1135,5 @@ uc_property_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct named_property *) 0;
}
diff --git a/lib/unictype/pr_case_ignorable.c b/lib/unictype/pr_case_ignorable.c
index 91fe494e..32beada9 100644
--- a/lib/unictype/pr_case_ignorable.c
+++ b/lib/unictype/pr_case_ignorable.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/pr_cased.c b/lib/unictype/pr_cased.c
index 18c36b7f..440ffca6 100644
--- a/lib/unictype/pr_cased.c
+++ b/lib/unictype/pr_cased.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/pr_changes_when_casefolded.c b/lib/unictype/pr_changes_when_casefolded.c
index a9124405..aa7d8f68 100644
--- a/lib/unictype/pr_changes_when_casefolded.c
+++ b/lib/unictype/pr_changes_when_casefolded.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/pr_changes_when_casemapped.c b/lib/unictype/pr_changes_when_casemapped.c
index 5cb07370..2ffc5c10 100644
--- a/lib/unictype/pr_changes_when_casemapped.c
+++ b/lib/unictype/pr_changes_when_casemapped.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/pr_changes_when_lowercased.c b/lib/unictype/pr_changes_when_lowercased.c
index 9f3ca34a..978ec0b4 100644
--- a/lib/unictype/pr_changes_when_lowercased.c
+++ b/lib/unictype/pr_changes_when_lowercased.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/pr_changes_when_titlecased.c b/lib/unictype/pr_changes_when_titlecased.c
index f863bf6f..dbec7a9b 100644
--- a/lib/unictype/pr_changes_when_titlecased.c
+++ b/lib/unictype/pr_changes_when_titlecased.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/pr_changes_when_uppercased.c b/lib/unictype/pr_changes_when_uppercased.c
index 2fb546ef..14e9a249 100644
--- a/lib/unictype/pr_changes_when_uppercased.c
+++ b/lib/unictype/pr_changes_when_uppercased.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/pr_combining.c b/lib/unictype/pr_combining.c
index d1286b1a..a7843792 100644
--- a/lib/unictype/pr_combining.c
+++ b/lib/unictype/pr_combining.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_composite.c b/lib/unictype/pr_composite.c
index 21c7abc9..e86f7958 100644
--- a/lib/unictype/pr_composite.c
+++ b/lib/unictype/pr_composite.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_currency_symbol.c b/lib/unictype/pr_currency_symbol.c
index 86edb848..7285a2a3 100644
--- a/lib/unictype/pr_currency_symbol.c
+++ b/lib/unictype/pr_currency_symbol.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_dash.c b/lib/unictype/pr_dash.c
index 892686cb..c5b52871 100644
--- a/lib/unictype/pr_dash.c
+++ b/lib/unictype/pr_dash.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_decimal_digit.c b/lib/unictype/pr_decimal_digit.c
index 23106468..8acf3d20 100644
--- a/lib/unictype/pr_decimal_digit.c
+++ b/lib/unictype/pr_decimal_digit.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_default_ignorable_code_point.c b/lib/unictype/pr_default_ignorable_code_point.c
index dd3b01c7..f98890c5 100644
--- a/lib/unictype/pr_default_ignorable_code_point.c
+++ b/lib/unictype/pr_default_ignorable_code_point.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_deprecated.c b/lib/unictype/pr_deprecated.c
index 14576761..54033fb3 100644
--- a/lib/unictype/pr_deprecated.c
+++ b/lib/unictype/pr_deprecated.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_diacritic.c b/lib/unictype/pr_diacritic.c
index d31980bf..883754fc 100644
--- a/lib/unictype/pr_diacritic.c
+++ b/lib/unictype/pr_diacritic.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_emoji.c b/lib/unictype/pr_emoji.c
index b6c27000..97008d72 100644
--- a/lib/unictype/pr_emoji.c
+++ b/lib/unictype/pr_emoji.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_emoji_component.c b/lib/unictype/pr_emoji_component.c
index ea9648fe..bf50c406 100644
--- a/lib/unictype/pr_emoji_component.c
+++ b/lib/unictype/pr_emoji_component.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_emoji_modifier.c b/lib/unictype/pr_emoji_modifier.c
index 84601e1a..ce4c7c2c 100644
--- a/lib/unictype/pr_emoji_modifier.c
+++ b/lib/unictype/pr_emoji_modifier.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_emoji_modifier_base.c b/lib/unictype/pr_emoji_modifier_base.c
index 20e886c2..9aae4d9f 100644
--- a/lib/unictype/pr_emoji_modifier_base.c
+++ b/lib/unictype/pr_emoji_modifier_base.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_emoji_presentation.c b/lib/unictype/pr_emoji_presentation.c
index 33a26c63..0e295d83 100644
--- a/lib/unictype/pr_emoji_presentation.c
+++ b/lib/unictype/pr_emoji_presentation.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_extended_pictographic.c b/lib/unictype/pr_extended_pictographic.c
index 400413e7..e75789cd 100644
--- a/lib/unictype/pr_extended_pictographic.c
+++ b/lib/unictype/pr_extended_pictographic.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_extender.c b/lib/unictype/pr_extender.c
index a0d73654..8b88a5db 100644
--- a/lib/unictype/pr_extender.c
+++ b/lib/unictype/pr_extender.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_format_control.c b/lib/unictype/pr_format_control.c
index 8461ce77..aec5fc0c 100644
--- a/lib/unictype/pr_format_control.c
+++ b/lib/unictype/pr_format_control.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_grapheme_base.c b/lib/unictype/pr_grapheme_base.c
index 973c2d38..020271ef 100644
--- a/lib/unictype/pr_grapheme_base.c
+++ b/lib/unictype/pr_grapheme_base.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_grapheme_extend.c b/lib/unictype/pr_grapheme_extend.c
index 202adab4..cf5d6139 100644
--- a/lib/unictype/pr_grapheme_extend.c
+++ b/lib/unictype/pr_grapheme_extend.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_grapheme_link.c b/lib/unictype/pr_grapheme_link.c
index 6439e6e5..1e273eb9 100644
--- a/lib/unictype/pr_grapheme_link.c
+++ b/lib/unictype/pr_grapheme_link.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_hex_digit.c b/lib/unictype/pr_hex_digit.c
index 4e6b856a..5cd26cfb 100644
--- a/lib/unictype/pr_hex_digit.c
+++ b/lib/unictype/pr_hex_digit.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_hyphen.c b/lib/unictype/pr_hyphen.c
index af86e4a8..e630a3a1 100644
--- a/lib/unictype/pr_hyphen.c
+++ b/lib/unictype/pr_hyphen.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_id_compat_math_continue.c b/lib/unictype/pr_id_compat_math_continue.c
index 9fdfd56d..f50f399d 100644
--- a/lib/unictype/pr_id_compat_math_continue.c
+++ b/lib/unictype/pr_id_compat_math_continue.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_id_compat_math_start.c b/lib/unictype/pr_id_compat_math_start.c
index 05ab514a..71e3725c 100644
--- a/lib/unictype/pr_id_compat_math_start.c
+++ b/lib/unictype/pr_id_compat_math_start.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_id_continue.c b/lib/unictype/pr_id_continue.c
index b59953ed..056fa58d 100644
--- a/lib/unictype/pr_id_continue.c
+++ b/lib/unictype/pr_id_continue.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_id_start.c b/lib/unictype/pr_id_start.c
index 30669490..2bd0a85d 100644
--- a/lib/unictype/pr_id_start.c
+++ b/lib/unictype/pr_id_start.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_ideographic.c b/lib/unictype/pr_ideographic.c
index ba07d20f..b7e1608a 100644
--- a/lib/unictype/pr_ideographic.c
+++ b/lib/unictype/pr_ideographic.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_ids_binary_operator.c b/lib/unictype/pr_ids_binary_operator.c
index e6481c18..3a4c5021 100644
--- a/lib/unictype/pr_ids_binary_operator.c
+++ b/lib/unictype/pr_ids_binary_operator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_ids_trinary_operator.c b/lib/unictype/pr_ids_trinary_operator.c
index bb9bf65a..13b5cab4 100644
--- a/lib/unictype/pr_ids_trinary_operator.c
+++ b/lib/unictype/pr_ids_trinary_operator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_ids_unary_operator.c b/lib/unictype/pr_ids_unary_operator.c
index 09e058de..54cd35d4 100644
--- a/lib/unictype/pr_ids_unary_operator.c
+++ b/lib/unictype/pr_ids_unary_operator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_ignorable_control.c b/lib/unictype/pr_ignorable_control.c
index 926732e6..63f6801f 100644
--- a/lib/unictype/pr_ignorable_control.c
+++ b/lib/unictype/pr_ignorable_control.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_iso_control.c b/lib/unictype/pr_iso_control.c
index c914aac6..51fb399d 100644
--- a/lib/unictype/pr_iso_control.c
+++ b/lib/unictype/pr_iso_control.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_join_control.c b/lib/unictype/pr_join_control.c
index dd986955..4d5e11a9 100644
--- a/lib/unictype/pr_join_control.c
+++ b/lib/unictype/pr_join_control.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_left_of_pair.c b/lib/unictype/pr_left_of_pair.c
index 9abbebdb..e9376a2c 100644
--- a/lib/unictype/pr_left_of_pair.c
+++ b/lib/unictype/pr_left_of_pair.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_line_separator.c b/lib/unictype/pr_line_separator.c
index 409db55a..a0848ece 100644
--- a/lib/unictype/pr_line_separator.c
+++ b/lib/unictype/pr_line_separator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_logical_order_exception.c b/lib/unictype/pr_logical_order_exception.c
index 1d4f0993..0456aa99 100644
--- a/lib/unictype/pr_logical_order_exception.c
+++ b/lib/unictype/pr_logical_order_exception.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_lowercase.c b/lib/unictype/pr_lowercase.c
index 9b468120..b83e9732 100644
--- a/lib/unictype/pr_lowercase.c
+++ b/lib/unictype/pr_lowercase.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_math.c b/lib/unictype/pr_math.c
index 1219656c..678ac30e 100644
--- a/lib/unictype/pr_math.c
+++ b/lib/unictype/pr_math.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_modifier_combining_mark.c b/lib/unictype/pr_modifier_combining_mark.c
index 0dda23be..5b69ceda 100644
--- a/lib/unictype/pr_modifier_combining_mark.c
+++ b/lib/unictype/pr_modifier_combining_mark.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_non_break.c b/lib/unictype/pr_non_break.c
index c8c6e138..597e38d8 100644
--- a/lib/unictype/pr_non_break.c
+++ b/lib/unictype/pr_non_break.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_not_a_character.c b/lib/unictype/pr_not_a_character.c
index d7077580..c162a733 100644
--- a/lib/unictype/pr_not_a_character.c
+++ b/lib/unictype/pr_not_a_character.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_numeric.c b/lib/unictype/pr_numeric.c
index ca1073b1..551b8a8c 100644
--- a/lib/unictype/pr_numeric.c
+++ b/lib/unictype/pr_numeric.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_other_alphabetic.c b/lib/unictype/pr_other_alphabetic.c
index ac7ec0c0..3b83bb82 100644
--- a/lib/unictype/pr_other_alphabetic.c
+++ b/lib/unictype/pr_other_alphabetic.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_other_default_ignorable_code_point.c b/lib/unictype/pr_other_default_ignorable_code_point.c
index 730eeca1..389e1603 100644
--- a/lib/unictype/pr_other_default_ignorable_code_point.c
+++ b/lib/unictype/pr_other_default_ignorable_code_point.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_other_grapheme_extend.c b/lib/unictype/pr_other_grapheme_extend.c
index 767eb9c3..3beda856 100644
--- a/lib/unictype/pr_other_grapheme_extend.c
+++ b/lib/unictype/pr_other_grapheme_extend.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_other_id_continue.c b/lib/unictype/pr_other_id_continue.c
index f27f4ff2..50a41640 100644
--- a/lib/unictype/pr_other_id_continue.c
+++ b/lib/unictype/pr_other_id_continue.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_other_id_start.c b/lib/unictype/pr_other_id_start.c
index 8bc11d62..c710da78 100644
--- a/lib/unictype/pr_other_id_start.c
+++ b/lib/unictype/pr_other_id_start.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_other_lowercase.c b/lib/unictype/pr_other_lowercase.c
index 6055596b..2b8e39d3 100644
--- a/lib/unictype/pr_other_lowercase.c
+++ b/lib/unictype/pr_other_lowercase.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_other_math.c b/lib/unictype/pr_other_math.c
index c11054b8..d9992e59 100644
--- a/lib/unictype/pr_other_math.c
+++ b/lib/unictype/pr_other_math.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_other_uppercase.c b/lib/unictype/pr_other_uppercase.c
index 1ad97eb3..8cf935a8 100644
--- a/lib/unictype/pr_other_uppercase.c
+++ b/lib/unictype/pr_other_uppercase.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_paired_punctuation.c b/lib/unictype/pr_paired_punctuation.c
index 825eb662..67a2ef98 100644
--- a/lib/unictype/pr_paired_punctuation.c
+++ b/lib/unictype/pr_paired_punctuation.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_paragraph_separator.c b/lib/unictype/pr_paragraph_separator.c
index 9903811f..0a1f7b3c 100644
--- a/lib/unictype/pr_paragraph_separator.c
+++ b/lib/unictype/pr_paragraph_separator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_pattern_syntax.c b/lib/unictype/pr_pattern_syntax.c
index d0c1a013..86a87aec 100644
--- a/lib/unictype/pr_pattern_syntax.c
+++ b/lib/unictype/pr_pattern_syntax.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_pattern_white_space.c b/lib/unictype/pr_pattern_white_space.c
index 752c90e5..6dbac6b8 100644
--- a/lib/unictype/pr_pattern_white_space.c
+++ b/lib/unictype/pr_pattern_white_space.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_prepended_concatenation_mark.c b/lib/unictype/pr_prepended_concatenation_mark.c
index d8bfc85a..25289002 100644
--- a/lib/unictype/pr_prepended_concatenation_mark.c
+++ b/lib/unictype/pr_prepended_concatenation_mark.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_private_use.c b/lib/unictype/pr_private_use.c
index 422018aa..d9157862 100644
--- a/lib/unictype/pr_private_use.c
+++ b/lib/unictype/pr_private_use.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_punctuation.c b/lib/unictype/pr_punctuation.c
index f05e6685..c3ae9496 100644
--- a/lib/unictype/pr_punctuation.c
+++ b/lib/unictype/pr_punctuation.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_quotation_mark.c b/lib/unictype/pr_quotation_mark.c
index 087677fe..8517caf7 100644
--- a/lib/unictype/pr_quotation_mark.c
+++ b/lib/unictype/pr_quotation_mark.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_radical.c b/lib/unictype/pr_radical.c
index 4fcb8b76..1159cab8 100644
--- a/lib/unictype/pr_radical.c
+++ b/lib/unictype/pr_radical.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_regional_indicator.c b/lib/unictype/pr_regional_indicator.c
index 26f873d4..799245c9 100644
--- a/lib/unictype/pr_regional_indicator.c
+++ b/lib/unictype/pr_regional_indicator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2021-2025 Free Software Foundation, Inc.
+ Copyright (C) 2021-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2021.
This file is free software.
diff --git a/lib/unictype/pr_sentence_terminal.c b/lib/unictype/pr_sentence_terminal.c
index d2a33752..c1d8d339 100644
--- a/lib/unictype/pr_sentence_terminal.c
+++ b/lib/unictype/pr_sentence_terminal.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_soft_dotted.c b/lib/unictype/pr_soft_dotted.c
index 0dc8e981..c0b62087 100644
--- a/lib/unictype/pr_soft_dotted.c
+++ b/lib/unictype/pr_soft_dotted.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_space.c b/lib/unictype/pr_space.c
index 8cb1aeb5..c29efa80 100644
--- a/lib/unictype/pr_space.c
+++ b/lib/unictype/pr_space.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_terminal_punctuation.c b/lib/unictype/pr_terminal_punctuation.c
index 671b2455..0649d55e 100644
--- a/lib/unictype/pr_terminal_punctuation.c
+++ b/lib/unictype/pr_terminal_punctuation.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_test.c b/lib/unictype/pr_test.c
index 693ae9ed..39ae4859 100644
--- a/lib/unictype/pr_test.c
+++ b/lib/unictype/pr_test.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2005-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_titlecase.c b/lib/unictype/pr_titlecase.c
index 74a60ee0..9ab21fcc 100644
--- a/lib/unictype/pr_titlecase.c
+++ b/lib/unictype/pr_titlecase.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_unassigned_code_value.c b/lib/unictype/pr_unassigned_code_value.c
index f884f69e..32dce534 100644
--- a/lib/unictype/pr_unassigned_code_value.c
+++ b/lib/unictype/pr_unassigned_code_value.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_unified_ideograph.c b/lib/unictype/pr_unified_ideograph.c
index 6ed16c09..219bc110 100644
--- a/lib/unictype/pr_unified_ideograph.c
+++ b/lib/unictype/pr_unified_ideograph.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_uppercase.c b/lib/unictype/pr_uppercase.c
index 88a5700c..6a4521ea 100644
--- a/lib/unictype/pr_uppercase.c
+++ b/lib/unictype/pr_uppercase.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_variation_selector.c b/lib/unictype/pr_variation_selector.c
index 45e31754..42fa2337 100644
--- a/lib/unictype/pr_variation_selector.c
+++ b/lib/unictype/pr_variation_selector.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_white_space.c b/lib/unictype/pr_white_space.c
index 639860bd..9a5f2af7 100644
--- a/lib/unictype/pr_white_space.c
+++ b/lib/unictype/pr_white_space.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_xid_continue.c b/lib/unictype/pr_xid_continue.c
index 122782b6..fb7de816 100644
--- a/lib/unictype/pr_xid_continue.c
+++ b/lib/unictype/pr_xid_continue.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_xid_start.c b/lib/unictype/pr_xid_start.c
index 55880e92..03dc6642 100644
--- a/lib/unictype/pr_xid_start.c
+++ b/lib/unictype/pr_xid_start.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_zero_width.c b/lib/unictype/pr_zero_width.c
index 4eabfc8c..32534f59 100644
--- a/lib/unictype/pr_zero_width.c
+++ b/lib/unictype/pr_zero_width.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/scripts.c b/lib/unictype/scripts.c
index 637623ed..f0940d7d 100644
--- a/lib/unictype/scripts.c
+++ b/lib/unictype/scripts.c
@@ -1,5 +1,5 @@
/* Scripts of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software: you can redistribute it and/or modify
@@ -52,9 +52,8 @@ uc_script (ucs4_t uc)
const uc_script_t *
uc_script_byname (const char *script_name)
{
- const struct named_script *found;
-
- found = uc_script_lookup (script_name, strlen (script_name));
+ const struct named_script *found =
+ uc_script_lookup (script_name, strlen (script_name));
if (found != NULL)
return &scripts[found->index];
else
diff --git a/lib/unictype/sy_c_ident.c b/lib/unictype/sy_c_ident.c
index c6992698..70f96f08 100644
--- a/lib/unictype/sy_c_ident.c
+++ b/lib/unictype/sy_c_ident.c
@@ -1,5 +1,5 @@
/* Syntax properties of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
diff --git a/lib/unictype/sy_c_whitespace.c b/lib/unictype/sy_c_whitespace.c
index 57b4d213..5cfc5f6c 100644
--- a/lib/unictype/sy_c_whitespace.c
+++ b/lib/unictype/sy_c_whitespace.c
@@ -1,5 +1,5 @@
/* Syntax properties of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
diff --git a/lib/unictype/sy_java_ident.c b/lib/unictype/sy_java_ident.c
index e6b9c9b7..83f63e05 100644
--- a/lib/unictype/sy_java_ident.c
+++ b/lib/unictype/sy_java_ident.c
@@ -1,5 +1,5 @@
/* Syntax properties of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
diff --git a/lib/unictype/sy_java_whitespace.c b/lib/unictype/sy_java_whitespace.c
index 83c081cb..ceb5b3be 100644
--- a/lib/unictype/sy_java_whitespace.c
+++ b/lib/unictype/sy_java_whitespace.c
@@ -1,5 +1,5 @@
/* Syntax properties of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
diff --git a/lib/unigbrk.in.h b/lib/unigbrk.in.h
index 8a5c6051..f9966388 100644
--- a/lib/unigbrk.in.h
+++ b/lib/unigbrk.in.h
@@ -1,5 +1,5 @@
/* Grapheme cluster breaks in Unicode strings.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
This file is free software.
diff --git a/lib/unigbrk/u-grapheme-breaks.h b/lib/unigbrk/u-grapheme-breaks.h
index 30d5853a..2bea51c4 100644
--- a/lib/unigbrk/u-grapheme-breaks.h
+++ b/lib/unigbrk/u-grapheme-breaks.h
@@ -1,5 +1,5 @@
/* Grapheme cluster break function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unigbrk/u-grapheme-next.h b/lib/unigbrk/u-grapheme-next.h
index 9ca07436..edd377e8 100644
--- a/lib/unigbrk/u-grapheme-next.h
+++ b/lib/unigbrk/u-grapheme-next.h
@@ -1,5 +1,5 @@
/* Grapheme cluster break function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unigbrk/u-grapheme-prev.h b/lib/unigbrk/u-grapheme-prev.h
index 0894d599..0fa234b4 100644
--- a/lib/unigbrk/u-grapheme-prev.h
+++ b/lib/unigbrk/u-grapheme-prev.h
@@ -1,5 +1,5 @@
/* Grapheme cluster break function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -43,10 +43,8 @@ ends_with_incb_consonant_extended_linker_extended (const UNIT *s,
while (s > s_start)
{
- const UNIT *prev_s;
ucs4_t uc;
-
- prev_s = U_PREV (&uc, s, s_start);
+ const UNIT *prev_s = U_PREV (&uc, s, s_start);
if (prev_s == NULL)
/* Ill-formed UTF-8 encoding. */
break;
@@ -73,10 +71,8 @@ ends_with_emoji_modifier_sequence (const UNIT *s, const UNIT *s_start)
{
while (s > s_start)
{
- const UNIT *prev_s;
ucs4_t uc;
-
- prev_s = U_PREV (&uc, s, s_start);
+ const UNIT *prev_s = U_PREV (&uc, s, s_start);
if (prev_s == NULL)
/* Ill-formed UTF-8 encoding. */
break;
@@ -102,10 +98,8 @@ ends_with_ri_count (const UNIT *s, const UNIT *s_start)
while (s > s_start)
{
- const UNIT *prev_s;
ucs4_t uc;
-
- prev_s = U_PREV (&uc, s, s_start);
+ const UNIT *prev_s = U_PREV (&uc, s, s_start);
if (prev_s == NULL)
/* Ill-formed UTF-8 encoding. */
break;
@@ -143,10 +137,8 @@ FUNC (const UNIT *s, const UNIT *s_start)
do
{
- const UNIT *prev_s;
ucs4_t uc;
-
- prev_s = U_PREV (&uc, s, s_start);
+ const UNIT *prev_s = U_PREV (&uc, s, s_start);
if (prev_s == NULL)
{
/* Ill-formed UTF-8 encoding. */
diff --git a/lib/unigbrk/u16-grapheme-breaks.c b/lib/unigbrk/u16-grapheme-breaks.c
index bae4bcb2..692f570c 100644
--- a/lib/unigbrk/u16-grapheme-breaks.c
+++ b/lib/unigbrk/u16-grapheme-breaks.c
@@ -1,5 +1,5 @@
/* Grapheme cluster breaks function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
This file is free software.
diff --git a/lib/unigbrk/u16-grapheme-next.c b/lib/unigbrk/u16-grapheme-next.c
index 5e7a783d..6397301f 100644
--- a/lib/unigbrk/u16-grapheme-next.c
+++ b/lib/unigbrk/u16-grapheme-next.c
@@ -1,5 +1,5 @@
/* Next grapheme cluster function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unigbrk/u16-grapheme-prev.c b/lib/unigbrk/u16-grapheme-prev.c
index 4c70e118..72a3198b 100644
--- a/lib/unigbrk/u16-grapheme-prev.c
+++ b/lib/unigbrk/u16-grapheme-prev.c
@@ -1,5 +1,5 @@
/* Previous grapheme cluster function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unigbrk/u32-grapheme-breaks.c b/lib/unigbrk/u32-grapheme-breaks.c
index 66c64445..669abd68 100644
--- a/lib/unigbrk/u32-grapheme-breaks.c
+++ b/lib/unigbrk/u32-grapheme-breaks.c
@@ -1,5 +1,5 @@
/* Grapheme cluster breaks function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
This file is free software.
diff --git a/lib/unigbrk/u32-grapheme-next.c b/lib/unigbrk/u32-grapheme-next.c
index 1c9adfa6..212dfbf1 100644
--- a/lib/unigbrk/u32-grapheme-next.c
+++ b/lib/unigbrk/u32-grapheme-next.c
@@ -1,5 +1,5 @@
/* Next grapheme cluster function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unigbrk/u32-grapheme-prev.c b/lib/unigbrk/u32-grapheme-prev.c
index 977a1977..e893c0d8 100644
--- a/lib/unigbrk/u32-grapheme-prev.c
+++ b/lib/unigbrk/u32-grapheme-prev.c
@@ -1,5 +1,5 @@
/* Previous grapheme cluster function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unigbrk/u8-grapheme-breaks.c b/lib/unigbrk/u8-grapheme-breaks.c
index 04708695..951ad1f0 100644
--- a/lib/unigbrk/u8-grapheme-breaks.c
+++ b/lib/unigbrk/u8-grapheme-breaks.c
@@ -1,5 +1,5 @@
/* Grapheme cluster breaks function.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Ben Pfaff <blp@cs.stanford.edu>, 2010,
based on code written by Bruno Haible <bruno@clisp.org>, 2009.
diff --git a/lib/unigbrk/u8-grapheme-next.c b/lib/unigbrk/u8-grapheme-next.c
index 2ec094da..105ebc37 100644
--- a/lib/unigbrk/u8-grapheme-next.c
+++ b/lib/unigbrk/u8-grapheme-next.c
@@ -1,5 +1,5 @@
/* Next grapheme cluster function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unigbrk/u8-grapheme-prev.c b/lib/unigbrk/u8-grapheme-prev.c
index a2d872f0..f4df1892 100644
--- a/lib/unigbrk/u8-grapheme-prev.c
+++ b/lib/unigbrk/u8-grapheme-prev.c
@@ -1,5 +1,5 @@
/* Previous grapheme cluster function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unigbrk/uc-gbrk-prop.c b/lib/unigbrk/uc-gbrk-prop.c
index 8158fa0c..32b9ec1c 100644
--- a/lib/unigbrk/uc-gbrk-prop.c
+++ b/lib/unigbrk/uc-gbrk-prop.c
@@ -1,5 +1,5 @@
/* Grapheme cluster break property function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
This file is free software.
diff --git a/lib/unigbrk/uc-grapheme-breaks.c b/lib/unigbrk/uc-grapheme-breaks.c
index 4924a97d..08dc5249 100644
--- a/lib/unigbrk/uc-grapheme-breaks.c
+++ b/lib/unigbrk/uc-grapheme-breaks.c
@@ -1,5 +1,5 @@
/* Grapheme cluster breaks function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
This file is free software.
diff --git a/lib/unigbrk/uc-is-grapheme-break.c b/lib/unigbrk/uc-is-grapheme-break.c
index 1451efa8..33ad20f0 100644
--- a/lib/unigbrk/uc-is-grapheme-break.c
+++ b/lib/unigbrk/uc-is-grapheme-break.c
@@ -1,5 +1,5 @@
/* Grapheme cluster break function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
This file is free software.
@@ -118,15 +118,13 @@ static const unsigned long int gb_table[18] =
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);
+ int a_gcp = uc_graphemeclusterbreak_property (a);
+ int 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
index 779a59f0..87c45f37 100644
--- a/lib/unigbrk/ulc-grapheme-breaks.c
+++ b/lib/unigbrk/ulc-grapheme-breaks.c
@@ -1,5 +1,5 @@
/* Grapheme cluster breaks function.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Ben Pfaff <blp@cs.stanford.edu>, 2010,
based on code written by Bruno Haible <bruno@clisp.org>, 2009.
@@ -51,10 +51,8 @@ is_utf8_encoding (const char *encoding)
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++)
+ for (size_t 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');
@@ -92,25 +90,22 @@ ulc_grapheme_breaks (const char *s, size_t n, char *p)
if (offsets != NULL)
{
- uint8_t *t;
size_t m;
-
- t = u8_conv_from_encoding (encoding, iconveh_question_mark,
- s, n, offsets, NULL, &m);
+ uint8_t *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++)
+ for (size_t i = 0; i < n; i++)
if (offsets[i] != (size_t)(-1))
p[i] = q[offsets[i]];
diff --git a/lib/unilbrk.in.h b/lib/unilbrk.in.h
index 2178837c..cbab3ba4 100644
--- a/lib/unilbrk.in.h
+++ b/lib/unilbrk.in.h
@@ -1,5 +1,5 @@
/* Line breaking of Unicode strings.
- Copyright (C) 2001-2003, 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2005-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unilbrk/internal.h b/lib/unilbrk/internal.h
index 8a7e4300..be059b5d 100644
--- a/lib/unilbrk/internal.h
+++ b/lib/unilbrk/internal.h
@@ -1,5 +1,5 @@
/* Internal functions for line breaking of Unicode strings.
- Copyright (C) 2001-2003, 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2005-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2021.
This file is free software.
diff --git a/lib/unilbrk/lbrktables.h b/lib/unilbrk/lbrktables.h
index ea2114c5..27d17926 100644
--- a/lib/unilbrk/lbrktables.h
+++ b/lib/unilbrk/lbrktables.h
@@ -1,5 +1,5 @@
/* Line breaking auxiliary tables.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unilbrk/u16-possible-linebreaks.c b/lib/unilbrk/u16-possible-linebreaks.c
index d313d942..c85cc374 100644
--- a/lib/unilbrk/u16-possible-linebreaks.c
+++ b/lib/unilbrk/u16-possible-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of UTF-16 strings.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unilbrk/u16-width-linebreaks.c b/lib/unilbrk/u16-width-linebreaks.c
index 70c31ace..0af01e25 100644
--- a/lib/unilbrk/u16-width-linebreaks.c
+++ b/lib/unilbrk/u16-width-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of UTF-16 strings.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -39,17 +39,12 @@ u16_width_linebreaks_internal (const uint16_t *s, size_t n,
const char *o, const char *encoding, int cr,
char *p)
{
- const uint16_t *s_end;
- char *last_p;
- int last_column;
- int piece_width;
-
u16_possible_linebreaks_loop (s, n, encoding, cr, p);
- s_end = s + n;
- last_p = NULL;
- last_column = start_column;
- piece_width = 0;
+ const uint16_t *s_end = s + n;
+ char *last_p = NULL;
+ int last_column = start_column;
+ int piece_width = 0;
while (s < s_end)
{
ucs4_t uc;
@@ -82,8 +77,6 @@ u16_width_linebreaks_internal (const uint16_t *s, size_t n,
else
{
/* uc is not a line break character. */
- int w;
-
if (*p == UC_BREAK_POSSIBLE)
{
/* Start a new piece. */
@@ -96,7 +89,7 @@ u16_width_linebreaks_internal (const uint16_t *s, size_t n,
*p = UC_BREAK_PROHIBITED;
- w = uc_width (uc, encoding);
+ int w = uc_width (uc, encoding);
if (w >= 0) /* ignore control characters in the string */
piece_width += w;
}
diff --git a/lib/unilbrk/u32-possible-linebreaks.c b/lib/unilbrk/u32-possible-linebreaks.c
index f953be75..33f84378 100644
--- a/lib/unilbrk/u32-possible-linebreaks.c
+++ b/lib/unilbrk/u32-possible-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of UTF-32 strings.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unilbrk/u32-width-linebreaks.c b/lib/unilbrk/u32-width-linebreaks.c
index 5fa73639..4a4f84b5 100644
--- a/lib/unilbrk/u32-width-linebreaks.c
+++ b/lib/unilbrk/u32-width-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of UTF-32 strings.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -38,17 +38,12 @@ u32_width_linebreaks_internal (const uint32_t *s, size_t n,
const char *o, const char *encoding, int cr,
char *p)
{
- const uint32_t *s_end;
- char *last_p;
- int last_column;
- int piece_width;
-
u32_possible_linebreaks_loop (s, n, encoding, cr, p);
- s_end = s + n;
- last_p = NULL;
- last_column = start_column;
- piece_width = 0;
+ const uint32_t *s_end = s + n;
+ char *last_p = NULL;
+ int last_column = start_column;
+ int piece_width = 0;
while (s < s_end)
{
ucs4_t uc = *s;
@@ -80,8 +75,6 @@ u32_width_linebreaks_internal (const uint32_t *s, size_t n,
else
{
/* uc is not a line break character. */
- int w;
-
if (*p == UC_BREAK_POSSIBLE)
{
/* Start a new piece. */
@@ -94,7 +87,7 @@ u32_width_linebreaks_internal (const uint32_t *s, size_t n,
*p = UC_BREAK_PROHIBITED;
- w = uc_width (uc, encoding);
+ int w = uc_width (uc, encoding);
if (w >= 0) /* ignore control characters in the string */
piece_width += w;
}
diff --git a/lib/unilbrk/u8-possible-linebreaks.c b/lib/unilbrk/u8-possible-linebreaks.c
index bc4796f4..86a8e941 100644
--- a/lib/unilbrk/u8-possible-linebreaks.c
+++ b/lib/unilbrk/u8-possible-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of UTF-8 strings.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -457,7 +457,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -473,7 +472,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
@@ -505,11 +504,10 @@ main (int argc, char * argv[])
char *input = read_file (stdin);
int length = strlen (input);
char *breaks = malloc (length);
- int i;
u8_possible_linebreaks_v2 ((uint8_t *) input, length, "UTF-8", breaks);
- for (i = 0; i < length; i++)
+ for (int i = 0; i < length; i++)
{
switch (breaks[i])
{
diff --git a/lib/unilbrk/u8-width-linebreaks.c b/lib/unilbrk/u8-width-linebreaks.c
index 0cb18ba0..28190645 100644
--- a/lib/unilbrk/u8-width-linebreaks.c
+++ b/lib/unilbrk/u8-width-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of UTF-8 strings.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -39,17 +39,12 @@ u8_width_linebreaks_internal (const uint8_t *s, size_t n,
const char *o, const char *encoding, int cr,
char *p)
{
- const uint8_t *s_end;
- char *last_p;
- int last_column;
- int piece_width;
-
u8_possible_linebreaks_loop (s, n, encoding, cr, p);
- s_end = s + n;
- last_p = NULL;
- last_column = start_column;
- piece_width = 0;
+ const uint8_t *s_end = s + n;
+ char *last_p = NULL;
+ int last_column = start_column;
+ int piece_width = 0;
while (s < s_end)
{
ucs4_t uc;
@@ -82,8 +77,6 @@ u8_width_linebreaks_internal (const uint8_t *s, size_t n,
else
{
/* uc is not a line break character. */
- int w;
-
if (*p == UC_BREAK_POSSIBLE)
{
/* Start a new piece. */
@@ -96,7 +89,7 @@ u8_width_linebreaks_internal (const uint8_t *s, size_t n,
*p = UC_BREAK_PROHIBITED;
- w = uc_width (uc, encoding);
+ int w = uc_width (uc, encoding);
if (w >= 0) /* ignore control characters in the string */
piece_width += w;
}
@@ -163,7 +156,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -179,7 +171,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
@@ -212,11 +204,10 @@ main (int argc, char * argv[])
char *input = read_file (stdin);
int length = strlen (input);
char *breaks = malloc (length);
- int i;
u8_width_linebreaks_v2 ((uint8_t *) input, length, width, 0, 0, NULL, "UTF-8", breaks);
- for (i = 0; i < length; i++)
+ for (int i = 0; i < length; i++)
{
switch (breaks[i])
{
diff --git a/lib/unilbrk/ulc-common.c b/lib/unilbrk/ulc-common.c
index c9c97da2..979fc335 100644
--- a/lib/unilbrk/ulc-common.c
+++ b/lib/unilbrk/ulc-common.c
@@ -1,5 +1,5 @@
/* Line breaking auxiliary functions.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unilbrk/ulc-common.h b/lib/unilbrk/ulc-common.h
index 8df4eff8..21ad8e1b 100644
--- a/lib/unilbrk/ulc-common.h
+++ b/lib/unilbrk/ulc-common.h
@@ -1,5 +1,5 @@
/* Line breaking auxiliary functions.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unilbrk/ulc-possible-linebreaks.c b/lib/unilbrk/ulc-possible-linebreaks.c
index 0dc1ff41..1e112b4b 100644
--- a/lib/unilbrk/ulc-possible-linebreaks.c
+++ b/lib/unilbrk/ulc-possible-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of strings.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -66,26 +66,23 @@ ulc_possible_linebreaks_internal (const char *s, size_t n, const char *encoding,
if (offsets != NULL)
{
- uint8_t *t;
size_t m;
-
- t = u8_conv_from_encoding (encoding, iconveh_question_mark,
- s, n, offsets, NULL, &m);
+ uint8_t *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 possible line breaks of the UTF-8
string. */
u8_possible_linebreaks_loop (t, m, encoding, cr, q);
/* Translate the result back to the original string. */
memset (p, UC_BREAK_PROHIBITED, n);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
if (offsets[i] != (size_t)(-1))
p[i] = q[offsets[i]];
@@ -169,7 +166,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -185,7 +181,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
@@ -218,11 +214,10 @@ main (int argc, char * argv[])
char *input = read_file (stdin);
int length = strlen (input);
char *breaks = malloc (length);
- int i;
ulc_possible_linebreaks_v2 (input, length, locale_charset (), breaks);
- for (i = 0; i < length; i++)
+ for (int i = 0; i < length; i++)
{
switch (breaks[i])
{
diff --git a/lib/unilbrk/ulc-width-linebreaks.c b/lib/unilbrk/ulc-width-linebreaks.c
index ee3a394a..3ce412e8 100644
--- a/lib/unilbrk/ulc-width-linebreaks.c
+++ b/lib/unilbrk/ulc-width-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of strings.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -68,11 +68,10 @@ ulc_width_linebreaks_internal (const char *s, size_t n,
if (offsets != NULL)
{
- uint8_t *t;
size_t m;
-
- t = u8_conv_from_encoding (encoding, iconveh_question_mark,
- s, n, offsets, NULL, &m);
+ uint8_t *t =
+ u8_conv_from_encoding (encoding, iconveh_question_mark,
+ s, n, offsets, NULL, &m);
if (t != NULL)
{
char *memory =
@@ -82,25 +81,23 @@ ulc_width_linebreaks_internal (const char *s, size_t n,
{
char *q = (char *) memory;
char *o8 = (o != NULL ? (char *) (q + m) : NULL);
- int res_column;
- size_t i;
/* Translate the overrides to the UTF-8 string. */
if (o != NULL)
{
memset (o8, UC_BREAK_UNDEFINED, m);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
if (offsets[i] != (size_t)(-1))
o8[offsets[i]] = o[i];
}
/* Determine the line breaks of the UTF-8 string. */
- res_column =
+ int res_column =
u8_width_linebreaks_internal (t, m, width, start_column, at_end_columns, o8, encoding, cr, q);
/* Translate the result back to the original string. */
memset (p, UC_BREAK_PROHIBITED, n);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
if (offsets[i] != (size_t)(-1))
p[i] = q[offsets[i]];
@@ -195,7 +192,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -211,7 +207,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
@@ -245,11 +241,10 @@ main (int argc, char * argv[])
char *input = read_file (stdin);
int length = strlen (input);
char *breaks = malloc (length);
- int i;
ulc_width_linebreaks_v2 (input, length, width, 0, 0, NULL, locale_charset (), breaks);
- for (i = 0; i < length; i++)
+ for (int i = 0; i < length; i++)
{
switch (breaks[i])
{
diff --git a/lib/unimetadata.in.h b/lib/unimetadata.in.h
index 0e29dc28..c0c1a3fb 100644
--- a/lib/unimetadata.in.h
+++ b/lib/unimetadata.in.h
@@ -1,5 +1,5 @@
/* Meta information about GNU libunistring.
- Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Copyright (C) 2024-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/uniname.in.h b/lib/uniname.in.h
index e9ccbbbc..fcb7a504 100644
--- a/lib/uniname.in.h
+++ b/lib/uniname.in.h
@@ -1,5 +1,5 @@
/* Association between Unicode characters and their names.
- Copyright (C) 2000-2002, 2005, 2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 2000-2002, 2005, 2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/uniname/gen-uninames.lisp b/lib/uniname/gen-uninames.lisp
index dccc0f04..0925e97f 100755
--- a/lib/uniname/gen-uninames.lisp
+++ b/lib/uniname/gen-uninames.lisp
@@ -3,7 +3,7 @@
;;; Creation of gnulib's uninames.h from the UnicodeData.txt and NameAliases.txt
;;; tables.
-;;; Copyright (C) 2000-2025 Free Software Foundation, Inc.
+;;; Copyright (C) 2000-2026 Free Software Foundation, Inc.
;;; Written by Bruno Haible <bruno@clisp.org>, 2000-12-28.
;;;
;;; This program is free software.
diff --git a/lib/uniname/uniname.c b/lib/uniname/uniname.c
index 953b70df..074a8d85 100644
--- a/lib/uniname/uniname.c
+++ b/lib/uniname/uniname.c
@@ -1,5 +1,5 @@
/* Association between Unicode characters and their names.
- Copyright (C) 2000-2002, 2005-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2000-2002, 2005-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -65,9 +65,6 @@
static const char *
unicode_name_word (unsigned int index, unsigned int *lengthp)
{
- unsigned int i1;
- unsigned int i2;
-
assert (index < UNICODE_CHARNAME_NUM_WORDS);
/* Binary search for i with
@@ -76,8 +73,8 @@ unicode_name_word (unsigned int index, unsigned int *lengthp)
index < unicode_name_by_length[i+1].ind_offset
*/
- i1 = 0;
- i2 = SIZEOF (unicode_name_by_length) - 1;
+ unsigned int i1 = 0;
+ unsigned int i2 = SIZEOF (unicode_name_by_length) - 1;
while (i2 - i1 > 1)
{
unsigned int i = (i1 + i2) >> 1;
@@ -238,22 +235,17 @@ unicode_character_name (ucs4_t c, char *buf)
if (c >= 0xAC00 && c <= 0xD7A3)
{
/* Special case for Hangul syllables. Keeps the tables small. */
- char *ptr;
- unsigned int tmp;
- unsigned int index1;
- unsigned int index2;
- unsigned int index3;
- const char *q;
/* buf needs to have at least 16 + 7 + 1 bytes here. */
memcpy (buf, "HANGUL SYLLABLE ", 16);
- ptr = buf + 16;
+ char *ptr = buf + 16;
- tmp = c - 0xAC00;
- index3 = tmp % 28; tmp = tmp / 28;
- index2 = tmp % 21; tmp = tmp / 21;
- index1 = tmp;
+ unsigned int tmp = c - 0xAC00;
+ unsigned int index3 = tmp % 28; tmp = tmp / 28;
+ unsigned int index2 = tmp % 21; tmp = tmp / 21;
+ unsigned int index1 = tmp;
+ const char *q;
q = jamo_initial_short_name[index1];
while (*q != '\0')
*ptr++ = *q++;
@@ -271,14 +263,12 @@ unicode_character_name (ucs4_t c, char *buf)
{
/* Special case for CJK compatibility ideographs. Keeps the tables
small. */
- char *ptr;
- int i;
/* buf needs to have at least 28 + 5 + 1 bytes here. */
memcpy (buf, "CJK COMPATIBILITY IDEOGRAPH-", 28);
- ptr = buf + 28;
+ char *ptr = buf + 28;
- for (i = (c < 0x10000 ? 12 : 16); i >= 0; i -= 4)
+ for (int i = (c < 0x10000 ? 12 : 16); i >= 0; i -= 4)
{
unsigned int x = (c >> i) & 0xf;
*ptr++ = (x < 10 ? '0' : 'A' - 10) + x;
@@ -424,11 +414,10 @@ unicode_name_character (const char *name)
for (;;)
{
{
- int word;
const char *p2 = p1;
while (p2 < ptr && *p2 != ' ')
p2++;
- word = unicode_name_word_lookup (p1, p2 - p1);
+ int word = unicode_name_word_lookup (p1, p2 - p1);
if (word < 0)
break;
if (wordptr == &words[UNICODE_CHARNAME_MAX_WORDS])
@@ -448,11 +437,7 @@ unicode_name_character (const char *name)
2) [AEIOUWY]
3) [BCDGHIJKLMNPST]
*/
- const char *p2;
- const char *p3;
- const char *p4;
-
- p2 = p1;
+ const char *p2 = p1;
while (p2 < ptr
&& (*p2 == 'B' || *p2 == 'C' || *p2 == 'D'
|| *p2 == 'G' || *p2 == 'H' || *p2 == 'J'
@@ -460,13 +445,13 @@ unicode_name_character (const char *name)
|| *p2 == 'P' || *p2 == 'R' || *p2 == 'S'
|| *p2 == 'T'))
p2++;
- p3 = p2;
+ const char *p3 = p2;
while (p3 < ptr
&& (*p3 == 'A' || *p3 == 'E' || *p3 == 'I'
|| *p3 == 'O' || *p3 == 'U' || *p3 == 'W'
|| *p3 == 'Y'))
p3++;
- p4 = p3;
+ const char *p4 = p3;
while (p4 < ptr
&& (*p4 == 'B' || *p4 == 'C' || *p4 == 'D'
|| *p4 == 'G' || *p4 == 'H' || *p4 == 'I'
@@ -482,21 +467,15 @@ unicode_name_character (const char *name)
if (n1 <= 2 && (n2 >= 1 && n2 <= 3) && n3 <= 2)
{
- unsigned int index1;
-
- for (index1 = 0; index1 < 19; index1++)
+ for (unsigned int index1 = 0; index1 < 19; index1++)
if (memeq (jamo_initial_short_name[index1], p1, n1)
&& jamo_initial_short_name[index1][n1] == '\0')
{
- unsigned int index2;
-
- for (index2 = 0; index2 < 21; index2++)
+ for (unsigned int index2 = 0; index2 < 21; index2++)
if (memeq (jamo_medial_short_name[index2], p2, n2)
&& jamo_medial_short_name[index2][n2] == '\0')
{
- unsigned int index3;
-
- for (index3 = 0; index3 < 28; index3++)
+ for (unsigned int index3 = 0; index3 < 28; index3++)
if (memeq (jamo_final_short_name[index3], p3, n3)
&& jamo_final_short_name[index3][n3] == '\0')
{
diff --git a/lib/uninorm.in.h b/lib/uninorm.in.h
index 076e8ae5..ed1ae0f7 100644
--- a/lib/uninorm.in.h
+++ b/lib/uninorm.in.h
@@ -1,5 +1,5 @@
/* Normalization forms (composition and decomposition) of Unicode strings.
- Copyright (C) 2001-2002, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uninorm/canonical-decomposition.c b/lib/uninorm/canonical-decomposition.c
index 628d2f12..93169bf2 100644
--- a/lib/uninorm/canonical-decomposition.c
+++ b/lib/uninorm/canonical-decomposition.c
@@ -1,5 +1,5 @@
/* Canonical decomposition of Unicode characters.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
@@ -33,18 +33,14 @@ uc_canonical_decomposition (ucs4_t uc, ucs4_t *decomposition)
"Hangul Syllable Decomposition", See also the clarification at
<https://www.unicode.org/versions/Unicode5.1.0/>, section
"Clarification of Hangul Jamo Handling". */
- unsigned int t;
-
uc -= 0xAC00;
- t = uc % 28;
+ unsigned int t = uc % 28;
if (t == 0)
{
- unsigned int v, l;
-
uc = uc / 28;
- v = uc % 21;
- l = uc / 21;
+ unsigned int v = uc % 21;
+ unsigned int l = uc / 21;
decomposition[0] = 0x1100 + l;
decomposition[1] = 0x1161 + v;
@@ -57,11 +53,9 @@ uc_canonical_decomposition (ucs4_t uc, ucs4_t *decomposition)
decomposition[1] = 0x11A7 + t;
return 2;
#else
- unsigned int v, l;
-
uc = uc / 28;
- v = uc % 21;
- l = uc / 21;
+ unsigned int v = uc % 21;
+ unsigned int l = uc / 21;
decomposition[0] = 0x1100 + l;
decomposition[1] = 0x1161 + v;
@@ -78,16 +72,12 @@ uc_canonical_decomposition (ucs4_t uc, ucs4_t *decomposition)
is a canonical one. */
if (entry < 0x8000)
{
- const unsigned char *p;
- unsigned int element;
- unsigned int length;
-
- p = &gl_uninorm_decomp_chars_table[3 * entry];
- element = (p[0] << 16) | (p[1] << 8) | p[2];
+ const unsigned char *p = &gl_uninorm_decomp_chars_table[3 * entry];
+ unsigned int element = (p[0] << 16) | (p[1] << 8) | p[2];
/* The first element has 5 bits for the decomposition type. */
if (((element >> 18) & 0x1f) != UC_DECOMP_CANONICAL)
abort ();
- length = 1;
+ unsigned int length = 1;
for (;;)
{
/* Every element has an 18 bits wide Unicode code point. */
diff --git a/lib/uninorm/compat-decomposition.c b/lib/uninorm/compat-decomposition.c
index 479482b4..a2ed7e97 100644
--- a/lib/uninorm/compat-decomposition.c
+++ b/lib/uninorm/compat-decomposition.c
@@ -1,5 +1,5 @@
/* Compatibility decomposition of Unicode characters.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/composition.c b/lib/uninorm/composition.c
index d9a302be..c5d088bc 100644
--- a/lib/uninorm/composition.c
+++ b/lib/uninorm/composition.c
@@ -1,5 +1,5 @@
/* Canonical composition of Unicode characters.
- Copyright (C) 2002, 2006, 2009, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
@@ -69,8 +69,6 @@ uc_composition (ucs4_t uc1, ucs4_t uc2)
}
#else
char codes[6];
- const struct composition_rule *rule;
-
codes[0] = (uc1 >> 16) & 0xff;
codes[1] = (uc1 >> 8) & 0xff;
codes[2] = uc1 & 0xff;
@@ -78,7 +76,7 @@ uc_composition (ucs4_t uc1, ucs4_t uc2)
codes[4] = (uc2 >> 8) & 0xff;
codes[5] = uc2 & 0xff;
- rule = gl_uninorm_compose_lookup (codes, 6);
+ const struct composition_rule *rule = gl_uninorm_compose_lookup (codes, 6);
if (rule != NULL)
return rule->combined;
#endif
diff --git a/lib/uninorm/decompose-internal.c b/lib/uninorm/decompose-internal.c
index 215f9b16..1a5c0f21 100644
--- a/lib/uninorm/decompose-internal.c
+++ b/lib/uninorm/decompose-internal.c
@@ -1,5 +1,5 @@
/* Decomposition of Unicode strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uninorm/decompose-internal.h b/lib/uninorm/decompose-internal.h
index 10a88a1b..6273b4b0 100644
--- a/lib/uninorm/decompose-internal.h
+++ b/lib/uninorm/decompose-internal.h
@@ -1,5 +1,5 @@
/* Decomposition of Unicode strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uninorm/decomposing-form.c b/lib/uninorm/decomposing-form.c
index e8166d93..99c28586 100644
--- a/lib/uninorm/decomposing-form.c
+++ b/lib/uninorm/decomposing-form.c
@@ -1,5 +1,5 @@
/* Decomposing variant of a normalization form.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/decomposition-table.c b/lib/uninorm/decomposition-table.c
index 66e4aded..d397a443 100644
--- a/lib/uninorm/decomposition-table.c
+++ b/lib/uninorm/decomposition-table.c
@@ -1,5 +1,5 @@
/* Decomposition of Unicode characters.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uninorm/decomposition-table.h b/lib/uninorm/decomposition-table.h
index 5ff87c53..f93209e4 100644
--- a/lib/uninorm/decomposition-table.h
+++ b/lib/uninorm/decomposition-table.h
@@ -1,5 +1,5 @@
/* Decomposition of Unicode characters.
- Copyright (C) 2001-2003, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uninorm/decomposition.c b/lib/uninorm/decomposition.c
index b8deeed4..d850a612 100644
--- a/lib/uninorm/decomposition.c
+++ b/lib/uninorm/decomposition.c
@@ -1,5 +1,5 @@
/* Decomposition of Unicode characters.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -39,19 +39,15 @@ uc_decomposition (ucs4_t uc, int *decomp_tag, ucs4_t *decomposition)
"Hangul Syllable Decomposition", See also the clarification at
<https://www.unicode.org/versions/Unicode5.1.0/>, section
"Clarification of Hangul Jamo Handling". */
- unsigned int t;
-
uc -= 0xAC00;
- t = uc % 28;
+ unsigned int t = uc % 28;
*decomp_tag = UC_DECOMP_CANONICAL;
if (t == 0)
{
- unsigned int v, l;
-
uc = uc / 28;
- v = uc % 21;
- l = uc / 21;
+ unsigned int v = uc % 21;
+ unsigned int l = uc / 21;
decomposition[0] = 0x1100 + l;
decomposition[1] = 0x1161 + v;
@@ -64,11 +60,9 @@ uc_decomposition (ucs4_t uc, int *decomp_tag, ucs4_t *decomposition)
decomposition[1] = 0x11A7 + t;
return 2;
#else
- unsigned int v, l;
-
uc = uc / 28;
- v = uc % 21;
- l = uc / 21;
+ unsigned int v = uc % 21;
+ unsigned int l = uc / 21;
decomposition[0] = 0x1100 + l;
decomposition[1] = 0x1161 + v;
@@ -82,15 +76,11 @@ uc_decomposition (ucs4_t uc, int *decomp_tag, ucs4_t *decomposition)
unsigned short entry = decomp_index (uc);
if (entry != (unsigned short)(-1))
{
- const unsigned char *p;
- unsigned int element;
- unsigned int length;
-
- p = &gl_uninorm_decomp_chars_table[3 * (entry & 0x7FFF)];
- element = (p[0] << 16) | (p[1] << 8) | p[2];
+ const unsigned char *p = &gl_uninorm_decomp_chars_table[3 * (entry & 0x7FFF)];
+ unsigned int element = (p[0] << 16) | (p[1] << 8) | p[2];
/* The first element has 5 bits for the decomposition type. */
*decomp_tag = (element >> 18) & 0x1f;
- length = 1;
+ unsigned int length = 1;
for (;;)
{
/* Every element has an 18 bits wide Unicode code point. */
diff --git a/lib/uninorm/nfc.c b/lib/uninorm/nfc.c
index 156dfea8..42aa47fb 100644
--- a/lib/uninorm/nfc.c
+++ b/lib/uninorm/nfc.c
@@ -1,5 +1,5 @@
/* Unicode Normalization Form C.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uninorm/nfd.c b/lib/uninorm/nfd.c
index 83739df9..d9760fd1 100644
--- a/lib/uninorm/nfd.c
+++ b/lib/uninorm/nfd.c
@@ -1,5 +1,5 @@
/* Unicode Normalization Form D.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uninorm/nfkc.c b/lib/uninorm/nfkc.c
index c036535d..045b21ea 100644
--- a/lib/uninorm/nfkc.c
+++ b/lib/uninorm/nfkc.c
@@ -1,5 +1,5 @@
/* Unicode Normalization Form KC.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/nfkd.c b/lib/uninorm/nfkd.c
index 70df2fd8..65bbdde5 100644
--- a/lib/uninorm/nfkd.c
+++ b/lib/uninorm/nfkd.c
@@ -1,5 +1,5 @@
/* Unicode Normalization Form KD.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/normalize-internal.h b/lib/uninorm/normalize-internal.h
index 430eb1d7..0c2f32e2 100644
--- a/lib/uninorm/normalize-internal.h
+++ b/lib/uninorm/normalize-internal.h
@@ -1,5 +1,5 @@
/* Normalization of Unicode strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uninorm/u-normalize-internal.h b/lib/uninorm/u-normalize-internal.h
index f910f52f..826e1ec3 100644
--- a/lib/uninorm/u-normalize-internal.h
+++ b/lib/uninorm/u-normalize-internal.h
@@ -1,5 +1,5 @@
/* Decomposition and composition of Unicode strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
@@ -24,16 +24,7 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
/* The result being accumulated. */
UNIT *result;
- size_t length;
size_t allocated;
- /* The buffer for sorting. */
- #define SORTBUF_PREALLOCATED 64
- struct ucs4_with_ccc sortbuf_preallocated[2 * SORTBUF_PREALLOCATED];
- struct ucs4_with_ccc *sortbuf; /* array of size 2 * sortbuf_allocated */
- size_t sortbuf_allocated;
- size_t sortbuf_count;
-
- /* Initialize the accumulator. */
if (resultbuf == NULL)
{
result = NULL;
@@ -44,12 +35,15 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
result = resultbuf;
allocated = *lengthp;
}
- length = 0;
+ size_t length = 0;
- /* Initialize the buffer for sorting. */
- sortbuf = sortbuf_preallocated;
- sortbuf_allocated = SORTBUF_PREALLOCATED;
- sortbuf_count = 0;
+ /* The buffer for sorting. */
+ #define SORTBUF_PREALLOCATED 64
+ struct ucs4_with_ccc sortbuf_preallocated[2 * SORTBUF_PREALLOCATED];
+ struct ucs4_with_ccc *sortbuf = /* array of size 2 * sortbuf_allocated */
+ sortbuf_preallocated;
+ size_t sortbuf_allocated = SORTBUF_PREALLOCATED;
+ size_t sortbuf_count = 0;
{
const UNIT *s_end = s + n;
@@ -59,7 +53,6 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
int count;
ucs4_t decomposed[UC_DECOMPOSITION_MAX_LENGTH];
int decomposed_count;
- int i;
if (s < s_end)
{
@@ -73,46 +66,40 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
the size of the decomposition tables, because for example for
U+1FC1 the recursive canonical decomposition and the recursive
compatibility decomposition are different. */
- {
- int curr;
-
- for (curr = 0; curr < decomposed_count; )
- {
- /* Invariant: decomposed[0..curr-1] is fully decomposed, i.e.
- all elements are atomic. */
- ucs4_t curr_decomposed[UC_DECOMPOSITION_MAX_LENGTH];
- int curr_decomposed_count;
-
- curr_decomposed_count = decomposer (decomposed[curr], curr_decomposed);
- if (curr_decomposed_count >= 0)
- {
- /* Move curr_decomposed[0..curr_decomposed_count-1] over
- decomposed[curr], making room. It's not worth using
- memcpy() here, since the counts are so small. */
- int shift = curr_decomposed_count - 1;
-
- if (shift < 0)
- abort ();
- if (shift > 0)
- {
- int j;
+ for (int curr = 0; curr < decomposed_count; )
+ {
+ /* Invariant: decomposed[0..curr-1] is fully decomposed, i.e.
+ all elements are atomic. */
+ ucs4_t curr_decomposed[UC_DECOMPOSITION_MAX_LENGTH];
+ int curr_decomposed_count;
- decomposed_count += shift;
- if (decomposed_count > UC_DECOMPOSITION_MAX_LENGTH)
- abort ();
- for (j = decomposed_count - 1 - shift; j > curr; j--)
- decomposed[j + shift] = decomposed[j];
- }
- for (; shift >= 0; shift--)
- decomposed[curr + shift] = curr_decomposed[shift];
- }
- else
- {
- /* decomposed[curr] is atomic. */
- curr++;
- }
- }
- }
+ curr_decomposed_count = decomposer (decomposed[curr], curr_decomposed);
+ if (curr_decomposed_count >= 0)
+ {
+ /* Move curr_decomposed[0..curr_decomposed_count-1] over
+ decomposed[curr], making room. It's not worth using
+ memcpy() here, since the counts are so small. */
+ int shift = curr_decomposed_count - 1;
+
+ if (shift < 0)
+ abort ();
+ if (shift > 0)
+ {
+ decomposed_count += shift;
+ if (decomposed_count > UC_DECOMPOSITION_MAX_LENGTH)
+ abort ();
+ for (int j = decomposed_count - 1 - shift; j > curr; j--)
+ decomposed[j + shift] = decomposed[j];
+ }
+ for (; shift >= 0; shift--)
+ decomposed[curr + shift] = curr_decomposed[shift];
+ }
+ else
+ {
+ /* decomposed[curr] is atomic. */
+ curr++;
+ }
+ }
}
else
{
@@ -120,7 +107,7 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
decomposed_count = 0;
}
- i = 0;
+ int i = 0;
for (;;)
{
ucs4_t uc;
@@ -143,8 +130,6 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
if (ccc == 0)
{
- size_t j;
-
/* Apply the canonical ordering algorithm to the accumulated
sequence of characters. */
if (sortbuf_count > 1)
@@ -175,7 +160,7 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
(also a starter). */
if (sortbuf_count > 0 && sortbuf[0].ccc == 0)
{
- for (j = 1; j < sortbuf_count; )
+ for (size_t j = 1; j < sortbuf_count; )
{
if (sortbuf[j].ccc > sortbuf[j - 1].ccc)
{
@@ -183,11 +168,9 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
composer (sortbuf[0].code, sortbuf[j].code);
if (combined)
{
- size_t k;
-
sortbuf[0].code = combined;
/* sortbuf[0].ccc = 0, still valid. */
- for (k = j + 1; k < sortbuf_count; k++)
+ for (size_t k = j + 1; k < sortbuf_count; k++)
sortbuf[k - 1] = sortbuf[k];
sortbuf_count--;
continue;
@@ -212,7 +195,7 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
}
}
- for (j = 0; j < sortbuf_count; j++)
+ for (size_t j = 0; j < sortbuf_count; j++)
{
ucs4_t muc = sortbuf[j].code;
@@ -303,12 +286,10 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
/* Append (uc, ccc) to sortbuf. */
if (sortbuf_count == sortbuf_allocated)
{
- struct ucs4_with_ccc *new_sortbuf;
-
sortbuf_allocated = 2 * sortbuf_allocated;
if (sortbuf_allocated < sortbuf_count) /* integer overflow? */
abort ();
- new_sortbuf =
+ struct ucs4_with_ccc *new_sortbuf =
(struct ucs4_with_ccc *) malloc (2 * sortbuf_allocated * sizeof (struct ucs4_with_ccc));
if (new_sortbuf == NULL)
{
@@ -352,9 +333,7 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- UNIT *memory;
-
- memory = (UNIT *) realloc (result, length * sizeof (UNIT));
+ UNIT *memory = (UNIT *) realloc (result, length * sizeof (UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/uninorm/u-normcmp.h b/lib/uninorm/u-normcmp.h
index 12f89d2b..ca1b24ba 100644
--- a/lib/uninorm/u-normcmp.h
+++ b/lib/uninorm/u-normcmp.h
@@ -1,5 +1,5 @@
/* Normalization insensitive comparison of Unicode strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -27,24 +27,18 @@ int
FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2,
uninorm_t nf, int *resultp)
{
- UNIT buf1[2048 / sizeof (UNIT)];
- UNIT buf2[2048 / sizeof (UNIT)];
- UNIT *norms1;
- size_t norms1_length;
- UNIT *norms2;
- size_t norms2_length;
- int cmp;
-
/* Normalize S1. */
- norms1_length = sizeof (buf1) / sizeof (UNIT);
- norms1 = U_NORMALIZE (nf, s1, n1, buf1, &norms1_length);
+ UNIT buf1[2048 / sizeof (UNIT)];
+ size_t norms1_length = sizeof (buf1) / sizeof (UNIT);
+ UNIT *norms1 = U_NORMALIZE (nf, s1, n1, buf1, &norms1_length);
if (norms1 == NULL)
/* errno is set here. */
return -1;
/* Normalize S2. */
- norms2_length = sizeof (buf2) / sizeof (UNIT);
- norms2 = U_NORMALIZE (nf, s2, n2, buf2, &norms2_length);
+ UNIT buf2[2048 / sizeof (UNIT)];
+ size_t norms2_length = sizeof (buf2) / sizeof (UNIT);
+ UNIT *norms2 = U_NORMALIZE (nf, s2, n2, buf2, &norms2_length);
if (norms2 == NULL)
{
if (norms1 != buf1)
@@ -57,7 +51,7 @@ FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2,
}
/* Compare the normalized strings. */
- cmp = U_CMP2 (norms1, norms1_length, norms2, norms2_length);
+ int cmp = U_CMP2 (norms1, norms1_length, norms2, norms2_length);
if (cmp > 0)
cmp = 1;
else if (cmp < 0)
diff --git a/lib/uninorm/u-normcoll.h b/lib/uninorm/u-normcoll.h
index 948462c0..fd2dd71f 100644
--- a/lib/uninorm/u-normcoll.h
+++ b/lib/uninorm/u-normcoll.h
@@ -1,5 +1,5 @@
/* Locale dependent, normalization insensitive comparison of Unicode strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -27,24 +27,18 @@ int
FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2,
uninorm_t nf, int *resultp)
{
- char buf1[2048];
- char buf2[2048];
- char *transformed1;
- size_t transformed1_length;
- char *transformed2;
- size_t transformed2_length;
- int cmp;
-
/* Normalize and transform S1. */
- transformed1_length = sizeof (buf1);
- transformed1 = U_NORMXFRM (s1, n1, nf, buf1, &transformed1_length);
+ char buf1[2048];
+ size_t transformed1_length = sizeof (buf1);
+ char *transformed1 = U_NORMXFRM (s1, n1, nf, buf1, &transformed1_length);
if (transformed1 == NULL)
/* errno is set here. */
return -1;
/* Normalize and transform S2. */
- transformed2_length = sizeof (buf2);
- transformed2 = U_NORMXFRM (s2, n2, nf, buf2, &transformed2_length);
+ char buf2[2048];
+ size_t transformed2_length = sizeof (buf2);
+ char *transformed2 = U_NORMXFRM (s2, n2, nf, buf2, &transformed2_length);
if (transformed2 == NULL)
{
if (transformed1 != buf1)
@@ -57,8 +51,8 @@ FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2,
}
/* Compare the transformed strings. */
- cmp = memcmp2 (transformed1, transformed1_length,
- transformed2, transformed2_length);
+ int cmp = memcmp2 (transformed1, transformed1_length,
+ transformed2, transformed2_length);
if (cmp < 0)
cmp = -1;
else if (cmp > 0)
diff --git a/lib/uninorm/u-normxfrm.h b/lib/uninorm/u-normxfrm.h
index 92bf051e..deee268a 100644
--- a/lib/uninorm/u-normxfrm.h
+++ b/lib/uninorm/u-normxfrm.h
@@ -1,5 +1,5 @@
/* Locale dependent transformation for comparison of Unicode strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -27,24 +27,18 @@ char *
FUNC (const UNIT *s, size_t n, uninorm_t nf,
char *resultbuf, size_t *lengthp)
{
- UNIT normsbuf[2048 / sizeof (UNIT)];
- UNIT *norms;
- size_t norms_length;
- char convsbuf[2048];
- char *convs;
- size_t convs_length;
- char *result;
-
/* Normalize the Unicode string. */
- norms_length = sizeof (normsbuf) / sizeof (UNIT);
- norms = U_NORMALIZE (nf, s, n, normsbuf, &norms_length);
+ UNIT normsbuf[2048 / sizeof (UNIT)];
+ size_t norms_length = sizeof (normsbuf) / sizeof (UNIT);
+ UNIT *norms = U_NORMALIZE (nf, s, n, normsbuf, &norms_length);
if (norms == NULL)
/* errno is set here. */
return NULL;
/* Convert it to locale encoding. */
- convs_length = sizeof (convsbuf) - 1;
- convs = U_CONV_TO_ENCODING (locale_charset (),
+ char convsbuf[2048];
+ size_t convs_length = sizeof (convsbuf) - 1;
+ char *convs = U_CONV_TO_ENCODING (locale_charset (),
iconveh_error,
norms, norms_length,
NULL,
@@ -77,7 +71,7 @@ FUNC (const UNIT *s, size_t n, uninorm_t nf,
}
/* Apply locale dependent transformations for comparison. */
- result = amemxfrm (convs, convs_length, resultbuf, lengthp);
+ char *result = amemxfrm (convs, convs_length, resultbuf, lengthp);
if (result == NULL)
{
if (convs != convsbuf)
diff --git a/lib/uninorm/u16-normalize.c b/lib/uninorm/u16-normalize.c
index 13651747..60dc575a 100644
--- a/lib/uninorm/u16-normalize.c
+++ b/lib/uninorm/u16-normalize.c
@@ -1,5 +1,5 @@
/* Normalization of UTF-16 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u16-normcmp.c b/lib/uninorm/u16-normcmp.c
index 81c274b0..d715a3f8 100644
--- a/lib/uninorm/u16-normcmp.c
+++ b/lib/uninorm/u16-normcmp.c
@@ -1,5 +1,5 @@
/* Normalization insensitive comparison of UTF-16 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u16-normcoll.c b/lib/uninorm/u16-normcoll.c
index af686bd6..9573c7d5 100644
--- a/lib/uninorm/u16-normcoll.c
+++ b/lib/uninorm/u16-normcoll.c
@@ -1,5 +1,5 @@
/* Locale dependent, normalization insensitive comparison of UTF-16 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u16-normxfrm.c b/lib/uninorm/u16-normxfrm.c
index 5378cc51..8230c617 100644
--- a/lib/uninorm/u16-normxfrm.c
+++ b/lib/uninorm/u16-normxfrm.c
@@ -1,5 +1,5 @@
/* Locale dependent transformation for comparison of UTF-16 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u32-normalize.c b/lib/uninorm/u32-normalize.c
index 60f05233..e2312576 100644
--- a/lib/uninorm/u32-normalize.c
+++ b/lib/uninorm/u32-normalize.c
@@ -1,5 +1,5 @@
/* Normalization of UTF-32 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uninorm/u32-normcmp.c b/lib/uninorm/u32-normcmp.c
index 108ec242..570fae4c 100644
--- a/lib/uninorm/u32-normcmp.c
+++ b/lib/uninorm/u32-normcmp.c
@@ -1,5 +1,5 @@
/* Normalization insensitive comparison of UTF-32 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u32-normcoll.c b/lib/uninorm/u32-normcoll.c
index f2beb177..4be11ba7 100644
--- a/lib/uninorm/u32-normcoll.c
+++ b/lib/uninorm/u32-normcoll.c
@@ -1,5 +1,5 @@
/* Locale dependent, normalization insensitive comparison of UTF-32 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u32-normxfrm.c b/lib/uninorm/u32-normxfrm.c
index 88471a15..a434e9fc 100644
--- a/lib/uninorm/u32-normxfrm.c
+++ b/lib/uninorm/u32-normxfrm.c
@@ -1,5 +1,5 @@
/* Locale dependent transformation for comparison of UTF-32 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u8-normalize.c b/lib/uninorm/u8-normalize.c
index bcc97a33..aea9e2b5 100644
--- a/lib/uninorm/u8-normalize.c
+++ b/lib/uninorm/u8-normalize.c
@@ -1,5 +1,5 @@
/* Normalization of UTF-8 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u8-normcmp.c b/lib/uninorm/u8-normcmp.c
index aabef0e5..c77bf2fc 100644
--- a/lib/uninorm/u8-normcmp.c
+++ b/lib/uninorm/u8-normcmp.c
@@ -1,5 +1,5 @@
/* Normalization insensitive comparison of UTF-8 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u8-normcoll.c b/lib/uninorm/u8-normcoll.c
index ce919f5f..31439dce 100644
--- a/lib/uninorm/u8-normcoll.c
+++ b/lib/uninorm/u8-normcoll.c
@@ -1,5 +1,5 @@
/* Locale dependent, normalization insensitive comparison of UTF-8 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u8-normxfrm.c b/lib/uninorm/u8-normxfrm.c
index aec7f2a5..7a4cc833 100644
--- a/lib/uninorm/u8-normxfrm.c
+++ b/lib/uninorm/u8-normxfrm.c
@@ -1,5 +1,5 @@
/* Locale dependent transformation for comparison of UTF-8 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/uninorm-filter.c b/lib/uninorm/uninorm-filter.c
index 542013d6..c343a16a 100644
--- a/lib/uninorm/uninorm-filter.c
+++ b/lib/uninorm/uninorm-filter.c
@@ -1,5 +1,5 @@
/* Stream-based normalization of Unicode strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -95,55 +95,46 @@ uninorm_filter_write (struct uninorm_filter *filter, ucs4_t uc_arg)
the size of the decomposition tables, because for example for
U+1FC1 the recursive canonical decomposition and the recursive
compatibility decomposition are different. */
- {
- int curr;
-
- for (curr = 0; curr < decomposed_count; )
- {
- /* Invariant: decomposed[0..curr-1] is fully decomposed, i.e.
- all elements are atomic. */
- ucs4_t curr_decomposed[UC_DECOMPOSITION_MAX_LENGTH];
- int curr_decomposed_count;
-
- curr_decomposed_count =
- filter->decomposer (decomposed[curr], curr_decomposed);
- if (curr_decomposed_count >= 0)
- {
- /* Move curr_decomposed[0..curr_decomposed_count-1] over
- decomposed[curr], making room. It's not worth using
- memcpy() here, since the counts are so small. */
- int shift = curr_decomposed_count - 1;
-
- if (shift < 0)
- abort ();
- if (shift > 0)
- {
- int j;
-
- decomposed_count += shift;
- if (decomposed_count > UC_DECOMPOSITION_MAX_LENGTH)
- abort ();
- for (j = decomposed_count - 1 - shift; j > curr; j--)
- decomposed[j + shift] = decomposed[j];
- }
- for (; shift >= 0; shift--)
- decomposed[curr + shift] = curr_decomposed[shift];
- }
- else
- {
- /* decomposed[curr] is atomic. */
- curr++;
- }
- }
- }
+ for (int curr = 0; curr < decomposed_count; )
+ {
+ /* Invariant: decomposed[0..curr-1] is fully decomposed, i.e.
+ all elements are atomic. */
+ ucs4_t curr_decomposed[UC_DECOMPOSITION_MAX_LENGTH];
+ int curr_decomposed_count =
+ filter->decomposer (decomposed[curr], curr_decomposed);
+ if (curr_decomposed_count >= 0)
+ {
+ /* Move curr_decomposed[0..curr_decomposed_count-1] over
+ decomposed[curr], making room. It's not worth using
+ memcpy() here, since the counts are so small. */
+ int shift = curr_decomposed_count - 1;
+
+ if (shift < 0)
+ abort ();
+ if (shift > 0)
+ {
+ decomposed_count += shift;
+ if (decomposed_count > UC_DECOMPOSITION_MAX_LENGTH)
+ abort ();
+ for (int j = decomposed_count - 1 - shift; j > curr; j--)
+ decomposed[j + shift] = decomposed[j];
+ }
+ for (; shift >= 0; shift--)
+ decomposed[curr + shift] = curr_decomposed[shift];
+ }
+ else
+ {
+ /* decomposed[curr] is atomic. */
+ curr++;
+ }
+ }
{
/* Cache sortbuf and sortbuf_count in local register variables. */
struct ucs4_with_ccc *sortbuf = filter->sortbuf;
size_t sortbuf_count = filter->sortbuf_count;
- int i;
- for (i = 0; i < decomposed_count; i++)
+ for (int i = 0; i < decomposed_count; i++)
{
/* Fetch the next character from the decomposition. */
ucs4_t uc = decomposed[i];
@@ -151,8 +142,6 @@ uninorm_filter_write (struct uninorm_filter *filter, ucs4_t uc_arg)
if (ccc == 0)
{
- size_t j;
-
/* Apply the canonical ordering algorithm to the accumulated
sequence of characters. */
if (sortbuf_count > 1)
@@ -183,7 +172,7 @@ uninorm_filter_write (struct uninorm_filter *filter, ucs4_t uc_arg)
(also a starter). */
if (sortbuf_count > 0 && sortbuf[0].ccc == 0)
{
- for (j = 1; j < sortbuf_count; )
+ for (size_t j = 1; j < sortbuf_count; )
{
if (sortbuf[j].ccc > sortbuf[j - 1].ccc)
{
@@ -191,11 +180,9 @@ uninorm_filter_write (struct uninorm_filter *filter, ucs4_t uc_arg)
filter->composer (sortbuf[0].code, sortbuf[j].code);
if (combined)
{
- size_t k;
-
sortbuf[0].code = combined;
/* sortbuf[0].ccc = 0, still valid. */
- for (k = j + 1; k < sortbuf_count; k++)
+ for (size_t k = j + 1; k < sortbuf_count; k++)
sortbuf[k - 1] = sortbuf[k];
sortbuf_count--;
continue;
@@ -220,7 +207,7 @@ uninorm_filter_write (struct uninorm_filter *filter, ucs4_t uc_arg)
}
}
- for (j = 0; j < sortbuf_count; j++)
+ for (size_t j = 0; j < sortbuf_count; j++)
{
ucs4_t muc = sortbuf[j].code;
@@ -241,12 +228,10 @@ uninorm_filter_write (struct uninorm_filter *filter, ucs4_t uc_arg)
/* Append (uc, ccc) to sortbuf. */
if (sortbuf_count == filter->sortbuf_allocated)
{
- struct ucs4_with_ccc *new_sortbuf;
-
filter->sortbuf_allocated = 2 * filter->sortbuf_allocated;
if (filter->sortbuf_allocated < sortbuf_count) /* integer overflow? */
abort ();
- new_sortbuf =
+ struct ucs4_with_ccc *new_sortbuf =
(struct ucs4_with_ccc *)
malloc (2 * filter->sortbuf_allocated * sizeof (struct ucs4_with_ccc));
if (new_sortbuf == NULL)
@@ -286,7 +271,6 @@ uninorm_filter_flush (struct uninorm_filter *filter)
/* Cache sortbuf and sortbuf_count in local register variables. */
struct ucs4_with_ccc * const sortbuf = filter->sortbuf;
size_t sortbuf_count = filter->sortbuf_count;
- size_t j;
/* Apply the canonical ordering algorithm to the accumulated
sequence of characters. */
@@ -318,7 +302,7 @@ uninorm_filter_flush (struct uninorm_filter *filter)
(also a starter). */
if (sortbuf_count > 0 && sortbuf[0].ccc == 0)
{
- for (j = 1; j < sortbuf_count; )
+ for (size_t j = 1; j < sortbuf_count; )
{
if (sortbuf[j].ccc > sortbuf[j - 1].ccc)
{
@@ -326,11 +310,9 @@ uninorm_filter_flush (struct uninorm_filter *filter)
filter->composer (sortbuf[0].code, sortbuf[j].code);
if (combined)
{
- size_t k;
-
sortbuf[0].code = combined;
/* sortbuf[0].ccc = 0, still valid. */
- for (k = j + 1; k < sortbuf_count; k++)
+ for (size_t k = j + 1; k < sortbuf_count; k++)
sortbuf[k - 1] = sortbuf[k];
sortbuf_count--;
continue;
@@ -341,7 +323,7 @@ uninorm_filter_flush (struct uninorm_filter *filter)
}
}
- for (j = 0; j < sortbuf_count; j++)
+ for (size_t j = 0; j < sortbuf_count; j++)
{
ucs4_t muc = sortbuf[j].code;
diff --git a/lib/unistd.c b/lib/unistd.c
index e6625589..414dce9a 100644
--- a/lib/unistd.c
+++ b/lib/unistd.c
@@ -1,6 +1,6 @@
/* Inline functions for <unistd.h>.
- Copyright (C) 2012-2025 Free Software Foundation, Inc.
+ Copyright (C) 2012-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/unistd.in.h b/lib/unistd.in.h
index 5b583824..f7e4450c 100644
--- a/lib/unistd.in.h
+++ b/lib/unistd.in.h
@@ -1,5 +1,5 @@
/* Substitute for and wrapper around <unistd.h>.
- Copyright (C) 2003-2025 Free Software Foundation, Inc.
+ Copyright (C) 2003-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -302,7 +302,6 @@ _GL_CXXALIAS_SYS (access, int, (const char *file, int mode));
# endif
_GL_CXXALIASWARN (access);
#elif defined GNULIB_POSIXCHECK
-# undef access
# if HAVE_RAW_DECL_ACCESS
/* The access() function is a security risk. */
_GL_WARN_ON_USE (access, "access does not always support X_OK - "
@@ -339,7 +338,6 @@ _GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1)));
# endif
_GL_CXXALIASWARN (chdir);
#elif defined GNULIB_POSIXCHECK
-# undef chdir
# if HAVE_RAW_DECL_CHDIR
_GL_WARN_ON_USE (chdir, "chdir is not always in <unistd.h> - "
"use gnulib module chdir for portability");
@@ -384,7 +382,6 @@ _GL_CXXALIAS_SYS (chown, int, (const char *file, uid_t uid, gid_t gid));
# endif
_GL_CXXALIASWARN (chown);
#elif defined GNULIB_POSIXCHECK
-# undef chown
# if HAVE_RAW_DECL_CHOWN
_GL_WARN_ON_USE (chown, "chown fails to follow symlinks on some systems and "
"doesn't treat a uid or gid of -1 on some systems - "
@@ -418,7 +415,6 @@ _GL_CXXALIASWARN (close);
# define close close_used_without_requesting_gnulib_module_close
# endif
#elif defined GNULIB_POSIXCHECK
-# undef close
/* Assume close is always declared. */
_GL_WARN_ON_USE (close, "close does not portably work on sockets - "
"use gnulib module close for portability");
@@ -465,7 +461,6 @@ _GL_CXXALIAS_SYS (copy_file_range, ssize_t, (int ifd, off_t *ipos,
_GL_CXXALIASWARN (copy_file_range);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef copy_file_range
# if HAVE_RAW_DECL_COPY_FILE_RANGE
_GL_WARN_ON_USE (copy_file_range,
"copy_file_range is unportable - "
@@ -492,7 +487,6 @@ _GL_CXXALIAS_SYS (dup, int, (int oldfd));
# 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");
@@ -537,7 +531,6 @@ _GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd));
# endif
_GL_CXXALIASWARN (dup2);
#elif defined GNULIB_POSIXCHECK
-# undef dup2
# if HAVE_RAW_DECL_DUP2
_GL_WARN_ON_USE (dup2, "dup2 is unportable - "
"use gnulib module dup2 for portability");
@@ -585,7 +578,6 @@ _GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags));
_GL_CXXALIASWARN (dup3);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef dup3
# if HAVE_RAW_DECL_DUP3
_GL_WARN_ON_USE (dup3, "dup3 is unportable - "
"use gnulib module dup3 for portability");
@@ -653,7 +645,6 @@ _GL_WARN_ON_USE (euidaccess, "the euidaccess function is a security risk - "
"use the gnulib module faccessat instead");
# endif
#elif defined GNULIB_POSIXCHECK
-# undef euidaccess
# if HAVE_RAW_DECL_EUIDACCESS
_GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - "
"use gnulib module euidaccess for portability");
@@ -675,7 +666,6 @@ _GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...));
# endif
_GL_CXXALIASWARN (execl);
#elif defined GNULIB_POSIXCHECK
-# undef execl
# if HAVE_RAW_DECL_EXECL
_GL_WARN_ON_USE (execl, "execl behaves very differently on mingw - "
"use gnulib module execl for portability");
@@ -710,7 +700,6 @@ _GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...));
# endif
_GL_CXXALIASWARN (execle);
#elif defined GNULIB_POSIXCHECK
-# undef execle
# if HAVE_RAW_DECL_EXECLE
_GL_WARN_ON_USE (execle, "execle behaves very differently on mingw - "
"use gnulib module execle for portability");
@@ -746,7 +735,6 @@ _GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...));
# endif
_GL_CXXALIASWARN (execlp);
#elif defined GNULIB_POSIXCHECK
-# undef execlp
# if HAVE_RAW_DECL_EXECLP
_GL_WARN_ON_USE (execlp, "execlp behaves very differently on mingw - "
"use gnulib module execlp for portability");
@@ -783,7 +771,6 @@ _GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv));
# endif
_GL_CXXALIASWARN (execv);
#elif defined GNULIB_POSIXCHECK
-# undef execv
# if HAVE_RAW_DECL_EXECV
_GL_WARN_ON_USE (execv, "execv behaves very differently on mingw - "
"use gnulib module execv for portability");
@@ -822,7 +809,6 @@ _GL_CXXALIAS_SYS (execve, int,
# endif
_GL_CXXALIASWARN (execve);
#elif defined GNULIB_POSIXCHECK
-# undef execve
# if HAVE_RAW_DECL_EXECVE
_GL_WARN_ON_USE (execve, "execve behaves very differently on mingw - "
"use gnulib module execve for portability");
@@ -860,7 +846,6 @@ _GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv));
# endif
_GL_CXXALIASWARN (execvp);
#elif defined GNULIB_POSIXCHECK
-# undef execvp
# if HAVE_RAW_DECL_EXECVP
_GL_WARN_ON_USE (execvp, "execvp behaves very differently on mingw - "
"use gnulib module execvp for portability");
@@ -906,7 +891,6 @@ _GL_CXXALIAS_SYS (execvpe, int,
_GL_CXXALIASWARN (execvpe);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef execvpe
# if HAVE_RAW_DECL_EXECVPE
_GL_WARN_ON_USE (execvpe, "execvpe behaves very differently on mingw - "
"use gnulib module execvpe for portability");
@@ -963,7 +947,6 @@ _GL_CXXALIAS_SYS (faccessat, int,
_GL_CXXALIASWARN (faccessat);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef faccessat
# if HAVE_RAW_DECL_FACCESSAT
_GL_WARN_ON_USE (faccessat, "faccessat is not portable - "
"use gnulib module faccessat for portability");
@@ -1000,7 +983,6 @@ _GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd);
_GL_EXTERN_C const char *_gl_directory_name (int fd);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef fchdir
# if HAVE_RAW_DECL_FCHDIR
_GL_WARN_ON_USE (fchdir, "fchdir is unportable - "
"use gnulib module fchdir for portability");
@@ -1030,7 +1012,6 @@ _GL_CXXALIAS_SYS (fchownat, int, (int fd, char const *file,
# endif
_GL_CXXALIASWARN (fchownat);
#elif defined GNULIB_POSIXCHECK
-# undef fchownat
# if HAVE_RAW_DECL_FCHOWNAT
_GL_WARN_ON_USE (fchownat, "fchownat is not portable - "
"use gnulib module fchownat for portability");
@@ -1060,7 +1041,6 @@ _GL_CXXALIAS_SYS (fdatasync, int, (int fd));
_GL_CXXALIASWARN (fdatasync);
# endif
#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");
@@ -1079,7 +1059,6 @@ _GL_FUNCDECL_SYS (fsync, int, (int fd), );
_GL_CXXALIAS_SYS (fsync, int, (int fd));
_GL_CXXALIASWARN (fsync);
#elif defined GNULIB_POSIXCHECK
-# undef fsync
# if HAVE_RAW_DECL_FSYNC
_GL_WARN_ON_USE (fsync, "fsync is unportable - "
"use gnulib module fsync for portability");
@@ -1113,7 +1092,6 @@ _GL_CXXALIAS_SYS (ftruncate, int,
_GL_CXXALIASWARN (ftruncate);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef ftruncate
# if HAVE_RAW_DECL_FTRUNCATE
_GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - "
"use gnulib module ftruncate for portability");
@@ -1152,7 +1130,6 @@ _GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size));
# endif
_GL_CXXALIASWARN (getcwd);
#elif defined GNULIB_POSIXCHECK
-# undef getcwd
# if HAVE_RAW_DECL_GETCWD
_GL_WARN_ON_USE (getcwd, "getcwd is unportable - "
"use gnulib module getcwd for portability");
@@ -1210,7 +1187,6 @@ _GL_CXXALIAS_SYS (getdomainname, int,
_GL_CXXALIASWARN (getdomainname);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getdomainname
# if HAVE_RAW_DECL_GETDOMAINNAME
_GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - "
"use gnulib module getdomainname for portability");
@@ -1238,7 +1214,6 @@ _GL_CXXALIAS_SYS_CAST (getdtablesize, int, (void));
# endif
_GL_CXXALIASWARN (getdtablesize);
#elif defined GNULIB_POSIXCHECK
-# undef getdtablesize
# if HAVE_RAW_DECL_GETDTABLESIZE
_GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - "
"use gnulib module getdtablesize for portability");
@@ -1269,7 +1244,6 @@ _GL_CXXALIAS_SYS (getentropy, int,
_GL_CXXALIASWARN (getentropy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getentropy
# if HAVE_RAW_DECL_GETENTROPY
_GL_WARN_ON_USE (getentropy, "getentropy is unportable - "
"use gnulib module getentropy for portability");
@@ -1302,7 +1276,6 @@ _GL_CXXALIAS_SYS (getgroups, int,
# endif
_GL_CXXALIASWARN (getgroups);
#elif defined GNULIB_POSIXCHECK
-# undef getgroups
# if HAVE_RAW_DECL_GETGROUPS
_GL_WARN_ON_USE (getgroups, "getgroups is unportable - "
"use gnulib module getgroups for portability");
@@ -1342,7 +1315,6 @@ _GL_CXXALIASWARN (gethostname);
# define gethostname gethostname_used_without_requesting_gnulib_module_gethostname
# endif
#elif defined GNULIB_POSIXCHECK
-# undef gethostname
# if HAVE_RAW_DECL_GETHOSTNAME
_GL_WARN_ON_USE (gethostname, "gethostname is unportable - "
"use gnulib module gethostname for portability");
@@ -1377,7 +1349,6 @@ _GL_CXXALIAS_SYS (getlogin, char *, (void));
_GL_CXXALIASWARN (getlogin);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getlogin
# if HAVE_RAW_DECL_GETLOGIN
_GL_WARN_ON_USE (getlogin, "getlogin is unportable - "
"use gnulib module getlogin for portability");
@@ -1420,7 +1391,6 @@ _GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size));
_GL_CXXALIASWARN (getlogin_r);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getlogin_r
# if HAVE_RAW_DECL_GETLOGIN_R
_GL_WARN_ON_USE (getlogin_r, "getlogin_r is unportable - "
"use gnulib module getlogin_r for portability");
@@ -1507,7 +1477,6 @@ _GL_CXXALIAS_SYS_CAST (getpagesize, int, (void));
_GL_CXXALIASWARN (getpagesize);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getpagesize
# if HAVE_RAW_DECL_GETPAGESIZE
_GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - "
"use gnulib module getpagesize for portability");
@@ -1538,7 +1507,6 @@ _GL_CXXALIAS_SYS (getpass, char *, (const char *prompt));
# endif
_GL_CXXALIASWARN (getpass);
#elif defined GNULIB_POSIXCHECK
-# undef getpass
# if HAVE_RAW_DECL_GETPASS
_GL_WARN_ON_USE (getpass, "getpass is unportable - "
"use gnulib module getpass or getpass-gnu for portability");
@@ -1581,7 +1549,6 @@ _GL_CXXALIAS_SYS (getusershell, char *, (void));
# endif
_GL_CXXALIASWARN (getusershell);
#elif defined GNULIB_POSIXCHECK
-# undef getusershell
# if HAVE_RAW_DECL_GETUSERSHELL
_GL_WARN_ON_USE (getusershell, "getusershell is unportable - "
"use gnulib module getusershell for portability");
@@ -1605,7 +1572,6 @@ _GL_CXXALIAS_SYS (setusershell, void, (void));
# endif
_GL_CXXALIASWARN (setusershell);
#elif defined GNULIB_POSIXCHECK
-# undef setusershell
# if HAVE_RAW_DECL_SETUSERSHELL
_GL_WARN_ON_USE (setusershell, "setusershell is unportable - "
"use gnulib module getusershell for portability");
@@ -1630,7 +1596,6 @@ _GL_CXXALIAS_SYS (endusershell, void, (void));
# endif
_GL_CXXALIASWARN (endusershell);
#elif defined GNULIB_POSIXCHECK
-# undef endusershell
# if HAVE_RAW_DECL_ENDUSERSHELL
_GL_WARN_ON_USE (endusershell, "endusershell is unportable - "
"use gnulib module getusershell for portability");
@@ -1646,7 +1611,6 @@ _GL_FUNCDECL_SYS (group_member, int, (gid_t gid), );
_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");
@@ -1674,7 +1638,6 @@ _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");
@@ -1719,7 +1682,6 @@ _GL_CXXALIAS_SYS (lchown, int, (char const *file, uid_t owner, gid_t group));
# endif
_GL_CXXALIASWARN (lchown);
#elif defined GNULIB_POSIXCHECK
-# undef lchown
# if HAVE_RAW_DECL_LCHOWN
_GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - "
"use gnulib module lchown for portability");
@@ -1748,7 +1710,6 @@ _GL_CXXALIAS_SYS (link, int, (const char *path1, const char *path2));
# endif
_GL_CXXALIASWARN (link);
#elif defined GNULIB_POSIXCHECK
-# undef link
# if HAVE_RAW_DECL_LINK
_GL_WARN_ON_USE (link, "link is unportable - "
"use gnulib module link for portability");
@@ -1787,7 +1748,6 @@ _GL_CXXALIAS_SYS (linkat, int,
_GL_CXXALIASWARN (linkat);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef linkat
# if HAVE_RAW_DECL_LINKAT
_GL_WARN_ON_USE (linkat, "linkat is unportable - "
"use gnulib module linkat for portability");
@@ -1817,7 +1777,6 @@ _GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence));
# endif
_GL_CXXALIASWARN (lseek);
#elif defined GNULIB_POSIXCHECK
-# undef lseek
# if HAVE_RAW_DECL_LSEEK
_GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some "
"systems - use gnulib module lseek for portability");
@@ -1850,7 +1809,6 @@ _GL_FUNCDECL_SYS (pipe, int, (int fd[2]),
_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");
@@ -1884,7 +1842,6 @@ _GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags));
_GL_CXXALIASWARN (pipe2);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pipe2
# if HAVE_RAW_DECL_PIPE2
_GL_WARN_ON_USE (pipe2, "pipe2 is unportable - "
"use gnulib module pipe2 for portability");
@@ -1921,7 +1878,6 @@ _GL_CXXALIAS_SYS (pread, ssize_t,
_GL_CXXALIASWARN (pread);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pread
# if HAVE_RAW_DECL_PREAD
_GL_WARN_ON_USE (pread, "pread is unportable - "
"use gnulib module pread for portability");
@@ -1958,7 +1914,6 @@ _GL_CXXALIAS_SYS (pwrite, ssize_t,
_GL_CXXALIASWARN (pwrite);
# endif
#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");
@@ -2036,7 +1991,6 @@ _GL_CXXALIAS_SYS (readlink, ssize_t,
# endif
_GL_CXXALIASWARN (readlink);
#elif defined GNULIB_POSIXCHECK
-# undef readlink
# if HAVE_RAW_DECL_READLINK
_GL_WARN_ON_USE (readlink, "readlink is unportable - "
"use gnulib module readlink for portability");
@@ -2071,7 +2025,6 @@ _GL_CXXALIAS_SYS (readlinkat, ssize_t,
_GL_CXXALIASWARN (readlinkat);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef readlinkat
# if HAVE_RAW_DECL_READLINKAT
_GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - "
"use gnulib module readlinkat for portability");
@@ -2098,7 +2051,6 @@ _GL_CXXALIAS_SYS (rmdir, int, (char const *name));
# endif
_GL_CXXALIASWARN (rmdir);
#elif defined GNULIB_POSIXCHECK
-# undef rmdir
# if HAVE_RAW_DECL_RMDIR
_GL_WARN_ON_USE (rmdir, "rmdir is unportable - "
"use gnulib module rmdir for portability");
@@ -2155,7 +2107,6 @@ _GL_CXXALIAS_SYS_CAST (sethostname, int,
_GL_CXXALIASWARN (sethostname);
# endif
#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");
@@ -2183,7 +2134,6 @@ _GL_CXXALIAS_SYS (sleep, unsigned int, (unsigned int n));
# endif
_GL_CXXALIASWARN (sleep);
#elif defined GNULIB_POSIXCHECK
-# undef sleep
# if HAVE_RAW_DECL_SLEEP
_GL_WARN_ON_USE (sleep, "sleep is unportable - "
"use gnulib module sleep for portability");
@@ -2238,7 +2188,6 @@ _GL_CXXALIAS_SYS (symlink, int,
# endif
_GL_CXXALIASWARN (symlink);
#elif defined GNULIB_POSIXCHECK
-# undef symlink
# if HAVE_RAW_DECL_SYMLINK
_GL_WARN_ON_USE (symlink, "symlink is not portable - "
"use gnulib module symlink for portability");
@@ -2270,7 +2219,6 @@ _GL_CXXALIAS_SYS (symlinkat, int,
_GL_CXXALIASWARN (symlinkat);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef symlinkat
# if HAVE_RAW_DECL_SYMLINKAT
_GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - "
"use gnulib module symlinkat for portability");
@@ -2302,7 +2250,6 @@ _GL_CXXALIAS_SYS (truncate, int, (const char *filename, off_t length));
_GL_CXXALIASWARN (truncate);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef truncate
# if HAVE_RAW_DECL_TRUNCATE
_GL_WARN_ON_USE (truncate, "truncate is unportable - "
"use gnulib module truncate for portability");
@@ -2336,7 +2283,6 @@ _GL_CXXALIAS_SYS (ttyname_r, int,
_GL_CXXALIASWARN (ttyname_r);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef ttyname_r
# if HAVE_RAW_DECL_TTYNAME_R
_GL_WARN_ON_USE (ttyname_r, "ttyname_r is not portable - "
"use gnulib module ttyname_r for portability");
@@ -2363,7 +2309,6 @@ _GL_CXXALIAS_SYS (unlink, int, (char const *file));
# endif
_GL_CXXALIASWARN (unlink);
#elif defined GNULIB_POSIXCHECK
-# undef unlink
# if HAVE_RAW_DECL_UNLINK
_GL_WARN_ON_USE (unlink, "unlink is not portable - "
"use gnulib module unlink for portability");
@@ -2403,7 +2348,6 @@ _GL_CXXALIAS_SYS (unlinkat, int, (int fd, char const *file, int flag));
# endif
_GL_CXXALIASWARN (unlinkat);
#elif defined GNULIB_POSIXCHECK
-# undef unlinkat
# if HAVE_RAW_DECL_UNLINKAT
_GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - "
"use gnulib module unlinkat for portability");
@@ -2433,7 +2377,6 @@ _GL_CXXALIAS_SYS_CAST (usleep, int, (useconds_t n));
# endif
_GL_CXXALIASWARN (usleep);
#elif defined GNULIB_POSIXCHECK
-# undef usleep
# if HAVE_RAW_DECL_USLEEP
_GL_WARN_ON_USE (usleep, "usleep is unportable - "
"use gnulib module usleep for portability");
diff --git a/lib/unistdio.in.h b/lib/unistdio.in.h
index dc669933..08eea75a 100644
--- a/lib/unistdio.in.h
+++ b/lib/unistdio.in.h
@@ -1,5 +1,5 @@
/* Elementary Unicode string functions.
- Copyright (C) 2002, 2005-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unistdio/u-asnprintf.h b/lib/unistdio/u-asnprintf.h
index a6b9e390..a892e82a 100644
--- a/lib/unistdio/u-asnprintf.h
+++ b/lib/unistdio/u-asnprintf.h
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
@@ -27,10 +27,8 @@ DCHAR_T *
ASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, const FCHAR_T *format, ...)
{
va_list args;
- DCHAR_T *result;
-
va_start (args, format);
- result = VASNPRINTF (resultbuf, lengthp, format, args);
+ DCHAR_T *result = VASNPRINTF (resultbuf, lengthp, format, args);
va_end (args);
return result;
}
diff --git a/lib/unistdio/u-asprintf.h b/lib/unistdio/u-asprintf.h
index 3f0a3aec..0857d6d8 100644
--- a/lib/unistdio/u-asprintf.h
+++ b/lib/unistdio/u-asprintf.h
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
@@ -27,10 +27,8 @@ int
ASPRINTF (DCHAR_T **resultp, const FCHAR_T *format, ...)
{
va_list args;
- int result;
-
va_start (args, format);
- result = VASPRINTF (resultp, format, args);
+ int result = VASPRINTF (resultp, format, args);
va_end (args);
return result;
}
diff --git a/lib/unistdio/u-printf-args.c b/lib/unistdio/u-printf-args.c
index ab1e405e..ce9c9ef7 100644
--- a/lib/unistdio/u-printf-args.c
+++ b/lib/unistdio/u-printf-args.c
@@ -1,5 +1,5 @@
/* Decomposed printf argument list.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u-printf-args.h b/lib/unistdio/u-printf-args.h
index e57f1115..2e88f1d2 100644
--- a/lib/unistdio/u-printf-args.h
+++ b/lib/unistdio/u-printf-args.h
@@ -1,5 +1,5 @@
/* Decomposed printf argument list.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u-printf-parse.h b/lib/unistdio/u-printf-parse.h
index 4e9e91ca..9bd58c24 100644
--- a/lib/unistdio/u-printf-parse.h
+++ b/lib/unistdio/u-printf-parse.h
@@ -1,5 +1,5 @@
/* Parse printf format string.
- Copyright (C) 1999, 2002, 2005, 2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005, 2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u-snprintf.h b/lib/unistdio/u-snprintf.h
index 749707c9..0c2186b3 100644
--- a/lib/unistdio/u-snprintf.h
+++ b/lib/unistdio/u-snprintf.h
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
@@ -27,10 +27,8 @@ int
SNPRINTF (DCHAR_T *buf, size_t size, const FCHAR_T *format, ...)
{
va_list args;
- int result;
-
va_start (args, format);
- result = VSNPRINTF (buf, size, format, args);
+ int result = VSNPRINTF (buf, size, format, args);
va_end (args);
return result;
}
diff --git a/lib/unistdio/u-sprintf.h b/lib/unistdio/u-sprintf.h
index 726172c1..d3d50a63 100644
--- a/lib/unistdio/u-sprintf.h
+++ b/lib/unistdio/u-sprintf.h
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
@@ -27,10 +27,8 @@ int
SPRINTF (DCHAR_T *buf, const FCHAR_T *format, ...)
{
va_list args;
- int result;
-
va_start (args, format);
- result = VSPRINTF (buf, format, args);
+ int result = VSPRINTF (buf, format, args);
va_end (args);
return result;
}
diff --git a/lib/unistdio/u-vasprintf.h b/lib/unistdio/u-vasprintf.h
index e6cefb1d..1e994823 100644
--- a/lib/unistdio/u-vasprintf.h
+++ b/lib/unistdio/u-vasprintf.h
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unistdio/u-vsnprintf.h b/lib/unistdio/u-vsnprintf.h
index 85b77f43..e4105324 100644
--- a/lib/unistdio/u-vsnprintf.h
+++ b/lib/unistdio/u-vsnprintf.h
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -26,13 +26,12 @@ int
VSNPRINTF (DCHAR_T *buf, size_t size, const FCHAR_T *format, va_list args)
{
size_t length;
- DCHAR_T *result;
if (size == 0)
buf = NULL;
else
length = size;
- result = VASNPRINTF (buf, &length, format, args);
+ DCHAR_T *result = VASNPRINTF (buf, &length, format, args);
if (result == NULL)
return -1;
diff --git a/lib/unistdio/u-vsprintf.h b/lib/unistdio/u-vsprintf.h
index d1604034..4cc7506b 100644
--- a/lib/unistdio/u-vsprintf.h
+++ b/lib/unistdio/u-vsprintf.h
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -34,15 +34,13 @@ VSPRINTF (DCHAR_T *buf, const FCHAR_T *format, va_list args)
Also note that glibc's iconv fails with E2BIG when we pass a length that
is so large that buf + length wraps around, i.e.
(uintptr_t) (buf + length) < (uintptr_t) buf. */
- size_t length;
- DCHAR_T *result;
/* Set length = min (SIZE_MAX, INT_MAX, - (uintptr_t) buf - 1). */
- length = (SIZE_MAX < INT_MAX ? SIZE_MAX : INT_MAX);
+ size_t length = (SIZE_MAX < INT_MAX ? SIZE_MAX : INT_MAX);
if (length > (~ (uintptr_t) buf) / sizeof (DCHAR_T))
length = (~ (uintptr_t) buf) / sizeof (DCHAR_T);
- result = VASNPRINTF (buf, &length, format, args);
+ DCHAR_T *result = VASNPRINTF (buf, &length, format, args);
if (result == NULL)
return -1;
diff --git a/lib/unistdio/u16-asnprintf.c b/lib/unistdio/u16-asnprintf.c
index ad3579e9..31ffca73 100644
--- a/lib/unistdio/u16-asnprintf.c
+++ b/lib/unistdio/u16-asnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-asprintf.c b/lib/unistdio/u16-asprintf.c
index 4c7fc7d6..dd8c7b43 100644
--- a/lib/unistdio/u16-asprintf.c
+++ b/lib/unistdio/u16-asprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-printf-parse.c b/lib/unistdio/u16-printf-parse.c
index aa4ddf68..17ef8e06 100644
--- a/lib/unistdio/u16-printf-parse.c
+++ b/lib/unistdio/u16-printf-parse.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
This file is free software.
diff --git a/lib/unistdio/u16-snprintf.c b/lib/unistdio/u16-snprintf.c
index 415b0ac3..6dc5694b 100644
--- a/lib/unistdio/u16-snprintf.c
+++ b/lib/unistdio/u16-snprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-sprintf.c b/lib/unistdio/u16-sprintf.c
index cd54e6a1..eb699fa7 100644
--- a/lib/unistdio/u16-sprintf.c
+++ b/lib/unistdio/u16-sprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-u16-asnprintf.c b/lib/unistdio/u16-u16-asnprintf.c
index 760d51ab..cb733a57 100644
--- a/lib/unistdio/u16-u16-asnprintf.c
+++ b/lib/unistdio/u16-u16-asnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-u16-asprintf.c b/lib/unistdio/u16-u16-asprintf.c
index 83db68b5..e353916e 100644
--- a/lib/unistdio/u16-u16-asprintf.c
+++ b/lib/unistdio/u16-u16-asprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-u16-snprintf.c b/lib/unistdio/u16-u16-snprintf.c
index 2b59be12..80b936bd 100644
--- a/lib/unistdio/u16-u16-snprintf.c
+++ b/lib/unistdio/u16-u16-snprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-u16-sprintf.c b/lib/unistdio/u16-u16-sprintf.c
index 6d7c5d0e..47602e37 100644
--- a/lib/unistdio/u16-u16-sprintf.c
+++ b/lib/unistdio/u16-u16-sprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-u16-vasnprintf.c b/lib/unistdio/u16-u16-vasnprintf.c
index e38c3906..35a31868 100644
--- a/lib/unistdio/u16-u16-vasnprintf.c
+++ b/lib/unistdio/u16-u16-vasnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to UTF-16 strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-u16-vasprintf.c b/lib/unistdio/u16-u16-vasprintf.c
index b9cbef9e..5513e469 100644
--- a/lib/unistdio/u16-u16-vasprintf.c
+++ b/lib/unistdio/u16-u16-vasprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-u16-vsnprintf.c b/lib/unistdio/u16-u16-vsnprintf.c
index 79a9075c..b6b3bb4f 100644
--- a/lib/unistdio/u16-u16-vsnprintf.c
+++ b/lib/unistdio/u16-u16-vsnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-u16-vsprintf.c b/lib/unistdio/u16-u16-vsprintf.c
index 5bf747e3..f8d86c95 100644
--- a/lib/unistdio/u16-u16-vsprintf.c
+++ b/lib/unistdio/u16-u16-vsprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-vasnprintf.c b/lib/unistdio/u16-vasnprintf.c
index be857749..20b730e3 100644
--- a/lib/unistdio/u16-vasnprintf.c
+++ b/lib/unistdio/u16-vasnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to UTF-16 strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-vasprintf.c b/lib/unistdio/u16-vasprintf.c
index 340db84e..510c27fc 100644
--- a/lib/unistdio/u16-vasprintf.c
+++ b/lib/unistdio/u16-vasprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-vsnprintf.c b/lib/unistdio/u16-vsnprintf.c
index 3eb0d2ed..6bce523f 100644
--- a/lib/unistdio/u16-vsnprintf.c
+++ b/lib/unistdio/u16-vsnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-vsprintf.c b/lib/unistdio/u16-vsprintf.c
index 0d53adb5..ef221b89 100644
--- a/lib/unistdio/u16-vsprintf.c
+++ b/lib/unistdio/u16-vsprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-asnprintf.c b/lib/unistdio/u32-asnprintf.c
index d8673805..46f91e17 100644
--- a/lib/unistdio/u32-asnprintf.c
+++ b/lib/unistdio/u32-asnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-asprintf.c b/lib/unistdio/u32-asprintf.c
index cf39f286..6124d066 100644
--- a/lib/unistdio/u32-asprintf.c
+++ b/lib/unistdio/u32-asprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-printf-parse.c b/lib/unistdio/u32-printf-parse.c
index 78ef1846..4f7bf784 100644
--- a/lib/unistdio/u32-printf-parse.c
+++ b/lib/unistdio/u32-printf-parse.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
This file is free software.
diff --git a/lib/unistdio/u32-snprintf.c b/lib/unistdio/u32-snprintf.c
index e6c7736a..3d3c1f13 100644
--- a/lib/unistdio/u32-snprintf.c
+++ b/lib/unistdio/u32-snprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-sprintf.c b/lib/unistdio/u32-sprintf.c
index ddfc5d53..edc2ea78 100644
--- a/lib/unistdio/u32-sprintf.c
+++ b/lib/unistdio/u32-sprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-u32-asnprintf.c b/lib/unistdio/u32-u32-asnprintf.c
index 239ce9af..8521d4f0 100644
--- a/lib/unistdio/u32-u32-asnprintf.c
+++ b/lib/unistdio/u32-u32-asnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-u32-asprintf.c b/lib/unistdio/u32-u32-asprintf.c
index e23ec281..f1654a0e 100644
--- a/lib/unistdio/u32-u32-asprintf.c
+++ b/lib/unistdio/u32-u32-asprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-u32-snprintf.c b/lib/unistdio/u32-u32-snprintf.c
index a5b9b6c0..840dc5a7 100644
--- a/lib/unistdio/u32-u32-snprintf.c
+++ b/lib/unistdio/u32-u32-snprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-u32-sprintf.c b/lib/unistdio/u32-u32-sprintf.c
index 60733ef2..76f00bd3 100644
--- a/lib/unistdio/u32-u32-sprintf.c
+++ b/lib/unistdio/u32-u32-sprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-u32-vasnprintf.c b/lib/unistdio/u32-u32-vasnprintf.c
index 3bb7dece..3c2a5b93 100644
--- a/lib/unistdio/u32-u32-vasnprintf.c
+++ b/lib/unistdio/u32-u32-vasnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to UTF-32 strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-u32-vasprintf.c b/lib/unistdio/u32-u32-vasprintf.c
index dcc3bff2..627ff486 100644
--- a/lib/unistdio/u32-u32-vasprintf.c
+++ b/lib/unistdio/u32-u32-vasprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-u32-vsnprintf.c b/lib/unistdio/u32-u32-vsnprintf.c
index da144712..d12aecd8 100644
--- a/lib/unistdio/u32-u32-vsnprintf.c
+++ b/lib/unistdio/u32-u32-vsnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-u32-vsprintf.c b/lib/unistdio/u32-u32-vsprintf.c
index e80a1515..de1e9f78 100644
--- a/lib/unistdio/u32-u32-vsprintf.c
+++ b/lib/unistdio/u32-u32-vsprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-vasnprintf.c b/lib/unistdio/u32-vasnprintf.c
index c79f5356..005a5784 100644
--- a/lib/unistdio/u32-vasnprintf.c
+++ b/lib/unistdio/u32-vasnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to UTF-32 strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-vasprintf.c b/lib/unistdio/u32-vasprintf.c
index 5fa3428f..c9a6131e 100644
--- a/lib/unistdio/u32-vasprintf.c
+++ b/lib/unistdio/u32-vasprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-vsnprintf.c b/lib/unistdio/u32-vsnprintf.c
index a61a1c45..e745218f 100644
--- a/lib/unistdio/u32-vsnprintf.c
+++ b/lib/unistdio/u32-vsnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-vsprintf.c b/lib/unistdio/u32-vsprintf.c
index 66904dfe..0b8d1b7b 100644
--- a/lib/unistdio/u32-vsprintf.c
+++ b/lib/unistdio/u32-vsprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-asnprintf.c b/lib/unistdio/u8-asnprintf.c
index dcaf038e..83c47c64 100644
--- a/lib/unistdio/u8-asnprintf.c
+++ b/lib/unistdio/u8-asnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-asprintf.c b/lib/unistdio/u8-asprintf.c
index b4e42576..02a53ab5 100644
--- a/lib/unistdio/u8-asprintf.c
+++ b/lib/unistdio/u8-asprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-printf-parse.c b/lib/unistdio/u8-printf-parse.c
index 40b0bf1b..23eb384f 100644
--- a/lib/unistdio/u8-printf-parse.c
+++ b/lib/unistdio/u8-printf-parse.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
This file is free software.
diff --git a/lib/unistdio/u8-snprintf.c b/lib/unistdio/u8-snprintf.c
index 8bcc7e03..7dff6ae0 100644
--- a/lib/unistdio/u8-snprintf.c
+++ b/lib/unistdio/u8-snprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-sprintf.c b/lib/unistdio/u8-sprintf.c
index ead7f9b9..f99a4c14 100644
--- a/lib/unistdio/u8-sprintf.c
+++ b/lib/unistdio/u8-sprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-u8-asnprintf.c b/lib/unistdio/u8-u8-asnprintf.c
index 27a896c3..eb75fb89 100644
--- a/lib/unistdio/u8-u8-asnprintf.c
+++ b/lib/unistdio/u8-u8-asnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-u8-asprintf.c b/lib/unistdio/u8-u8-asprintf.c
index 3b5c35a2..a7a8d5a6 100644
--- a/lib/unistdio/u8-u8-asprintf.c
+++ b/lib/unistdio/u8-u8-asprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-u8-snprintf.c b/lib/unistdio/u8-u8-snprintf.c
index 639c110f..cc3c36a7 100644
--- a/lib/unistdio/u8-u8-snprintf.c
+++ b/lib/unistdio/u8-u8-snprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-u8-sprintf.c b/lib/unistdio/u8-u8-sprintf.c
index d99473c7..b49271da 100644
--- a/lib/unistdio/u8-u8-sprintf.c
+++ b/lib/unistdio/u8-u8-sprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-u8-vasnprintf.c b/lib/unistdio/u8-u8-vasnprintf.c
index ad9dc510..d757d6f1 100644
--- a/lib/unistdio/u8-u8-vasnprintf.c
+++ b/lib/unistdio/u8-u8-vasnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to UTF-8 strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-u8-vasprintf.c b/lib/unistdio/u8-u8-vasprintf.c
index 41fbcc80..29a940d5 100644
--- a/lib/unistdio/u8-u8-vasprintf.c
+++ b/lib/unistdio/u8-u8-vasprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-u8-vsnprintf.c b/lib/unistdio/u8-u8-vsnprintf.c
index face3478..b4a38d4f 100644
--- a/lib/unistdio/u8-u8-vsnprintf.c
+++ b/lib/unistdio/u8-u8-vsnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-u8-vsprintf.c b/lib/unistdio/u8-u8-vsprintf.c
index f02304fc..a54c0e72 100644
--- a/lib/unistdio/u8-u8-vsprintf.c
+++ b/lib/unistdio/u8-u8-vsprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-vasnprintf.c b/lib/unistdio/u8-vasnprintf.c
index 88e59ae4..d142e959 100644
--- a/lib/unistdio/u8-vasnprintf.c
+++ b/lib/unistdio/u8-vasnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to UTF-8 strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-vasprintf.c b/lib/unistdio/u8-vasprintf.c
index b92b990c..0fc6147f 100644
--- a/lib/unistdio/u8-vasprintf.c
+++ b/lib/unistdio/u8-vasprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-vsnprintf.c b/lib/unistdio/u8-vsnprintf.c
index 18355b4d..2ed10a95 100644
--- a/lib/unistdio/u8-vsnprintf.c
+++ b/lib/unistdio/u8-vsnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-vsprintf.c b/lib/unistdio/u8-vsprintf.c
index a00b38f0..68036b13 100644
--- a/lib/unistdio/u8-vsprintf.c
+++ b/lib/unistdio/u8-vsprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/ulc-asnprintf.c b/lib/unistdio/ulc-asnprintf.c
index 0447862b..f9655f60 100644
--- a/lib/unistdio/ulc-asnprintf.c
+++ b/lib/unistdio/ulc-asnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/ulc-asprintf.c b/lib/unistdio/ulc-asprintf.c
index 9925ad9d..0f9117e9 100644
--- a/lib/unistdio/ulc-asprintf.c
+++ b/lib/unistdio/ulc-asprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/ulc-fprintf.c b/lib/unistdio/ulc-fprintf.c
index 01e4117b..4a0610c7 100644
--- a/lib/unistdio/ulc-fprintf.c
+++ b/lib/unistdio/ulc-fprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to a stream.
- Copyright (C) 2004, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2006-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -43,15 +43,14 @@
int
ulc_fprintf (FILE *fp, const char *format, ...)
{
+ va_list args;
+ va_start (args, format);
+
char buf[2000];
- char *output;
- size_t len;
size_t lenbuf = sizeof (buf);
- va_list args;
+ char *output = ulc_vasnprintf (buf, &lenbuf, format, args);
+ size_t len = lenbuf;
- va_start (args, format);
- output = ulc_vasnprintf (buf, &lenbuf, format, args);
- len = lenbuf;
va_end (args);
if (!output)
diff --git a/lib/unistdio/ulc-printf-parse.c b/lib/unistdio/ulc-printf-parse.c
index 0da84cbd..d391f074 100644
--- a/lib/unistdio/ulc-printf-parse.c
+++ b/lib/unistdio/ulc-printf-parse.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
This file is free software.
diff --git a/lib/unistdio/ulc-snprintf.c b/lib/unistdio/ulc-snprintf.c
index 2660715e..55ac1ac4 100644
--- a/lib/unistdio/ulc-snprintf.c
+++ b/lib/unistdio/ulc-snprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/ulc-sprintf.c b/lib/unistdio/ulc-sprintf.c
index 0907ebcd..a969896e 100644
--- a/lib/unistdio/ulc-sprintf.c
+++ b/lib/unistdio/ulc-sprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/ulc-vasnprintf.c b/lib/unistdio/ulc-vasnprintf.c
index 50ae4f7e..0e47ca40 100644
--- a/lib/unistdio/ulc-vasnprintf.c
+++ b/lib/unistdio/ulc-vasnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/ulc-vasprintf.c b/lib/unistdio/ulc-vasprintf.c
index 816301d0..e6b76b63 100644
--- a/lib/unistdio/ulc-vasprintf.c
+++ b/lib/unistdio/ulc-vasprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/ulc-vfprintf.c b/lib/unistdio/ulc-vfprintf.c
index e5115343..50173e89 100644
--- a/lib/unistdio/ulc-vfprintf.c
+++ b/lib/unistdio/ulc-vfprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to a stream.
- Copyright (C) 2004, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2006-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -44,12 +44,9 @@ int
ulc_vfprintf (FILE *fp, const char *format, va_list args)
{
char buf[2000];
- char *output;
- size_t len;
size_t lenbuf = sizeof (buf);
-
- output = ulc_vasnprintf (buf, &lenbuf, format, args);
- len = lenbuf;
+ char *output = ulc_vasnprintf (buf, &lenbuf, format, args);
+ size_t len = lenbuf;
if (!output)
{
diff --git a/lib/unistdio/ulc-vsnprintf.c b/lib/unistdio/ulc-vsnprintf.c
index a0be069d..ce3ef10e 100644
--- a/lib/unistdio/ulc-vsnprintf.c
+++ b/lib/unistdio/ulc-vsnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/ulc-vsprintf.c b/lib/unistdio/ulc-vsprintf.c
index d6dc5be9..34f2175d 100644
--- a/lib/unistdio/ulc-vsprintf.c
+++ b/lib/unistdio/ulc-vsprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistr.in.h b/lib/unistr.in.h
index 9a8edadf..bbb2988a 100644
--- a/lib/unistr.in.h
+++ b/lib/unistr.in.h
@@ -1,5 +1,5 @@
/* Elementary Unicode string functions.
- Copyright (C) 2001-2002, 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -273,7 +273,7 @@ extern int
# else
static inline int
u32_mbtouc_unsafe (ucs4_t *puc,
- const uint32_t *s, _GL_ATTRIBUTE_MAYBE_UNUSED size_t n)
+ const uint32_t *s, size_t _GL_UNNAMED (n))
{
uint32_t c = *s;
@@ -340,7 +340,7 @@ extern int
# else
static inline int
u32_mbtouc (ucs4_t *puc, const uint32_t *s,
- _GL_ATTRIBUTE_MAYBE_UNUSED size_t n)
+ size_t _GL_UNNAMED (n))
{
uint32_t c = *s;
diff --git a/lib/unistr/u-cmp2.h b/lib/unistr/u-cmp2.h
index 89882846..d5e80ca3 100644
--- a/lib/unistr/u-cmp2.h
+++ b/lib/unistr/u-cmp2.h
@@ -1,5 +1,5 @@
/* Compare pieces of UTF-8/UTF-16/UTF-32 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unistr/u-cpy-alloc.h b/lib/unistr/u-cpy-alloc.h
index baec6d73..001ce16e 100644
--- a/lib/unistr/u-cpy-alloc.h
+++ b/lib/unistr/u-cpy-alloc.h
@@ -1,5 +1,5 @@
/* Copy piece of UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
diff --git a/lib/unistr/u-cpy.h b/lib/unistr/u-cpy.h
index 447c65aa..b683a4a2 100644
--- a/lib/unistr/u-cpy.h
+++ b/lib/unistr/u-cpy.h
@@ -1,5 +1,5 @@
/* Copy piece of UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u-endswith.h b/lib/unistr/u-endswith.h
index d157804a..36f0848b 100644
--- a/lib/unistr/u-endswith.h
+++ b/lib/unistr/u-endswith.h
@@ -1,5 +1,5 @@
/* Substring test for UTF-8/UTF-16/UTF-32 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-move.h b/lib/unistr/u-move.h
index cd4a88af..3f1d1b78 100644
--- a/lib/unistr/u-move.h
+++ b/lib/unistr/u-move.h
@@ -1,5 +1,5 @@
/* Copy piece of UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-pcpy.h b/lib/unistr/u-pcpy.h
index 67155703..1dd6437c 100644
--- a/lib/unistr/u-pcpy.h
+++ b/lib/unistr/u-pcpy.h
@@ -1,5 +1,5 @@
/* Copy piece of UTF-8/16/32 string, return pointer after last written unit.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2023.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u-set.h b/lib/unistr/u-set.h
index effe8564..22777c2f 100644
--- a/lib/unistr/u-set.h
+++ b/lib/unistr/u-set.h
@@ -1,5 +1,5 @@
/* Fill UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-startswith.h b/lib/unistr/u-startswith.h
index f398a94e..5a849142 100644
--- a/lib/unistr/u-startswith.h
+++ b/lib/unistr/u-startswith.h
@@ -1,5 +1,5 @@
/* Substring test for UTF-8/UTF-16/UTF-32 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-stpcpy.h b/lib/unistr/u-stpcpy.h
index b4bb70d9..30968f7b 100644
--- a/lib/unistr/u-stpcpy.h
+++ b/lib/unistr/u-stpcpy.h
@@ -1,5 +1,5 @@
/* Copy UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-stpncpy.h b/lib/unistr/u-stpncpy.h
index cd9ed379..4420b5cc 100644
--- a/lib/unistr/u-stpncpy.h
+++ b/lib/unistr/u-stpncpy.h
@@ -1,5 +1,5 @@
/* Copy UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-strcat.h b/lib/unistr/u-strcat.h
index 13076c70..3afb9cf2 100644
--- a/lib/unistr/u-strcat.h
+++ b/lib/unistr/u-strcat.h
@@ -1,5 +1,5 @@
/* Concatenate UTF-8/UTF-16/UTF-32 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u-strcoll.h b/lib/unistr/u-strcoll.h
index e53feb02..8279e68c 100644
--- a/lib/unistr/u-strcoll.h
+++ b/lib/unistr/u-strcoll.h
@@ -1,6 +1,6 @@
/* Compare UTF-8/UTF-16/UTF-32 strings using the collation rules of the current
locale.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unistr/u-strcpy.h b/lib/unistr/u-strcpy.h
index 80975351..fa948ad1 100644
--- a/lib/unistr/u-strcpy.h
+++ b/lib/unistr/u-strcpy.h
@@ -1,5 +1,5 @@
/* Copy UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-strcspn.h b/lib/unistr/u-strcspn.h
index bbc75ed9..a12c4172 100644
--- a/lib/unistr/u-strcspn.h
+++ b/lib/unistr/u-strcspn.h
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-strdup.h b/lib/unistr/u-strdup.h
index 99ff4cb2..9b8e7b90 100644
--- a/lib/unistr/u-strdup.h
+++ b/lib/unistr/u-strdup.h
@@ -1,5 +1,5 @@
/* Copy UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
diff --git a/lib/unistr/u-strlen.h b/lib/unistr/u-strlen.h
index d4e75f3a..af2ed80f 100644
--- a/lib/unistr/u-strlen.h
+++ b/lib/unistr/u-strlen.h
@@ -1,5 +1,5 @@
/* Determine length of UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u-strncat.h b/lib/unistr/u-strncat.h
index 3801bfba..974ddca9 100644
--- a/lib/unistr/u-strncat.h
+++ b/lib/unistr/u-strncat.h
@@ -1,5 +1,5 @@
/* Concatenate UTF-8/UTF-16/UTF-32 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-strncpy.h b/lib/unistr/u-strncpy.h
index e733b9b7..12c46c60 100644
--- a/lib/unistr/u-strncpy.h
+++ b/lib/unistr/u-strncpy.h
@@ -1,5 +1,5 @@
/* Copy UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-strnlen.h b/lib/unistr/u-strnlen.h
index 65e396be..3fb6e9b4 100644
--- a/lib/unistr/u-strnlen.h
+++ b/lib/unistr/u-strnlen.h
@@ -1,5 +1,5 @@
/* Determine bounded length of UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-strpbrk.h b/lib/unistr/u-strpbrk.h
index 9213c616..a7dcca82 100644
--- a/lib/unistr/u-strpbrk.h
+++ b/lib/unistr/u-strpbrk.h
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-strspn.h b/lib/unistr/u-strspn.h
index c3f67844..dcaac120 100644
--- a/lib/unistr/u-strspn.h
+++ b/lib/unistr/u-strspn.h
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-strtok.h b/lib/unistr/u-strtok.h
index a48d3093..826d91e1 100644
--- a/lib/unistr/u-strtok.h
+++ b/lib/unistr/u-strtok.h
@@ -1,5 +1,5 @@
/* Tokenize UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-check.c b/lib/unistr/u16-check.c
index 485bb8ea..facf858e 100644
--- a/lib/unistr/u16-check.c
+++ b/lib/unistr/u16-check.c
@@ -1,5 +1,5 @@
/* Check UTF-16 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-chr.c b/lib/unistr/u16-chr.c
index 6c7999ad..75d75dfc 100644
--- a/lib/unistr/u16-chr.c
+++ b/lib/unistr/u16-chr.c
@@ -1,5 +1,5 @@
/* Search character in piece of UTF-16 string.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
@@ -35,8 +35,6 @@
uint16_t *
u16_chr (const uint16_t *s, size_t n, ucs4_t uc)
{
- uint16_t c[2];
-
if (uc < 0x10000)
{
uint16_t c0 = uc;
@@ -48,21 +46,25 @@ u16_chr (const uint16_t *s, size_t n, ucs4_t uc)
}
}
else
- switch (u16_uctomb_aux (c, uc, 2))
- {
- case 2:
- if (n > 1)
- {
- uint16_t c0 = c[0];
- uint16_t c1 = c[1];
+ {
+ uint16_t c[2];
+
+ switch (u16_uctomb_aux (c, uc, 2))
+ {
+ case 2:
+ if (n > 1)
+ {
+ uint16_t c0 = c[0];
+ uint16_t c1 = c[1];
- for (n--; n > 0; s++, n--)
- {
- if (*s == c0 && s[1] == c1)
- return (uint16_t *) s;
- }
- }
- break;
- }
+ for (n--; n > 0; s++, n--)
+ {
+ if (*s == c0 && s[1] == c1)
+ return (uint16_t *) s;
+ }
+ }
+ break;
+ }
+ }
return NULL;
}
diff --git a/lib/unistr/u16-cmp.c b/lib/unistr/u16-cmp.c
index cedf9d2e..8ebe5d22 100644
--- a/lib/unistr/u16-cmp.c
+++ b/lib/unistr/u16-cmp.c
@@ -1,5 +1,5 @@
/* Compare pieces of UTF-16 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -34,29 +34,27 @@ u16_cmp (const uint16_t *s1, const uint16_t *s2, size_t n)
/* Note that the UTF-16 encoding does NOT preserve lexicographic order.
Namely, if uc1 is a 16-bit character and [uc2a,uc2b] is a surrogate pair,
we must enforce uc1 < [uc2a,uc2b], even if uc1 > uc2a. */
- for (; n > 0;)
+ for (; n > 0; n--)
{
uint16_t c1 = *s1++;
uint16_t c2 = *s2++;
- if (c1 == c2)
+ if (c1 != c2)
{
- n--;
- continue;
+ if (c1 < 0xd800 || c1 >= 0xe000)
+ {
+ if (!(c2 < 0xd800 || c2 >= 0xe000))
+ /* c2 is a surrogate, but c1 is not. */
+ return -1;
+ }
+ else
+ {
+ if (c2 < 0xd800 || c2 >= 0xe000)
+ /* c1 is a surrogate, but c2 is not. */
+ return 1;
+ }
+ return (int)c1 - (int)c2;
+ /* > 0 if c1 > c2, < 0 if c1 < c2. */
}
- if (c1 < 0xd800 || c1 >= 0xe000)
- {
- if (!(c2 < 0xd800 || c2 >= 0xe000))
- /* c2 is a surrogate, but c1 is not. */
- return -1;
- }
- else
- {
- if (c2 < 0xd800 || c2 >= 0xe000)
- /* c1 is a surrogate, but c2 is not. */
- return 1;
- }
- return (int)c1 - (int)c2;
- /* > 0 if c1 > c2, < 0 if c1 < c2. */
}
return 0;
}
diff --git a/lib/unistr/u16-cmp2.c b/lib/unistr/u16-cmp2.c
index 7bf33bd5..27259e86 100644
--- a/lib/unistr/u16-cmp2.c
+++ b/lib/unistr/u16-cmp2.c
@@ -1,5 +1,5 @@
/* Compare pieces of UTF-16 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unistr/u16-cpy-alloc.c b/lib/unistr/u16-cpy-alloc.c
index b105a72e..c3cc36ec 100644
--- a/lib/unistr/u16-cpy-alloc.c
+++ b/lib/unistr/u16-cpy-alloc.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-cpy.c b/lib/unistr/u16-cpy.c
index 73bfc197..b8632273 100644
--- a/lib/unistr/u16-cpy.c
+++ b/lib/unistr/u16-cpy.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-endswith.c b/lib/unistr/u16-endswith.c
index 02f7955c..55f80578 100644
--- a/lib/unistr/u16-endswith.c
+++ b/lib/unistr/u16-endswith.c
@@ -1,5 +1,5 @@
/* Substring test for UTF-16 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-mblen.c b/lib/unistr/u16-mblen.c
index d4f3e73a..0082594a 100644
--- a/lib/unistr/u16-mblen.c
+++ b/lib/unistr/u16-mblen.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-16 string.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
diff --git a/lib/unistr/u16-mbsnlen.c b/lib/unistr/u16-mbsnlen.c
index 43f23c5b..211df43c 100644
--- a/lib/unistr/u16-mbsnlen.c
+++ b/lib/unistr/u16-mbsnlen.c
@@ -1,5 +1,5 @@
/* Count characters in UTF-16 string.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
@@ -31,9 +31,7 @@
size_t
u16_mbsnlen (const uint16_t *s, size_t n)
{
- size_t characters;
-
- characters = 0;
+ size_t characters = 0;
while (n > 0)
{
ucs4_t uc;
diff --git a/lib/unistr/u16-mbtouc-aux.c b/lib/unistr/u16-mbtouc-aux.c
index 1266e7da..4748141d 100644
--- a/lib/unistr/u16-mbtouc-aux.c
+++ b/lib/unistr/u16-mbtouc-aux.c
@@ -1,5 +1,5 @@
/* Conversion UTF-16 to UCS-4.
- Copyright (C) 2001-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unistr/u16-mbtouc-unsafe-aux.c b/lib/unistr/u16-mbtouc-unsafe-aux.c
index b14e7296..4c2b9cf4 100644
--- a/lib/unistr/u16-mbtouc-unsafe-aux.c
+++ b/lib/unistr/u16-mbtouc-unsafe-aux.c
@@ -1,5 +1,5 @@
/* Conversion UTF-16 to UCS-4.
- Copyright (C) 2001-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unistr/u16-mbtouc-unsafe.c b/lib/unistr/u16-mbtouc-unsafe.c
index 37c1a7cf..4f015ac5 100644
--- a/lib/unistr/u16-mbtouc-unsafe.c
+++ b/lib/unistr/u16-mbtouc-unsafe.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-16 string.
- Copyright (C) 1999-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unistr/u16-mbtouc.c b/lib/unistr/u16-mbtouc.c
index a42437dc..37debe0b 100644
--- a/lib/unistr/u16-mbtouc.c
+++ b/lib/unistr/u16-mbtouc.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-16 string.
- Copyright (C) 1999-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unistr/u16-mbtoucr.c b/lib/unistr/u16-mbtoucr.c
index 0d94ec2b..6abfe551 100644
--- a/lib/unistr/u16-mbtoucr.c
+++ b/lib/unistr/u16-mbtoucr.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-16 string, returning an error code.
- Copyright (C) 1999-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u16-move.c b/lib/unistr/u16-move.c
index 70b64a2a..cdef80b0 100644
--- a/lib/unistr/u16-move.c
+++ b/lib/unistr/u16-move.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-next.c b/lib/unistr/u16-next.c
index d74ae224..e2cc035b 100644
--- a/lib/unistr/u16-next.c
+++ b/lib/unistr/u16-next.c
@@ -1,5 +1,5 @@
/* Iterate over next character in UTF-16 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -34,9 +34,7 @@
const uint16_t *
u16_next (ucs4_t *puc, const uint16_t *s)
{
- int count;
-
- count = u16_strmbtouc (puc, s);
+ int count = u16_strmbtouc (puc, s);
if (count > 0)
return s + count;
else
diff --git a/lib/unistr/u16-pcpy.c b/lib/unistr/u16-pcpy.c
index 042234bf..fd1f9ac4 100644
--- a/lib/unistr/u16-pcpy.c
+++ b/lib/unistr/u16-pcpy.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-16 string, return pointer after last written unit.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2023.
This file is free software.
diff --git a/lib/unistr/u16-prev.c b/lib/unistr/u16-prev.c
index 53823e06..b49a8e81 100644
--- a/lib/unistr/u16-prev.c
+++ b/lib/unistr/u16-prev.c
@@ -1,5 +1,5 @@
/* Iterate over previous character in UTF-16 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-set.c b/lib/unistr/u16-set.c
index 9c830b7e..04d2ca2d 100644
--- a/lib/unistr/u16-set.c
+++ b/lib/unistr/u16-set.c
@@ -1,5 +1,5 @@
/* Fill UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-startswith.c b/lib/unistr/u16-startswith.c
index cd873713..19769a08 100644
--- a/lib/unistr/u16-startswith.c
+++ b/lib/unistr/u16-startswith.c
@@ -1,5 +1,5 @@
/* Substring test for UTF-16 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-stpcpy.c b/lib/unistr/u16-stpcpy.c
index 46fdfa3a..49abec53 100644
--- a/lib/unistr/u16-stpcpy.c
+++ b/lib/unistr/u16-stpcpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-16 string.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
diff --git a/lib/unistr/u16-stpncpy.c b/lib/unistr/u16-stpncpy.c
index 04119635..6d9bfd70 100644
--- a/lib/unistr/u16-stpncpy.c
+++ b/lib/unistr/u16-stpncpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strcat.c b/lib/unistr/u16-strcat.c
index 8ced49b5..64d525c3 100644
--- a/lib/unistr/u16-strcat.c
+++ b/lib/unistr/u16-strcat.c
@@ -1,5 +1,5 @@
/* Concatenate UTF-16 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strchr.c b/lib/unistr/u16-strchr.c
index 832c0e8f..4a533b0f 100644
--- a/lib/unistr/u16-strchr.c
+++ b/lib/unistr/u16-strchr.c
@@ -1,5 +1,5 @@
/* Search character in UTF-16 string.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
@@ -35,8 +35,6 @@
uint16_t *
u16_strchr (const uint16_t *s, ucs4_t uc)
{
- uint16_t c[2];
-
if (uc < 0x10000)
{
uint16_t c0 = uc;
@@ -51,25 +49,29 @@ u16_strchr (const uint16_t *s, ucs4_t uc)
return (uint16_t *) s;
}
else
- switch (u16_uctomb_aux (c, uc, 2))
- {
- case 2:
- if (*s == 0)
- goto notfound;
+ {
+ uint16_t c[2];
+
+ switch (u16_uctomb_aux (c, uc, 2))
{
- uint16_t c0 = c[0];
- uint16_t c1 = c[1];
+ case 2:
+ if (*s == 0)
+ goto notfound;
+ {
+ uint16_t c0 = c[0];
+ uint16_t c1 = c[1];
- for (;; s++)
- {
- if (s[1] == 0)
- goto notfound;
- if (*s == c0 && s[1] == c1)
- break;
- }
- return (uint16_t *) s;
+ for (;; s++)
+ {
+ if (s[1] == 0)
+ goto notfound;
+ if (*s == c0 && s[1] == c1)
+ break;
+ }
+ return (uint16_t *) s;
+ }
}
- }
+ }
notfound:
return NULL;
}
diff --git a/lib/unistr/u16-strcmp.c b/lib/unistr/u16-strcmp.c
index 8dd332d7..96c2c1cc 100644
--- a/lib/unistr/u16-strcmp.c
+++ b/lib/unistr/u16-strcmp.c
@@ -1,5 +1,5 @@
/* Compare UTF-16 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -38,21 +38,22 @@ u16_strcmp (const uint16_t *s1, const uint16_t *s2)
{
uint16_t c1 = *s1++;
uint16_t c2 = *s2++;
- if (c1 != 0 && c1 == c2)
- continue;
- if (c1 < 0xd800 || c1 >= 0xe000)
+ if (c1 == 0 || c1 != c2)
{
- if (!(c2 < 0xd800 || c2 >= 0xe000))
- /* c2 is a surrogate, but c1 is not. */
- return -1;
+ if (c1 < 0xd800 || c1 >= 0xe000)
+ {
+ if (!(c2 < 0xd800 || c2 >= 0xe000))
+ /* c2 is a surrogate, but c1 is not. */
+ return -1;
+ }
+ else
+ {
+ if (c2 < 0xd800 || c2 >= 0xe000)
+ /* c1 is a surrogate, but c2 is not. */
+ return 1;
+ }
+ return (int)c1 - (int)c2;
+ /* > 0 if c1 > c2, < 0 if c1 < c2. */
}
- else
- {
- if (c2 < 0xd800 || c2 >= 0xe000)
- /* c1 is a surrogate, but c2 is not. */
- return 1;
- }
- return (int)c1 - (int)c2;
- /* > 0 if c1 > c2, < 0 if c1 < c2. */
}
}
diff --git a/lib/unistr/u16-strcoll.c b/lib/unistr/u16-strcoll.c
index 92239b4d..94a19fc1 100644
--- a/lib/unistr/u16-strcoll.c
+++ b/lib/unistr/u16-strcoll.c
@@ -1,5 +1,5 @@
/* Compare UTF-16 strings using the collation rules of the current locale.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unistr/u16-strcpy.c b/lib/unistr/u16-strcpy.c
index 6d108246..7c1a3828 100644
--- a/lib/unistr/u16-strcpy.c
+++ b/lib/unistr/u16-strcpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strcspn.c b/lib/unistr/u16-strcspn.c
index bfc5461b..180de924 100644
--- a/lib/unistr/u16-strcspn.c
+++ b/lib/unistr/u16-strcspn.c
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strdup.c b/lib/unistr/u16-strdup.c
index 68de4236..9dff85d7 100644
--- a/lib/unistr/u16-strdup.c
+++ b/lib/unistr/u16-strdup.c
@@ -1,5 +1,5 @@
/* Copy UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strlen.c b/lib/unistr/u16-strlen.c
index 24b77bd0..8b2b5837 100644
--- a/lib/unistr/u16-strlen.c
+++ b/lib/unistr/u16-strlen.c
@@ -1,5 +1,5 @@
/* Determine length of UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u16-strmblen.c b/lib/unistr/u16-strmblen.c
index 51413046..3ca260c6 100644
--- a/lib/unistr/u16-strmblen.c
+++ b/lib/unistr/u16-strmblen.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-16 string.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
diff --git a/lib/unistr/u16-strmbtouc.c b/lib/unistr/u16-strmbtouc.c
index d87ed759..8fb43df1 100644
--- a/lib/unistr/u16-strmbtouc.c
+++ b/lib/unistr/u16-strmbtouc.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-16 string.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
diff --git a/lib/unistr/u16-strncat.c b/lib/unistr/u16-strncat.c
index dd701957..147f8fb4 100644
--- a/lib/unistr/u16-strncat.c
+++ b/lib/unistr/u16-strncat.c
@@ -1,5 +1,5 @@
/* Concatenate UTF-16 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strncmp.c b/lib/unistr/u16-strncmp.c
index 3bba6e22..795435a5 100644
--- a/lib/unistr/u16-strncmp.c
+++ b/lib/unistr/u16-strncmp.c
@@ -1,5 +1,5 @@
/* Compare UTF-16 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -34,29 +34,27 @@ u16_strncmp (const uint16_t *s1, const uint16_t *s2, size_t n)
/* Note that the UTF-16 encoding does NOT preserve lexicographic order.
Namely, if uc1 is a 16-bit character and [uc2a,uc2b] is a surrogate pair,
we must enforce uc1 < [uc2a,uc2b], even if uc1 > uc2a. */
- for (; n > 0;)
+ for (; n > 0; n--)
{
uint16_t c1 = *s1++;
uint16_t c2 = *s2++;
- if (c1 != 0 && c1 == c2)
+ if (c1 == 0 || c1 != c2)
{
- n--;
- continue;
+ if (c1 < 0xd800 || c1 >= 0xe000)
+ {
+ if (!(c2 < 0xd800 || c2 >= 0xe000))
+ /* c2 is a surrogate, but c1 is not. */
+ return -1;
+ }
+ else
+ {
+ if (c2 < 0xd800 || c2 >= 0xe000)
+ /* c1 is a surrogate, but c2 is not. */
+ return 1;
+ }
+ return (int)c1 - (int)c2;
+ /* > 0 if c1 > c2, < 0 if c1 < c2, = 0 if c1 and c2 are both 0. */
}
- if (c1 < 0xd800 || c1 >= 0xe000)
- {
- if (!(c2 < 0xd800 || c2 >= 0xe000))
- /* c2 is a surrogate, but c1 is not. */
- return -1;
- }
- else
- {
- if (c2 < 0xd800 || c2 >= 0xe000)
- /* c1 is a surrogate, but c2 is not. */
- return 1;
- }
- return (int)c1 - (int)c2;
- /* > 0 if c1 > c2, < 0 if c1 < c2, = 0 if c1 and c2 are both 0. */
}
return 0;
}
diff --git a/lib/unistr/u16-strncpy.c b/lib/unistr/u16-strncpy.c
index d39caf5b..05d3ce05 100644
--- a/lib/unistr/u16-strncpy.c
+++ b/lib/unistr/u16-strncpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strnlen.c b/lib/unistr/u16-strnlen.c
index a00d5d8f..a41d2968 100644
--- a/lib/unistr/u16-strnlen.c
+++ b/lib/unistr/u16-strnlen.c
@@ -1,5 +1,5 @@
/* Determine bounded length of UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strpbrk.c b/lib/unistr/u16-strpbrk.c
index e9a65088..b846188b 100644
--- a/lib/unistr/u16-strpbrk.c
+++ b/lib/unistr/u16-strpbrk.c
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strrchr.c b/lib/unistr/u16-strrchr.c
index 6aa7c407..f00d0cd7 100644
--- a/lib/unistr/u16-strrchr.c
+++ b/lib/unistr/u16-strrchr.c
@@ -1,5 +1,5 @@
/* Search character in UTF-16 string.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
@@ -38,7 +38,6 @@ u16_strrchr (const uint16_t *s, ucs4_t uc)
/* Calling u16_strlen and then searching from the other end would cause more
memory accesses. Avoid that, at the cost of a few more comparisons. */
uint16_t *result = NULL;
- uint16_t c[2];
if (uc < 0x10000)
{
@@ -53,24 +52,28 @@ u16_strrchr (const uint16_t *s, ucs4_t uc)
}
}
else
- switch (u16_uctomb_aux (c, uc, 2))
- {
- case 2:
- if (*s)
- {
- uint16_t c0 = c[0];
- uint16_t c1 = c[1];
+ {
+ uint16_t c[2];
+
+ switch (u16_uctomb_aux (c, uc, 2))
+ {
+ case 2:
+ if (*s)
+ {
+ uint16_t c0 = c[0];
+ uint16_t c1 = c[1];
- /* FIXME: Maybe walking the string via u16_mblen is a win? */
- for (;; s++)
- {
- if (s[1] == 0)
- break;
- if (*s == c0 && s[1] == c1)
- result = (uint16_t *) s;
- }
- }
- break;
- }
+ /* FIXME: Maybe walking the string via u16_mblen is a win? */
+ for (;; s++)
+ {
+ if (s[1] == 0)
+ break;
+ if (*s == c0 && s[1] == c1)
+ result = (uint16_t *) s;
+ }
+ }
+ break;
+ }
+ }
return result;
}
diff --git a/lib/unistr/u16-strspn.c b/lib/unistr/u16-strspn.c
index 3b76049c..1494b570 100644
--- a/lib/unistr/u16-strspn.c
+++ b/lib/unistr/u16-strspn.c
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strstr.c b/lib/unistr/u16-strstr.c
index 6e0681dc..e2c1d480 100644
--- a/lib/unistr/u16-strstr.c
+++ b/lib/unistr/u16-strstr.c
@@ -1,5 +1,5 @@
/* Substring test for UTF-16 strings.
- Copyright (C) 1999, 2002, 2006, 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2010-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strtok.c b/lib/unistr/u16-strtok.c
index 2d2b977b..7eaed457 100644
--- a/lib/unistr/u16-strtok.c
+++ b/lib/unistr/u16-strtok.c
@@ -1,5 +1,5 @@
/* Tokenize UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-to-u32.c b/lib/unistr/u16-to-u32.c
index 51e42262..d5229ca8 100644
--- a/lib/unistr/u16-to-u32.c
+++ b/lib/unistr/u16-to-u32.c
@@ -1,5 +1,5 @@
/* Convert UTF-16 string to UTF-32 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
@@ -32,11 +32,10 @@ DST_UNIT *
FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
{
const SRC_UNIT *s_end = s + n;
+
/* Output string accumulator. */
DST_UNIT *result;
size_t allocated;
- size_t length;
-
if (resultbuf != NULL)
{
result = resultbuf;
@@ -47,18 +46,16 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
result = NULL;
allocated = 0;
}
- length = 0;
+ size_t length = 0;
/* Invariants:
result is either == resultbuf or == NULL or malloc-allocated.
If length > 0, then result != NULL. */
while (s < s_end)
{
- ucs4_t uc;
- int count;
-
/* Fetch a Unicode character from the input string. */
- count = u16_mbtoucr (&uc, s, s_end - s);
+ ucs4_t uc;
+ int count = u16_mbtoucr (&uc, s, s_end - s);
if (count < 0)
{
if (!(result == resultbuf || result == NULL))
@@ -71,11 +68,11 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
/* Store it in the output string. */
if (length + 1 > allocated)
{
- DST_UNIT *memory;
-
allocated = (allocated > 0 ? 2 * allocated : 12);
if (length + 1 > allocated)
allocated = length + 1;
+
+ DST_UNIT *memory;
if (result == resultbuf || result == NULL)
memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
else
@@ -113,9 +110,8 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- DST_UNIT *memory;
-
- memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ DST_UNIT *memory =
+ (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/unistr/u16-to-u8.c b/lib/unistr/u16-to-u8.c
index d9f092c4..1af65d65 100644
--- a/lib/unistr/u16-to-u8.c
+++ b/lib/unistr/u16-to-u8.c
@@ -1,5 +1,5 @@
/* Convert UTF-16 string to UTF-8 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -40,11 +40,10 @@ DST_UNIT *
FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
{
const SRC_UNIT *s_end = s + n;
+
/* Output string accumulator. */
DST_UNIT *result;
size_t allocated;
- size_t length;
-
if (resultbuf != NULL)
{
result = resultbuf;
@@ -55,18 +54,16 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
result = NULL;
allocated = 0;
}
- length = 0;
+ size_t length = 0;
/* Invariants:
result is either == resultbuf or == NULL or malloc-allocated.
If length > 0, then result != NULL. */
while (s < s_end)
{
- ucs4_t uc;
- int count;
-
/* Fetch a Unicode character from the input string. */
- count = u16_mbtoucr (&uc, s, s_end - s);
+ ucs4_t uc;
+ int count = u16_mbtoucr (&uc, s, s_end - s);
if (count < 0)
{
if (!(result == resultbuf || result == NULL))
@@ -87,11 +84,11 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
}
if (count == -2)
{
- DST_UNIT *memory;
-
allocated = (allocated > 0 ? 2 * allocated : 12);
if (length + 6 > allocated)
allocated = length + 6;
+
+ DST_UNIT *memory;
if (result == resultbuf || result == NULL)
memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
else
@@ -132,9 +129,8 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- DST_UNIT *memory;
-
- memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ DST_UNIT *memory =
+ (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/unistr/u16-uctomb-aux.c b/lib/unistr/u16-uctomb-aux.c
index c6c04ecf..a0e384e4 100644
--- a/lib/unistr/u16-uctomb-aux.c
+++ b/lib/unistr/u16-uctomb-aux.c
@@ -1,5 +1,5 @@
/* Conversion UCS-4 to UTF-16.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-uctomb.c b/lib/unistr/u16-uctomb.c
index 4ceea331..9e649447 100644
--- a/lib/unistr/u16-uctomb.c
+++ b/lib/unistr/u16-uctomb.c
@@ -1,5 +1,5 @@
/* Store a character in UTF-16 string.
- Copyright (C) 2002, 2005-2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005-2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-check.c b/lib/unistr/u32-check.c
index e6d95e98..abcc26d1 100644
--- a/lib/unistr/u32-check.c
+++ b/lib/unistr/u32-check.c
@@ -1,5 +1,5 @@
/* Check UTF-32 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-chr.c b/lib/unistr/u32-chr.c
index 956c33af..09be3107 100644
--- a/lib/unistr/u32-chr.c
+++ b/lib/unistr/u32-chr.c
@@ -1,5 +1,5 @@
/* Search character in piece of UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u32-cmp.c b/lib/unistr/u32-cmp.c
index e38c7e81..dddb4bc0 100644
--- a/lib/unistr/u32-cmp.c
+++ b/lib/unistr/u32-cmp.c
@@ -1,5 +1,5 @@
/* Compare pieces of UTF-32 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -31,18 +31,16 @@
int
u32_cmp (const uint32_t *s1, const uint32_t *s2, size_t n)
{
- for (; n > 0;)
+ for (; n > 0; n--)
{
uint32_t uc1 = *s1++;
uint32_t uc2 = *s2++;
- if (uc1 == uc2)
+ if (uc1 != uc2)
{
- n--;
- continue;
+ /* Note that uc1 and uc2 each have at most 31 bits. */
+ return (int)uc1 - (int)uc2;
+ /* > 0 if uc1 > uc2, < 0 if uc1 < uc2. */
}
- /* Note that uc1 and uc2 each have at most 31 bits. */
- return (int)uc1 - (int)uc2;
- /* > 0 if uc1 > uc2, < 0 if uc1 < uc2. */
}
return 0;
}
diff --git a/lib/unistr/u32-cmp2.c b/lib/unistr/u32-cmp2.c
index 4a31f8cf..605d8834 100644
--- a/lib/unistr/u32-cmp2.c
+++ b/lib/unistr/u32-cmp2.c
@@ -1,5 +1,5 @@
/* Compare pieces of UTF-32 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unistr/u32-cpy-alloc.c b/lib/unistr/u32-cpy-alloc.c
index 2b48d61f..37aa8c04 100644
--- a/lib/unistr/u32-cpy-alloc.c
+++ b/lib/unistr/u32-cpy-alloc.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-cpy.c b/lib/unistr/u32-cpy.c
index 27275497..fa030b66 100644
--- a/lib/unistr/u32-cpy.c
+++ b/lib/unistr/u32-cpy.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u32-endswith.c b/lib/unistr/u32-endswith.c
index 6f1cd5cb..a9b8d2a4 100644
--- a/lib/unistr/u32-endswith.c
+++ b/lib/unistr/u32-endswith.c
@@ -1,5 +1,5 @@
/* Substring test for UTF-32 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-mblen.c b/lib/unistr/u32-mblen.c
index f3b4fa14..377ad60a 100644
--- a/lib/unistr/u32-mblen.c
+++ b/lib/unistr/u32-mblen.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-32 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-mbsnlen.c b/lib/unistr/u32-mbsnlen.c
index e949beb0..74cc07d8 100644
--- a/lib/unistr/u32-mbsnlen.c
+++ b/lib/unistr/u32-mbsnlen.c
@@ -1,5 +1,5 @@
/* Count characters in UTF-32 string.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
diff --git a/lib/unistr/u32-mbtouc-unsafe.c b/lib/unistr/u32-mbtouc-unsafe.c
index 9e8bfb64..f4150885 100644
--- a/lib/unistr/u32-mbtouc-unsafe.c
+++ b/lib/unistr/u32-mbtouc-unsafe.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-32 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u32-mbtouc.c b/lib/unistr/u32-mbtouc.c
index 2352917e..ddc60783 100644
--- a/lib/unistr/u32-mbtouc.c
+++ b/lib/unistr/u32-mbtouc.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-32 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-mbtoucr.c b/lib/unistr/u32-mbtoucr.c
index 29a38fca..83e34732 100644
--- a/lib/unistr/u32-mbtoucr.c
+++ b/lib/unistr/u32-mbtoucr.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-32 string, returning an error code.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-move.c b/lib/unistr/u32-move.c
index c07e04de..a07d7cd2 100644
--- a/lib/unistr/u32-move.c
+++ b/lib/unistr/u32-move.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-next.c b/lib/unistr/u32-next.c
index 9ed2ef13..1bcf86f4 100644
--- a/lib/unistr/u32-next.c
+++ b/lib/unistr/u32-next.c
@@ -1,5 +1,5 @@
/* Iterate over next character in UTF-32 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -34,9 +34,7 @@
const uint32_t *
u32_next (ucs4_t *puc, const uint32_t *s)
{
- int count;
-
- count = u32_strmbtouc (puc, s);
+ int count = u32_strmbtouc (puc, s);
if (count > 0)
return s + count;
else
diff --git a/lib/unistr/u32-pcpy.c b/lib/unistr/u32-pcpy.c
index 135151c7..f05d9355 100644
--- a/lib/unistr/u32-pcpy.c
+++ b/lib/unistr/u32-pcpy.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-32 string, return pointer after last written unit.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2023.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u32-prev.c b/lib/unistr/u32-prev.c
index 626be452..d8369a70 100644
--- a/lib/unistr/u32-prev.c
+++ b/lib/unistr/u32-prev.c
@@ -1,5 +1,5 @@
/* Iterate over previous character in UTF-32 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-set.c b/lib/unistr/u32-set.c
index 157ad5f5..5c1a9d5c 100644
--- a/lib/unistr/u32-set.c
+++ b/lib/unistr/u32-set.c
@@ -1,5 +1,5 @@
/* Fill UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-startswith.c b/lib/unistr/u32-startswith.c
index 3c2b759d..a96a390d 100644
--- a/lib/unistr/u32-startswith.c
+++ b/lib/unistr/u32-startswith.c
@@ -1,5 +1,5 @@
/* Substring test for UTF-32 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-stpcpy.c b/lib/unistr/u32-stpcpy.c
index dd5b5e3a..5d4937db 100644
--- a/lib/unistr/u32-stpcpy.c
+++ b/lib/unistr/u32-stpcpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-stpncpy.c b/lib/unistr/u32-stpncpy.c
index 3cf683a5..6c657ae1 100644
--- a/lib/unistr/u32-stpncpy.c
+++ b/lib/unistr/u32-stpncpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strcat.c b/lib/unistr/u32-strcat.c
index cb4d3b7b..5ef4a881 100644
--- a/lib/unistr/u32-strcat.c
+++ b/lib/unistr/u32-strcat.c
@@ -1,5 +1,5 @@
/* Concatenate UTF-32 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u32-strchr.c b/lib/unistr/u32-strchr.c
index 8b8abfd7..7e91b09b 100644
--- a/lib/unistr/u32-strchr.c
+++ b/lib/unistr/u32-strchr.c
@@ -1,5 +1,5 @@
/* Search character in UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strcmp.c b/lib/unistr/u32-strcmp.c
index d0ec7d3c..346d46e9 100644
--- a/lib/unistr/u32-strcmp.c
+++ b/lib/unistr/u32-strcmp.c
@@ -1,5 +1,5 @@
/* Compare UTF-32 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -35,10 +35,11 @@ u32_strcmp (const uint32_t *s1, const uint32_t *s2)
{
uint32_t uc1 = *s1++;
uint32_t uc2 = *s2++;
- if (uc1 != 0 && uc1 == uc2)
- continue;
- /* Note that uc1 and uc2 each have at most 31 bits. */
- return (int)uc1 - (int)uc2;
- /* > 0 if uc1 > uc2, < 0 if uc1 < uc2. */
+ if (uc1 == 0 || uc1 != uc2)
+ {
+ /* Note that uc1 and uc2 each have at most 31 bits. */
+ return (int)uc1 - (int)uc2;
+ /* > 0 if uc1 > uc2, < 0 if uc1 < uc2. */
+ }
}
}
diff --git a/lib/unistr/u32-strcoll.c b/lib/unistr/u32-strcoll.c
index a20ba943..47d5161f 100644
--- a/lib/unistr/u32-strcoll.c
+++ b/lib/unistr/u32-strcoll.c
@@ -1,5 +1,5 @@
/* Compare UTF-32 strings using the collation rules of the current locale.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unistr/u32-strcpy.c b/lib/unistr/u32-strcpy.c
index f64a31f2..8a3b937b 100644
--- a/lib/unistr/u32-strcpy.c
+++ b/lib/unistr/u32-strcpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strcspn.c b/lib/unistr/u32-strcspn.c
index e03289ce..a7add17d 100644
--- a/lib/unistr/u32-strcspn.c
+++ b/lib/unistr/u32-strcspn.c
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strdup.c b/lib/unistr/u32-strdup.c
index 633ce0e9..4c5ca4f8 100644
--- a/lib/unistr/u32-strdup.c
+++ b/lib/unistr/u32-strdup.c
@@ -1,5 +1,5 @@
/* Copy UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strlen.c b/lib/unistr/u32-strlen.c
index 5aa8236e..496eb57b 100644
--- a/lib/unistr/u32-strlen.c
+++ b/lib/unistr/u32-strlen.c
@@ -1,5 +1,5 @@
/* Determine length of UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u32-strmblen.c b/lib/unistr/u32-strmblen.c
index 351ae6c5..1e71279a 100644
--- a/lib/unistr/u32-strmblen.c
+++ b/lib/unistr/u32-strmblen.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-32 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strmbtouc.c b/lib/unistr/u32-strmbtouc.c
index 3bdac61f..b02362a5 100644
--- a/lib/unistr/u32-strmbtouc.c
+++ b/lib/unistr/u32-strmbtouc.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-32 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strncat.c b/lib/unistr/u32-strncat.c
index a753526a..c611aa0b 100644
--- a/lib/unistr/u32-strncat.c
+++ b/lib/unistr/u32-strncat.c
@@ -1,5 +1,5 @@
/* Concatenate UTF-32 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strncmp.c b/lib/unistr/u32-strncmp.c
index 98461ad7..b6d2c038 100644
--- a/lib/unistr/u32-strncmp.c
+++ b/lib/unistr/u32-strncmp.c
@@ -1,5 +1,5 @@
/* Compare UTF-32 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -31,18 +31,16 @@
int
u32_strncmp (const uint32_t *s1, const uint32_t *s2, size_t n)
{
- for (; n > 0;)
+ for (; n > 0; n--)
{
uint32_t uc1 = *s1++;
uint32_t uc2 = *s2++;
- if (uc1 != 0 && uc1 == uc2)
+ if (uc1 == 0 || uc1 != uc2)
{
- n--;
- continue;
+ /* Note that uc1 and uc2 each have at most 31 bits. */
+ return (int)uc1 - (int)uc2;
+ /* > 0 if uc1 > uc2, < 0 if uc1 < uc2, = 0 if uc1 and uc2 are both 0. */
}
- /* Note that uc1 and uc2 each have at most 31 bits. */
- return (int)uc1 - (int)uc2;
- /* > 0 if uc1 > uc2, < 0 if uc1 < uc2, = 0 if uc1 and uc2 are both 0. */
}
return 0;
}
diff --git a/lib/unistr/u32-strncpy.c b/lib/unistr/u32-strncpy.c
index c3a932f1..8186c581 100644
--- a/lib/unistr/u32-strncpy.c
+++ b/lib/unistr/u32-strncpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strnlen.c b/lib/unistr/u32-strnlen.c
index 246c2fbe..3a32c4d8 100644
--- a/lib/unistr/u32-strnlen.c
+++ b/lib/unistr/u32-strnlen.c
@@ -1,5 +1,5 @@
/* Determine bounded length of UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strpbrk.c b/lib/unistr/u32-strpbrk.c
index f057dea0..aa46e1aa 100644
--- a/lib/unistr/u32-strpbrk.c
+++ b/lib/unistr/u32-strpbrk.c
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strrchr.c b/lib/unistr/u32-strrchr.c
index 10d5958c..fa7ee149 100644
--- a/lib/unistr/u32-strrchr.c
+++ b/lib/unistr/u32-strrchr.c
@@ -1,5 +1,5 @@
/* Search character in UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strspn.c b/lib/unistr/u32-strspn.c
index 4c88dbfc..7bea5aff 100644
--- a/lib/unistr/u32-strspn.c
+++ b/lib/unistr/u32-strspn.c
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strstr.c b/lib/unistr/u32-strstr.c
index 08b97453..be981e02 100644
--- a/lib/unistr/u32-strstr.c
+++ b/lib/unistr/u32-strstr.c
@@ -1,5 +1,5 @@
/* Substring test for UTF-32 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strtok.c b/lib/unistr/u32-strtok.c
index 2640f901..e7a23447 100644
--- a/lib/unistr/u32-strtok.c
+++ b/lib/unistr/u32-strtok.c
@@ -1,5 +1,5 @@
/* Tokenize UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-to-u16.c b/lib/unistr/u32-to-u16.c
index 94530e2b..4ea9125a 100644
--- a/lib/unistr/u32-to-u16.c
+++ b/lib/unistr/u32-to-u16.c
@@ -1,5 +1,5 @@
/* Convert UTF-32 string to UTF-16 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -40,11 +40,10 @@ DST_UNIT *
FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
{
const SRC_UNIT *s_end = s + n;
+
/* Output string accumulator. */
DST_UNIT *result;
size_t allocated;
- size_t length;
-
if (resultbuf != NULL)
{
result = resultbuf;
@@ -55,23 +54,20 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
result = NULL;
allocated = 0;
}
- length = 0;
+ size_t length = 0;
/* Invariants:
result is either == resultbuf or == NULL or malloc-allocated.
If length > 0, then result != NULL. */
while (s < s_end)
{
- ucs4_t uc;
- int count;
-
/* Fetch a Unicode character from the input string. */
- uc = *s++;
+ ucs4_t uc = *s++;
/* No need to call the safe variant u32_mbtouc, because
u16_uctomb will verify uc anyway. */
/* Store it in the output string. */
- count = u16_uctomb (result + length, uc, allocated - length);
+ int count = u16_uctomb (result + length, uc, allocated - length);
if (count == -1)
{
if (!(result == resultbuf || result == NULL))
@@ -81,11 +77,11 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
}
if (count == -2)
{
- DST_UNIT *memory;
-
allocated = (allocated > 0 ? 2 * allocated : 12);
if (length + 2 > allocated)
allocated = length + 2;
+
+ DST_UNIT *memory;
if (result == resultbuf || result == NULL)
memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
else
@@ -126,9 +122,8 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- DST_UNIT *memory;
-
- memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ DST_UNIT *memory =
+ (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/unistr/u32-to-u8.c b/lib/unistr/u32-to-u8.c
index 0c4f0bc3..6460130b 100644
--- a/lib/unistr/u32-to-u8.c
+++ b/lib/unistr/u32-to-u8.c
@@ -1,5 +1,5 @@
/* Convert UTF-32 string to UTF-8 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
@@ -32,11 +32,10 @@ DST_UNIT *
FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
{
const SRC_UNIT *s_end = s + n;
+
/* Output string accumulator. */
DST_UNIT *result;
size_t allocated;
- size_t length;
-
if (resultbuf != NULL)
{
result = resultbuf;
@@ -47,23 +46,20 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
result = NULL;
allocated = 0;
}
- length = 0;
+ size_t length = 0;
/* Invariants:
result is either == resultbuf or == NULL or malloc-allocated.
If length > 0, then result != NULL. */
while (s < s_end)
{
- ucs4_t uc;
- int count;
-
/* Fetch a Unicode character from the input string. */
- uc = *s++;
+ ucs4_t uc = *s++;
/* No need to call the safe variant u32_mbtouc, because
u8_uctomb will verify uc anyway. */
/* Store it in the output string. */
- count = u8_uctomb (result + length, uc, allocated - length);
+ int count = u8_uctomb (result + length, uc, allocated - length);
if (count == -1)
{
if (!(result == resultbuf || result == NULL))
@@ -73,11 +69,11 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
}
if (count == -2)
{
- DST_UNIT *memory;
-
allocated = (allocated > 0 ? 2 * allocated : 12);
if (length + 6 > allocated)
allocated = length + 6;
+
+ DST_UNIT *memory;
if (result == resultbuf || result == NULL)
memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
else
@@ -118,9 +114,8 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- DST_UNIT *memory;
-
- memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ DST_UNIT *memory =
+ (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/unistr/u32-uctomb.c b/lib/unistr/u32-uctomb.c
index f68e4c0a..a2d9fa76 100644
--- a/lib/unistr/u32-uctomb.c
+++ b/lib/unistr/u32-uctomb.c
@@ -1,5 +1,5 @@
/* Store a character in UTF-32 string.
- Copyright (C) 2002, 2005-2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005-2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-check.c b/lib/unistr/u8-check.c
index e7c56f1e..f7fcc620 100644
--- a/lib/unistr/u8-check.c
+++ b/lib/unistr/u8-check.c
@@ -1,5 +1,5 @@
/* Check UTF-8 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-chr.c b/lib/unistr/u8-chr.c
index c34e1fe3..5f98cb7f 100644
--- a/lib/unistr/u8-chr.c
+++ b/lib/unistr/u8-chr.c
@@ -1,5 +1,5 @@
/* Search character in piece of UTF-8 string.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
@@ -46,8 +46,7 @@ u8_chr (const uint8_t *s, size_t n, ucs4_t uc)
{
uint8_t c[6];
- size_t uc_size;
- uc_size = u8_uctomb_aux (c, uc, 6);
+ size_t uc_size = u8_uctomb_aux (c, uc, 6);
if (n < uc_size)
return NULL;
diff --git a/lib/unistr/u8-cmp.c b/lib/unistr/u8-cmp.c
index b3926547..d00b9201 100644
--- a/lib/unistr/u8-cmp.c
+++ b/lib/unistr/u8-cmp.c
@@ -1,5 +1,5 @@
/* Compare pieces of UTF-8 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-cmp2.c b/lib/unistr/u8-cmp2.c
index f9bc3f90..54c9a76b 100644
--- a/lib/unistr/u8-cmp2.c
+++ b/lib/unistr/u8-cmp2.c
@@ -1,5 +1,5 @@
/* Compare pieces of UTF-8 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unistr/u8-cpy-alloc.c b/lib/unistr/u8-cpy-alloc.c
index 247b07c5..f3caf516 100644
--- a/lib/unistr/u8-cpy-alloc.c
+++ b/lib/unistr/u8-cpy-alloc.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-8 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-cpy.c b/lib/unistr/u8-cpy.c
index 7f19bf78..d5ea0412 100644
--- a/lib/unistr/u8-cpy.c
+++ b/lib/unistr/u8-cpy.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-8 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-endswith.c b/lib/unistr/u8-endswith.c
index 8135e88e..c684262a 100644
--- a/lib/unistr/u8-endswith.c
+++ b/lib/unistr/u8-endswith.c
@@ -1,5 +1,5 @@
/* Substring test for UTF-8 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-mblen.c b/lib/unistr/u8-mblen.c
index e2e4ba39..2d8663dd 100644
--- a/lib/unistr/u8-mblen.c
+++ b/lib/unistr/u8-mblen.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-8 string.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
diff --git a/lib/unistr/u8-mbsnlen.c b/lib/unistr/u8-mbsnlen.c
index d7043779..7cb168dd 100644
--- a/lib/unistr/u8-mbsnlen.c
+++ b/lib/unistr/u8-mbsnlen.c
@@ -1,5 +1,5 @@
/* Count characters in UTF-8 string.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
@@ -31,9 +31,7 @@
size_t
u8_mbsnlen (const uint8_t *s, size_t n)
{
- size_t characters;
-
- characters = 0;
+ size_t characters = 0;
while (n > 0)
{
ucs4_t uc;
diff --git a/lib/unistr/u8-mbtouc-aux.c b/lib/unistr/u8-mbtouc-aux.c
index 9f80d7e2..23554b73 100644
--- a/lib/unistr/u8-mbtouc-aux.c
+++ b/lib/unistr/u8-mbtouc-aux.c
@@ -1,5 +1,5 @@
/* Conversion UTF-8 to UCS-4.
- Copyright (C) 2001-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-mbtouc-unsafe-aux.c b/lib/unistr/u8-mbtouc-unsafe-aux.c
index 1683b8ad..eef38aa8 100644
--- a/lib/unistr/u8-mbtouc-unsafe-aux.c
+++ b/lib/unistr/u8-mbtouc-unsafe-aux.c
@@ -1,5 +1,5 @@
/* Conversion UTF-8 to UCS-4.
- Copyright (C) 2001-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-mbtouc-unsafe.c b/lib/unistr/u8-mbtouc-unsafe.c
index cf93e56f..718fb20d 100644
--- a/lib/unistr/u8-mbtouc-unsafe.c
+++ b/lib/unistr/u8-mbtouc-unsafe.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-8 string.
- Copyright (C) 1999-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-mbtouc.c b/lib/unistr/u8-mbtouc.c
index 6bcf085a..711e61d6 100644
--- a/lib/unistr/u8-mbtouc.c
+++ b/lib/unistr/u8-mbtouc.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-8 string.
- Copyright (C) 1999-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-mbtoucr.c b/lib/unistr/u8-mbtoucr.c
index 63415ab0..fa845675 100644
--- a/lib/unistr/u8-mbtoucr.c
+++ b/lib/unistr/u8-mbtoucr.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-8 string, returning an error code.
- Copyright (C) 1999-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-move.c b/lib/unistr/u8-move.c
index a31e36b1..00da3700 100644
--- a/lib/unistr/u8-move.c
+++ b/lib/unistr/u8-move.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-8 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-next.c b/lib/unistr/u8-next.c
index 3701701a..0d4d324a 100644
--- a/lib/unistr/u8-next.c
+++ b/lib/unistr/u8-next.c
@@ -1,5 +1,5 @@
/* Iterate over next character in UTF-8 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -34,9 +34,7 @@
const uint8_t *
u8_next (ucs4_t *puc, const uint8_t *s)
{
- int count;
-
- count = u8_strmbtouc (puc, s);
+ int count = u8_strmbtouc (puc, s);
if (count > 0)
return s + count;
else
diff --git a/lib/unistr/u8-pcpy.c b/lib/unistr/u8-pcpy.c
index e1462691..9e7990b3 100644
--- a/lib/unistr/u8-pcpy.c
+++ b/lib/unistr/u8-pcpy.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-8 string, return pointer after last written unit.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2023.
This file is free software.
diff --git a/lib/unistr/u8-prev.c b/lib/unistr/u8-prev.c
index e9d0eec5..52ad4c7c 100644
--- a/lib/unistr/u8-prev.c
+++ b/lib/unistr/u8-prev.c
@@ -1,5 +1,5 @@
/* Iterate over previous character in UTF-8 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-set.c b/lib/unistr/u8-set.c
index f9a9b9f1..0d196579 100644
--- a/lib/unistr/u8-set.c
+++ b/lib/unistr/u8-set.c
@@ -1,5 +1,5 @@
/* Fill UTF-8 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-startswith.c b/lib/unistr/u8-startswith.c
index 741480d0..391b3308 100644
--- a/lib/unistr/u8-startswith.c
+++ b/lib/unistr/u8-startswith.c
@@ -1,5 +1,5 @@
/* Substring test for UTF-8 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-stpcpy.c b/lib/unistr/u8-stpcpy.c
index 5e2a1d1b..06fe0998 100644
--- a/lib/unistr/u8-stpcpy.c
+++ b/lib/unistr/u8-stpcpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-8 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-stpncpy.c b/lib/unistr/u8-stpncpy.c
index a81be2a8..ba17f208 100644
--- a/lib/unistr/u8-stpncpy.c
+++ b/lib/unistr/u8-stpncpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-8 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strcat.c b/lib/unistr/u8-strcat.c
index a9ecca97..bc6cda6f 100644
--- a/lib/unistr/u8-strcat.c
+++ b/lib/unistr/u8-strcat.c
@@ -1,5 +1,5 @@
/* Concatenate UTF-8 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strchr.c b/lib/unistr/u8-strchr.c
index 3ccf0516..30468be1 100644
--- a/lib/unistr/u8-strchr.c
+++ b/lib/unistr/u8-strchr.c
@@ -1,5 +1,5 @@
/* Search character in UTF-8 string.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
@@ -37,8 +37,6 @@
uint8_t *
u8_strchr (const uint8_t *s, ucs4_t uc)
{
- uint8_t c[6];
-
if (uc < 0x80)
{
uint8_t c0 = uc;
@@ -65,187 +63,191 @@ u8_strchr (const uint8_t *s, ucs4_t uc)
}
}
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 || s[1] == 0)
- break;
- {
- uint8_t c0 = c[0];
- uint8_t c1 = c[1];
- /* Search for { c0, c1 }. */
- uint8_t s1 = s[1];
-
- 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)
- break;
- }
- }
- break;
+ uint8_t c[6];
- case 3:
- if (*s == 0 || s[1] == 0 || s[2] == 0)
- break;
+ switch (u8_uctomb_aux (c, uc, 6))
{
- 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];
+ case 2:
+ 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 (;;)
+ {
+ /* 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)
+ break;
+ }
+ }
+ break;
- 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)
+ case 3:
+ 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 (;;)
+ {
+ /* 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;
- }
- 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)
- break;
- }
- }
- break;
-
- case 4:
- if (*s == 0 || s[1] == 0 || s[2] == 0 || s[3] == 0)
+ }
+ 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)
+ break;
+ }
+ }
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 (;;)
- {
- /* 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)
+ case 4:
+ 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 (;;)
+ {
+ /* 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 (c3 == c1)
+ 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;
- }
- 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)
- break;
- }
+ }
+ 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)
+ break;
+ }
+ }
+ break;
}
- break;
- }
+ }
return NULL;
}
diff --git a/lib/unistr/u8-strcmp.c b/lib/unistr/u8-strcmp.c
index f2ce1cd4..1deb3879 100644
--- a/lib/unistr/u8-strcmp.c
+++ b/lib/unistr/u8-strcmp.c
@@ -1,5 +1,5 @@
/* Compare UTF-8 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strcoll.c b/lib/unistr/u8-strcoll.c
index 550fd8a2..f0f5862f 100644
--- a/lib/unistr/u8-strcoll.c
+++ b/lib/unistr/u8-strcoll.c
@@ -1,5 +1,5 @@
/* Compare UTF-8 strings using the collation rules of the current locale.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unistr/u8-strcpy.c b/lib/unistr/u8-strcpy.c
index 080ae83b..0354d6b2 100644
--- a/lib/unistr/u8-strcpy.c
+++ b/lib/unistr/u8-strcpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-8 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strcspn.c b/lib/unistr/u8-strcspn.c
index 196f9087..ee10b336 100644
--- a/lib/unistr/u8-strcspn.c
+++ b/lib/unistr/u8-strcspn.c
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-8 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strdup.c b/lib/unistr/u8-strdup.c
index e62bada6..da4f6dbb 100644
--- a/lib/unistr/u8-strdup.c
+++ b/lib/unistr/u8-strdup.c
@@ -1,5 +1,5 @@
/* Copy UTF-8 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strlen.c b/lib/unistr/u8-strlen.c
index 4bf35379..5ac6b940 100644
--- a/lib/unistr/u8-strlen.c
+++ b/lib/unistr/u8-strlen.c
@@ -1,5 +1,5 @@
/* Determine length of UTF-8 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-strmblen.c b/lib/unistr/u8-strmblen.c
index 253afb43..603b4277 100644
--- a/lib/unistr/u8-strmblen.c
+++ b/lib/unistr/u8-strmblen.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-8 string.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
diff --git a/lib/unistr/u8-strmbtouc.c b/lib/unistr/u8-strmbtouc.c
index 48c4d6c1..b3bbf060 100644
--- a/lib/unistr/u8-strmbtouc.c
+++ b/lib/unistr/u8-strmbtouc.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-8 string.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
diff --git a/lib/unistr/u8-strncat.c b/lib/unistr/u8-strncat.c
index 3bbcc0d7..7bf11e6e 100644
--- a/lib/unistr/u8-strncat.c
+++ b/lib/unistr/u8-strncat.c
@@ -1,5 +1,5 @@
/* Concatenate UTF-8 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strncmp.c b/lib/unistr/u8-strncmp.c
index 97162e08..27c03bdf 100644
--- a/lib/unistr/u8-strncmp.c
+++ b/lib/unistr/u8-strncmp.c
@@ -1,5 +1,5 @@
/* Compare UTF-8 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strncpy.c b/lib/unistr/u8-strncpy.c
index cc37f225..91fd0a74 100644
--- a/lib/unistr/u8-strncpy.c
+++ b/lib/unistr/u8-strncpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-8 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strnlen.c b/lib/unistr/u8-strnlen.c
index c62bac3a..a161add2 100644
--- a/lib/unistr/u8-strnlen.c
+++ b/lib/unistr/u8-strnlen.c
@@ -1,5 +1,5 @@
/* Determine bounded length of UTF-8 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strpbrk.c b/lib/unistr/u8-strpbrk.c
index 3adc03f9..6e19129f 100644
--- a/lib/unistr/u8-strpbrk.c
+++ b/lib/unistr/u8-strpbrk.c
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-8 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strrchr.c b/lib/unistr/u8-strrchr.c
index 4f364fa6..c4fcee99 100644
--- a/lib/unistr/u8-strrchr.c
+++ b/lib/unistr/u8-strrchr.c
@@ -1,5 +1,5 @@
/* Search character in UTF-8 string.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
@@ -38,7 +38,6 @@ u8_strrchr (const uint8_t *s, ucs4_t uc)
/* Calling u8_strlen and then searching from the other end would cause more
memory accesses. Avoid that, at the cost of a few more comparisons. */
uint8_t *result = NULL;
- uint8_t c[6];
if (uc < 0x80)
{
@@ -53,61 +52,65 @@ u8_strrchr (const uint8_t *s, ucs4_t uc)
}
}
else
- switch (u8_uctomb_aux (c, uc, 6))
- {
- case 2:
- if (*s)
- {
- uint8_t c0 = c[0];
- uint8_t c1 = c[1];
+ {
+ uint8_t c[6];
+
+ switch (u8_uctomb_aux (c, uc, 6))
+ {
+ case 2:
+ if (*s)
+ {
+ uint8_t c0 = c[0];
+ uint8_t c1 = c[1];
- /* FIXME: Maybe walking the string via u8_mblen is a win? */
- for (;; s++)
- {
- if (s[1] == 0)
- break;
- if (*s == c0 && s[1] == c1)
- result = (uint8_t *) s;
- }
- }
- break;
+ /* FIXME: Maybe walking the string via u8_mblen is a win? */
+ for (;; s++)
+ {
+ if (s[1] == 0)
+ break;
+ if (*s == c0 && s[1] == c1)
+ result = (uint8_t *) s;
+ }
+ }
+ break;
- case 3:
- if (*s && s[1])
- {
- uint8_t c0 = c[0];
- uint8_t c1 = c[1];
- uint8_t c2 = c[2];
+ case 3:
+ if (*s && s[1])
+ {
+ uint8_t c0 = c[0];
+ uint8_t c1 = c[1];
+ uint8_t c2 = c[2];
- /* FIXME: Maybe walking the string via u8_mblen is a win? */
- for (;; s++)
- {
- if (s[2] == 0)
- break;
- if (*s == c0 && s[1] == c1 && s[2] == c2)
- result = (uint8_t *) s;
- }
- }
- break;
+ /* FIXME: Maybe walking the string via u8_mblen is a win? */
+ for (;; s++)
+ {
+ if (s[2] == 0)
+ break;
+ if (*s == c0 && s[1] == c1 && s[2] == c2)
+ result = (uint8_t *) s;
+ }
+ }
+ break;
- case 4:
- if (*s && s[1] && s[2])
- {
- uint8_t c0 = c[0];
- uint8_t c1 = c[1];
- uint8_t c2 = c[2];
- uint8_t c3 = c[3];
+ case 4:
+ if (*s && s[1] && s[2])
+ {
+ uint8_t c0 = c[0];
+ uint8_t c1 = c[1];
+ uint8_t c2 = c[2];
+ uint8_t c3 = c[3];
- /* FIXME: Maybe walking the string via u8_mblen is a win? */
- for (;; s++)
- {
- if (s[3] == 0)
- break;
- if (*s == c0 && s[1] == c1 && s[2] == c2 && s[3] == c3)
- result = (uint8_t *) s;
- }
- }
- break;
- }
+ /* FIXME: Maybe walking the string via u8_mblen is a win? */
+ for (;; s++)
+ {
+ if (s[3] == 0)
+ break;
+ if (*s == c0 && s[1] == c1 && s[2] == c2 && s[3] == c3)
+ result = (uint8_t *) s;
+ }
+ }
+ break;
+ }
+ }
return result;
}
diff --git a/lib/unistr/u8-strspn.c b/lib/unistr/u8-strspn.c
index 918983cc..c9e5cef3 100644
--- a/lib/unistr/u8-strspn.c
+++ b/lib/unistr/u8-strspn.c
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-8 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strstr.c b/lib/unistr/u8-strstr.c
index eb30108e..23c64608 100644
--- a/lib/unistr/u8-strstr.c
+++ b/lib/unistr/u8-strstr.c
@@ -1,5 +1,5 @@
/* Substring test for UTF-8 strings.
- Copyright (C) 1999, 2002, 2006, 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2010-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strtok.c b/lib/unistr/u8-strtok.c
index bfd7032f..8428b751 100644
--- a/lib/unistr/u8-strtok.c
+++ b/lib/unistr/u8-strtok.c
@@ -1,5 +1,5 @@
/* Tokenize UTF-8 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-to-u16.c b/lib/unistr/u8-to-u16.c
index 64bd7a69..301a0916 100644
--- a/lib/unistr/u8-to-u16.c
+++ b/lib/unistr/u8-to-u16.c
@@ -1,5 +1,5 @@
/* Convert UTF-8 string to UTF-16 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -40,11 +40,10 @@ DST_UNIT *
FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
{
const SRC_UNIT *s_end = s + n;
+
/* Output string accumulator. */
DST_UNIT *result;
size_t allocated;
- size_t length;
-
if (resultbuf != NULL)
{
result = resultbuf;
@@ -55,18 +54,16 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
result = NULL;
allocated = 0;
}
- length = 0;
+ size_t length = 0;
/* Invariants:
result is either == resultbuf or == NULL or malloc-allocated.
If length > 0, then result != NULL. */
while (s < s_end)
{
- ucs4_t uc;
- int count;
-
/* Fetch a Unicode character from the input string. */
- count = u8_mbtoucr (&uc, s, s_end - s);
+ ucs4_t uc;
+ int count = u8_mbtoucr (&uc, s, s_end - s);
if (count < 0)
{
if (!(result == resultbuf || result == NULL))
@@ -87,11 +84,11 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
}
if (count == -2)
{
- DST_UNIT *memory;
-
allocated = (allocated > 0 ? 2 * allocated : 12);
if (length + 2 > allocated)
allocated = length + 2;
+
+ DST_UNIT *memory;
if (result == resultbuf || result == NULL)
memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
else
@@ -132,9 +129,8 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- DST_UNIT *memory;
-
- memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ DST_UNIT *memory =
+ (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/unistr/u8-to-u32.c b/lib/unistr/u8-to-u32.c
index 1f029ead..10e6a278 100644
--- a/lib/unistr/u8-to-u32.c
+++ b/lib/unistr/u8-to-u32.c
@@ -1,5 +1,5 @@
/* Convert UTF-8 string to UTF-32 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
@@ -32,11 +32,10 @@ DST_UNIT *
FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
{
const SRC_UNIT *s_end = s + n;
+
/* Output string accumulator. */
DST_UNIT *result;
size_t allocated;
- size_t length;
-
if (resultbuf != NULL)
{
result = resultbuf;
@@ -47,18 +46,16 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
result = NULL;
allocated = 0;
}
- length = 0;
+ size_t length = 0;
/* Invariants:
result is either == resultbuf or == NULL or malloc-allocated.
If length > 0, then result != NULL. */
while (s < s_end)
{
- ucs4_t uc;
- int count;
-
/* Fetch a Unicode character from the input string. */
- count = u8_mbtoucr (&uc, s, s_end - s);
+ ucs4_t uc;
+ int count = u8_mbtoucr (&uc, s, s_end - s);
if (count < 0)
{
if (!(result == resultbuf || result == NULL))
@@ -71,11 +68,11 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
/* Store it in the output string. */
if (length + 1 > allocated)
{
- DST_UNIT *memory;
-
allocated = (allocated > 0 ? 2 * allocated : 12);
if (length + 1 > allocated)
allocated = length + 1;
+
+ DST_UNIT *memory;
if (result == resultbuf || result == NULL)
memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
else
@@ -113,9 +110,8 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- DST_UNIT *memory;
-
- memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ DST_UNIT *memory =
+ (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/unistr/u8-uctomb-aux.c b/lib/unistr/u8-uctomb-aux.c
index d0b5b7bb..59d78d3f 100644
--- a/lib/unistr/u8-uctomb-aux.c
+++ b/lib/unistr/u8-uctomb-aux.c
@@ -1,5 +1,5 @@
/* Conversion UCS-4 to UTF-8.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-uctomb.c b/lib/unistr/u8-uctomb.c
index 89ca2c07..eafec47e 100644
--- a/lib/unistr/u8-uctomb.c
+++ b/lib/unistr/u8-uctomb.c
@@ -1,5 +1,5 @@
/* Store a character in UTF-8 string.
- Copyright (C) 2002, 2005-2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005-2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistring/cdefs.h b/lib/unistring/cdefs.h
index 621235c0..77968ff7 100644
--- a/lib/unistring/cdefs.h
+++ b/lib/unistring/cdefs.h
@@ -1,5 +1,5 @@
/* Common macro definitions for C include files.
- Copyright (C) 2008-2023 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or
modify it under the terms of either:
@@ -43,6 +43,10 @@
#ifndef _GL_ATTRIBUTE_MAYBE_UNUSED
# define _GL_ATTRIBUTE_MAYBE_UNUSED _UC_ATTRIBUTE_MAYBE_UNUSED
#endif
+/* _GL_UNNAMED serves the same purpose. */
+#ifndef _GL_UNNAMED
+# define _GL_UNNAMED _UC_UNNAMED
+#endif
#ifndef _GL_ATTRIBUTE_MALLOC
# define _GL_ATTRIBUTE_MALLOC _UC_ATTRIBUTE_MALLOC
@@ -135,4 +139,11 @@
# define _UC_ATTRIBUTE_UNUSED
#endif
+#if ((defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 202311 \
+ && !defined __cplusplus)
+# define _UC_UNNAMED(id) unnamed_##id _UC_ATTRIBUTE_UNUSED
+#else
+# define _UC_UNNAMED(id)
+#endif
+
#endif /* _UNISTRING_CDEFS_H */
diff --git a/lib/unitypes.in.h b/lib/unitypes.in.h
index 6b8e79aa..36e48cf5 100644
--- a/lib/unitypes.in.h
+++ b/lib/unitypes.in.h
@@ -1,5 +1,5 @@
/* Elementary types and macros for the GNU UniString library.
- Copyright (C) 2002, 2005-2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005-2006, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/uniwbrk.in.h b/lib/uniwbrk.in.h
index dcb60392..8ab5fad8 100644
--- a/lib/uniwbrk.in.h
+++ b/lib/uniwbrk.in.h
@@ -1,5 +1,5 @@
/* Word breaks in Unicode strings.
- Copyright (C) 2001-2003, 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2005-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uniwbrk/u-wordbreaks.h b/lib/uniwbrk/u-wordbreaks.h
index 7a0d1a66..665ead67 100644
--- a/lib/uniwbrk/u-wordbreaks.h
+++ b/lib/uniwbrk/u-wordbreaks.h
@@ -1,5 +1,5 @@
/* Word breaks in UTF-8/UTF-16/UTF-32 strings. -*- coding: utf-8 -*-
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uniwbrk/u16-wordbreaks.c b/lib/uniwbrk/u16-wordbreaks.c
index 4ebc4711..023ee0d7 100644
--- a/lib/uniwbrk/u16-wordbreaks.c
+++ b/lib/uniwbrk/u16-wordbreaks.c
@@ -1,5 +1,5 @@
/* Word breaks in UTF-16 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uniwbrk/u32-wordbreaks.c b/lib/uniwbrk/u32-wordbreaks.c
index 5cde6681..47d127ee 100644
--- a/lib/uniwbrk/u32-wordbreaks.c
+++ b/lib/uniwbrk/u32-wordbreaks.c
@@ -1,5 +1,5 @@
/* Word breaks in UTF-32 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uniwbrk/u8-wordbreaks.c b/lib/uniwbrk/u8-wordbreaks.c
index a5c3d2ed..b0cc58ed 100644
--- a/lib/uniwbrk/u8-wordbreaks.c
+++ b/lib/uniwbrk/u8-wordbreaks.c
@@ -1,5 +1,5 @@
/* Word breaks in UTF-8 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -54,7 +54,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -70,7 +69,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
@@ -102,11 +101,10 @@ main (int argc, char * argv[])
char *input = read_file (stdin);
int length = strlen (input);
char *breaks = malloc (length);
- int i;
u8_wordbreaks ((uint8_t *) input, length, breaks);
- for (i = 0; i < length; i++)
+ for (int i = 0; i < length; i++)
{
switch (breaks[i])
{
diff --git a/lib/uniwbrk/ulc-wordbreaks.c b/lib/uniwbrk/ulc-wordbreaks.c
index d73bd457..c904b73e 100644
--- a/lib/uniwbrk/ulc-wordbreaks.c
+++ b/lib/uniwbrk/ulc-wordbreaks.c
@@ -1,5 +1,5 @@
/* Word breaks in strings.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -66,25 +66,22 @@ ulc_wordbreaks (const char *s, size_t n, char *p)
if (offsets != NULL)
{
- uint8_t *t;
size_t m;
-
- t = u8_conv_from_encoding (encoding, iconveh_question_mark,
- s, n, offsets, NULL, &m);
+ uint8_t *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 word breaks of the UTF-8 string. */
u8_wordbreaks (t, m, q);
/* Translate the result back to the original string. */
memset (p, 0, n);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
if (offsets[i] != (size_t)(-1))
p[i] = q[offsets[i]];
@@ -130,7 +127,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -146,7 +142,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
@@ -179,11 +175,10 @@ main (int argc, char * argv[])
char *input = read_file (stdin);
int length = strlen (input);
char *breaks = malloc (length);
- int i;
ulc_wordbreaks (input, length, breaks);
- for (i = 0; i < length; i++)
+ for (int i = 0; i < length; i++)
{
switch (breaks[i])
{
diff --git a/lib/uniwbrk/wbrktable.c b/lib/uniwbrk/wbrktable.c
index 7bd41a25..1d6b063a 100644
--- a/lib/uniwbrk/wbrktable.c
+++ b/lib/uniwbrk/wbrktable.c
@@ -1,5 +1,5 @@
/* Word break auxiliary table. -*- coding: utf-8 -*-
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uniwbrk/wbrktable.h b/lib/uniwbrk/wbrktable.h
index b72aa012..2cbd3981 100644
--- a/lib/uniwbrk/wbrktable.h
+++ b/lib/uniwbrk/wbrktable.h
@@ -1,5 +1,5 @@
/* Word break auxiliary table.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uniwbrk/wordbreak-property.c b/lib/uniwbrk/wordbreak-property.c
index f703a459..fd1f47bc 100644
--- a/lib/uniwbrk/wordbreak-property.c
+++ b/lib/uniwbrk/wordbreak-property.c
@@ -1,5 +1,5 @@
/* Word break property.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uniwidth.in.h b/lib/uniwidth.in.h
index 293b65a8..9a5b8a1e 100644
--- a/lib/uniwidth.in.h
+++ b/lib/uniwidth.in.h
@@ -1,5 +1,5 @@
/* Display width functions.
- Copyright (C) 2001-2002, 2005, 2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 2001-2002, 2005, 2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uniwidth/cjk.h b/lib/uniwidth/cjk.h
index af41f637..9fc0dbde 100644
--- a/lib/uniwidth/cjk.h
+++ b/lib/uniwidth/cjk.h
@@ -1,5 +1,5 @@
/* Test for CJK encoding.
- Copyright (C) 2001-2002, 2005-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2005-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include "streq.h"
+#include "streq-opt.h"
static int
is_cjk_encoding (const char *encoding)
diff --git a/lib/uniwidth/u16-strwidth.c b/lib/uniwidth/u16-strwidth.c
index 815d1044..d274c9ff 100644
--- a/lib/uniwidth/u16-strwidth.c
+++ b/lib/uniwidth/u16-strwidth.c
@@ -1,5 +1,5 @@
/* Determine display width of UTF-16 string.
- Copyright (C) 2001-2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/uniwidth/u16-width.c b/lib/uniwidth/u16-width.c
index 32d47edb..d6d9bfcd 100644
--- a/lib/uniwidth/u16-width.c
+++ b/lib/uniwidth/u16-width.c
@@ -1,5 +1,5 @@
/* Determine display width of UTF-16 string.
- Copyright (C) 2001-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -39,14 +39,12 @@ u16_width (const uint16_t *s, size_t n, const char *encoding)
while (s < s_end)
{
ucs4_t uc;
- int w;
-
s += u16_mbtouc_unsafe (&uc, s, s_end - s);
if (uc == 0)
break; /* end of string reached */
- w = uc_width (uc, encoding);
+ int w = uc_width (uc, encoding);
if (w >= 0) /* ignore control characters in the string */
width += w;
}
diff --git a/lib/uniwidth/u32-strwidth.c b/lib/uniwidth/u32-strwidth.c
index e7d894d8..66bc17f6 100644
--- a/lib/uniwidth/u32-strwidth.c
+++ b/lib/uniwidth/u32-strwidth.c
@@ -1,5 +1,5 @@
/* Determine display width of UTF-32 string.
- Copyright (C) 2001-2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/uniwidth/u32-width.c b/lib/uniwidth/u32-width.c
index bb4c04a8..42e343d4 100644
--- a/lib/uniwidth/u32-width.c
+++ b/lib/uniwidth/u32-width.c
@@ -1,5 +1,5 @@
/* Determine display width of UTF-32 string.
- Copyright (C) 2001-2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -37,12 +37,11 @@ u32_width (const uint32_t *s, size_t n, const char *encoding)
while (s < s_end)
{
ucs4_t uc = *s++;
- int w;
if (uc == 0)
break; /* end of string reached */
- w = uc_width (uc, encoding);
+ int w = uc_width (uc, encoding);
if (w >= 0) /* ignore control characters in the string */
width += w;
}
diff --git a/lib/uniwidth/u8-strwidth.c b/lib/uniwidth/u8-strwidth.c
index 794d60a0..1efd104f 100644
--- a/lib/uniwidth/u8-strwidth.c
+++ b/lib/uniwidth/u8-strwidth.c
@@ -1,5 +1,5 @@
/* Determine display width of UTF-8 string.
- Copyright (C) 2001-2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/uniwidth/u8-width.c b/lib/uniwidth/u8-width.c
index a4df4c13..950ef419 100644
--- a/lib/uniwidth/u8-width.c
+++ b/lib/uniwidth/u8-width.c
@@ -1,5 +1,5 @@
/* Determine display width of UTF-8 string.
- Copyright (C) 2001-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -39,14 +39,12 @@ u8_width (const uint8_t *s, size_t n, const char *encoding)
while (s < s_end)
{
ucs4_t uc;
- int w;
-
s += u8_mbtouc_unsafe (&uc, s, s_end - s);
if (uc == 0)
break; /* end of string reached */
- w = uc_width (uc, encoding);
+ int w = uc_width (uc, encoding);
if (w >= 0) /* ignore control characters in the string */
width += w;
}
diff --git a/lib/uniwidth/width.c b/lib/uniwidth/width.c
index 5ada88d9..683f5513 100644
--- a/lib/uniwidth/width.c
+++ b/lib/uniwidth/width.c
@@ -1,5 +1,5 @@
/* Determine display width of Unicode character.
- Copyright (C) 2001-2002, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c
index 614da318..12bdd45b 100644
--- a/lib/vasnprintf.c
+++ b/lib/vasnprintf.c
@@ -1,5 +1,5 @@
/* vsprintf with automatic memory allocation.
- Copyright (C) 1999, 2002-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -134,6 +134,16 @@
# include "fpucw.h"
#endif
+#if HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
+/* Override macros from fpucw.h. */
+# undef DECL_LONG_DOUBLE_ROUNDING
+# define DECL_LONG_DOUBLE_ROUNDING
+# undef BEGIN_LONG_DOUBLE_ROUNDING
+# define BEGIN_LONG_DOUBLE_ROUNDING()
+# undef END_LONG_DOUBLE_ROUNDING
+# define END_LONG_DOUBLE_ROUNDING()
+#endif
+
/* Default parameters. */
#ifndef VASNPRINTF
# if WIDE_CHAR_VERSION
@@ -739,19 +749,18 @@ multiply (mpn_t src1, mpn_t src2, mpn_t *dest)
/* Here 1 <= len1 <= len2. */
size_t dlen;
mp_limb_t *dp;
- size_t k, i, j;
dlen = len1 + len2;
dp = (mp_limb_t *) malloc (dlen * sizeof (mp_limb_t));
if (dp == NULL)
return NOMEM_PTR;
- for (k = len2; k > 0; )
+ for (size_t k = len2; k > 0; )
dp[--k] = 0;
- for (i = 0; i < len1; i++)
+ for (size_t i = 0; i < len1; i++)
{
mp_limb_t digit1 = p1[i];
mp_twolimb_t carry = 0;
- for (j = 0; j < len2; j++)
+ for (size_t j = 0; j < len2; j++)
{
mp_limb_t digit2 = p2[j];
carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2;
@@ -835,7 +844,6 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
size_t a_len = a.nlimbs;
const mp_limb_t *b_ptr = b.limbs;
size_t b_len = b.nlimbs;
- mp_limb_t *roomptr;
mp_limb_t *tmp_roomptr = NULL;
mp_limb_t *q_ptr;
size_t q_len;
@@ -845,7 +853,7 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
/* Allocate room for a_len+2 digits.
(Need a_len+1 digits for the real division and 1 more digit for the
final rounding of q.) */
- roomptr = (mp_limb_t *) malloc ((a_len + 2) * sizeof (mp_limb_t));
+ mp_limb_t *roomptr = (mp_limb_t *) malloc ((a_len + 2) * sizeof (mp_limb_t));
if (roomptr == NULL)
return NOMEM_PTR;
@@ -887,8 +895,7 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
mp_limb_t remainder = 0;
const mp_limb_t *sourceptr = a_ptr + a_len;
mp_limb_t *destptr = q_ptr + a_len;
- size_t count;
- for (count = a_len; count > 0; count--)
+ for (size_t count = a_len; count > 0; count--)
{
mp_twolimb_t num =
((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--sourceptr;
@@ -989,8 +996,7 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
const mp_limb_t *sourceptr = b_ptr;
mp_limb_t *destptr = tmp_roomptr;
mp_twolimb_t accu = 0;
- size_t count;
- for (count = b_len; count > 0; count--)
+ for (size_t count = b_len; count > 0; count--)
{
accu += (mp_twolimb_t) *sourceptr++ << s;
*destptr++ = (mp_limb_t) accu;
@@ -1017,8 +1023,7 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
const mp_limb_t *sourceptr = a_ptr;
mp_limb_t *destptr = r_ptr;
mp_twolimb_t accu = 0;
- size_t count;
- for (count = a_len; count > 0; count--)
+ for (size_t count = a_len; count > 0; count--)
{
accu += (mp_twolimb_t) *sourceptr++ << s;
*destptr++ = (mp_limb_t) accu;
@@ -1094,8 +1099,7 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
const mp_limb_t *sourceptr = b_ptr;
mp_limb_t *destptr = r_ptr + j;
mp_twolimb_t carry = 0;
- size_t count;
- for (count = b_len; count > 0; count--)
+ for (size_t count = b_len; count > 0; count--)
{
/* Here 0 <= carry <= q*. */
carry =
@@ -1119,8 +1123,7 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
const mp_limb_t *sourceptr = b_ptr;
mp_limb_t *destptr = r_ptr + j;
mp_limb_t carry = 0;
- size_t count;
- for (count = b_len; count > 0; count--)
+ for (size_t count = b_len; count > 0; count--)
{
mp_limb_t source1 = *sourceptr++;
mp_limb_t source2 = *destptr;
@@ -1152,8 +1155,7 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
{
mp_limb_t ptr = r_ptr + r_len;
mp_twolimb_t accu = 0;
- size_t count;
- for (count = r_len; count > 0; count--)
+ for (size_t count = r_len; count > 0; count--)
{
accu = (mp_twolimb_t) (mp_limb_t) accu << GMP_LIMB_BITS;
accu += (mp_twolimb_t) *--ptr << (GMP_LIMB_BITS - s);
@@ -1168,29 +1170,25 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
/* Compare r << 1 with b. */
if (r_len > b_len)
goto increment_q;
- {
- size_t i;
- for (i = b_len;;)
- {
- mp_limb_t r_i =
- (i <= r_len && i > 0 ? r_ptr[i - 1] >> (GMP_LIMB_BITS - 1) : 0)
- | (i < r_len ? r_ptr[i] << 1 : 0);
- mp_limb_t b_i = (i < b_len ? b_ptr[i] : 0);
- if (r_i > b_i)
- goto increment_q;
- if (r_i < b_i)
- goto keep_q;
- if (i == 0)
- break;
- i--;
- }
- }
+ for (size_t i = b_len;;)
+ {
+ mp_limb_t r_i =
+ (i <= r_len && i > 0 ? r_ptr[i - 1] >> (GMP_LIMB_BITS - 1) : 0)
+ | (i < r_len ? r_ptr[i] << 1 : 0);
+ mp_limb_t b_i = (i < b_len ? b_ptr[i] : 0);
+ if (r_i > b_i)
+ goto increment_q;
+ if (r_i < b_i)
+ goto keep_q;
+ if (i == 0)
+ break;
+ i--;
+ }
if (q_len > 0 && ((q_ptr[0] & 1) != 0))
/* q is odd. */
increment_q:
{
- size_t i;
- for (i = 0; i < q_len; i++)
+ for (size_t i = 0; i < q_len; i++)
if (++(q_ptr[i]) != 0)
goto keep_q;
q_ptr[q_len++] = 1;
@@ -1236,8 +1234,7 @@ convert_to_decimal (mpn_t a, size_t extra_zeroes)
/* Divide a by 10^9, in-place. */
mp_limb_t remainder = 0;
mp_limb_t *ptr = a_ptr + a_len;
- size_t count;
- for (count = a_len; count > 0; count--)
+ for (size_t count = a_len; count > 0; count--)
{
mp_twolimb_t num =
((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--ptr;
@@ -1245,7 +1242,7 @@ convert_to_decimal (mpn_t a, size_t extra_zeroes)
remainder = num % 1000000000;
}
/* Store the remainder as 9 decimal digits. */
- for (count = 9; count > 0; count--)
+ for (size_t count = 9; count > 0; count--)
{
*d_ptr++ = '0' + (remainder % 10);
remainder = remainder / 10;
@@ -1279,18 +1276,15 @@ convert_to_decimal (mpn_t a, size_t extra_zeroes)
static void *
decode_long_double (long double x, int *ep, mpn_t *mp)
{
- mpn_t m;
- int exp;
- long double y;
- size_t i;
-
/* Allocate memory for result. */
+ mpn_t m;
m.nlimbs = (LDBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS;
m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t));
if (m.limbs == NULL)
return NULL;
/* Split into exponential part and mantissa. */
- y = safe_frexpl (x, &exp);
+ int exp;
+ long double y = safe_frexpl (x, &exp);
if (!(y >= 0.0L && y < 1.0L))
abort ();
/* x = 2^exp * y = 2^(exp - LDBL_MANT_BIT) * (y * 2^LDBL_MANT_BIT), and the
@@ -1328,7 +1322,7 @@ decode_long_double (long double x, int *ep, mpn_t *mp)
}
# endif
# endif
- for (i = LDBL_MANT_BIT / GMP_LIMB_BITS; i > 0; )
+ for (size_t i = LDBL_MANT_BIT / GMP_LIMB_BITS; i > 0; )
{
mp_limb_t hi, lo;
y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
@@ -1367,18 +1361,15 @@ decode_long_double (long double x, int *ep, mpn_t *mp)
static void *
decode_double (double x, int *ep, mpn_t *mp)
{
- mpn_t m;
- int exp;
- double y;
- size_t i;
-
/* Allocate memory for result. */
+ mpn_t m;
m.nlimbs = (DBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS;
m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t));
if (m.limbs == NULL)
return NULL;
/* Split into exponential part and mantissa. */
- y = frexp (x, &exp);
+ int exp;
+ double y = frexp (x, &exp);
if (!(y >= 0.0 && y < 1.0))
abort ();
/* x = 2^exp * y = 2^(exp - DBL_MANT_BIT) * (y * 2^DBL_MANT_BIT), and the
@@ -1416,7 +1407,7 @@ decode_double (double x, int *ep, mpn_t *mp)
}
# endif
# endif
- for (i = DBL_MANT_BIT / GMP_LIMB_BITS; i > 0; )
+ for (size_t i = DBL_MANT_BIT / GMP_LIMB_BITS; i > 0; )
{
mp_limb_t hi, lo;
y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
@@ -1451,24 +1442,11 @@ decode_double (double x, int *ep, mpn_t *mp)
static char *
scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
{
- int s;
- size_t extra_zeroes;
- unsigned int abs_n;
- unsigned int abs_s;
- mp_limb_t *pow5_ptr;
- size_t pow5_len;
- unsigned int s_limbs;
- unsigned int s_bits;
- mpn_t pow5;
- mpn_t z;
- void *z_memory;
- char *digits;
-
/* x = 2^e * m, hence
y = round (2^e * 10^n * m) = round (2^(e+n) * 5^n * m)
= round (2^s * 5^n * m). */
- s = e + n;
- extra_zeroes = 0;
+ int s = e + n;
+ size_t extra_zeroes = 0;
/* Factor out a common power of 10 if possible. */
if (s > 0 && n > 0)
{
@@ -1481,11 +1459,12 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
z = round (2^s * 5^n * m). */
/* Compute 5^|n|, possibly shifted by |s| bits if n and s have the same
sign. 2.322 is slightly larger than log(5)/log(2). */
- abs_n = (n >= 0 ? n : -n);
- abs_s = (s >= 0 ? s : -s);
- pow5_ptr = (mp_limb_t *) malloc (((int)(abs_n * (2.322f / GMP_LIMB_BITS)) + 1
- + abs_s / GMP_LIMB_BITS + 1)
- * sizeof (mp_limb_t));
+ unsigned int abs_n = (n >= 0 ? n : -n);
+ unsigned int abs_s = (s >= 0 ? s : -s);
+ mp_limb_t *pow5_ptr =
+ (mp_limb_t *) malloc (((int)(abs_n * (2.322f / GMP_LIMB_BITS)) + 1
+ + abs_s / GMP_LIMB_BITS + 1)
+ * sizeof (mp_limb_t));
if (pow5_ptr == NULL)
{
free (memory);
@@ -1493,7 +1472,7 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
}
/* Initialize with 1. */
pow5_ptr[0] = 1;
- pow5_len = 1;
+ size_t pow5_len = 1;
/* Multiply with 5^|n|. */
if (abs_n > 0)
{
@@ -1502,13 +1481,11 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625,
48828125, 244140625, 1220703125
};
- unsigned int n13;
- for (n13 = 0; n13 <= abs_n; n13 += 13)
+ for (unsigned int n13 = 0; n13 <= abs_n; n13 += 13)
{
mp_limb_t digit1 = small_pow5[n13 + 13 <= abs_n ? 13 : abs_n - n13];
- size_t j;
mp_twolimb_t carry = 0;
- for (j = 0; j < pow5_len; j++)
+ for (size_t j = 0; j < pow5_len; j++)
{
mp_limb_t digit2 = pow5_ptr[j];
carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2;
@@ -1519,8 +1496,11 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
pow5_ptr[pow5_len++] = (mp_limb_t) carry;
}
}
- s_limbs = abs_s / GMP_LIMB_BITS;
- s_bits = abs_s % GMP_LIMB_BITS;
+ unsigned int s_limbs = abs_s / GMP_LIMB_BITS;
+ unsigned int s_bits = abs_s % GMP_LIMB_BITS;
+ mpn_t pow5;
+ mpn_t z;
+ void *z_memory;
if (n >= 0 ? s >= 0 : s <= 0)
{
/* Multiply with 2^|s|. */
@@ -1528,8 +1508,7 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
{
mp_limb_t *ptr = pow5_ptr;
mp_twolimb_t accu = 0;
- size_t count;
- for (count = pow5_len; count > 0; count--)
+ for (size_t count = pow5_len; count > 0; count--)
{
accu += (mp_twolimb_t) *ptr << s_bits;
*ptr++ = (mp_limb_t) accu;
@@ -1543,13 +1522,12 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
}
if (s_limbs > 0)
{
- size_t count;
- for (count = pow5_len; count > 0;)
+ for (size_t count = pow5_len; count > 0;)
{
count--;
pow5_ptr[s_limbs + count] = pow5_ptr[count];
}
- for (count = s_limbs; count > 0;)
+ for (size_t count = s_limbs; count > 0;)
{
count--;
pow5_ptr[count] = 0;
@@ -1590,8 +1568,7 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
/* Construct 2^|s|. */
{
mp_limb_t *ptr = pow5_ptr + pow5_len;
- size_t i;
- for (i = 0; i < s_limbs; i++)
+ for (size_t i = 0; i < s_limbs; i++)
ptr[i] = 0;
ptr[s_limbs] = (mp_limb_t) 1 << s_bits;
denominator.limbs = ptr;
@@ -1616,17 +1593,13 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
}
{
mp_limb_t *destptr = num_ptr;
- {
- size_t i;
- for (i = 0; i < s_limbs; i++)
- *destptr++ = 0;
- }
+ for (size_t i = 0; i < s_limbs; i++)
+ *destptr++ = 0;
if (s_bits > 0)
{
const mp_limb_t *sourceptr = m.limbs;
mp_twolimb_t accu = 0;
- size_t count;
- for (count = m.nlimbs; count > 0; count--)
+ for (size_t count = m.nlimbs; count > 0; count--)
{
accu += (mp_twolimb_t) *sourceptr++ << s_bits;
*destptr++ = (mp_limb_t) accu;
@@ -1638,8 +1611,7 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
else
{
const mp_limb_t *sourceptr = m.limbs;
- size_t count;
- for (count = m.nlimbs; count > 0; count--)
+ for (size_t count = m.nlimbs; count > 0; count--)
*destptr++ = *sourceptr++;
}
numerator.limbs = num_ptr;
@@ -1656,7 +1628,7 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
if (z_memory == NOMEM_PTR)
return NULL;
- digits = convert_to_decimal (z, extra_zeroes);
+ char *digits = convert_to_decimal (z, extra_zeroes);
free (z_memory);
return digits;
}
@@ -1711,13 +1683,9 @@ scale10_round_decimal_double (double x, int n)
static int
floorlog10l (long double x)
{
- int exp;
- long double y;
- double z;
- double l;
-
/* Split into exponential part and mantissa. */
- y = safe_frexpl (x, &exp);
+ int exp;
+ long double y = safe_frexpl (x, &exp);
if (!(y >= 0.0L && y < 1.0L))
abort ();
if (y == 0.0L)
@@ -1758,8 +1726,8 @@ floorlog10l (long double x)
if (!(y >= 0.5L && y < 1.0L))
abort ();
/* Compute an approximation for l = log2(x) = exp + log2(y). */
- l = exp;
- z = y;
+ double l = exp;
+ double z = y;
if (z < 0.70710678118654752444)
{
z *= 1.4142135623730950488;
@@ -1802,13 +1770,9 @@ floorlog10l (long double x)
static int
floorlog10 (double x)
{
- int exp;
- double y;
- double z;
- double l;
-
/* Split into exponential part and mantissa. */
- y = frexp (x, &exp);
+ int exp;
+ double y = frexp (x, &exp);
if (!(y >= 0.0 && y < 1.0))
abort ();
if (y == 0.0)
@@ -1849,8 +1813,8 @@ floorlog10 (double x)
if (!(y >= 0.5 && y < 1.0))
abort ();
/* Compute an approximation for l = log2(x) = exp + log2(y). */
- l = exp;
- z = y;
+ double l = exp;
+ double z = y;
if (z < 0.70710678118654752444)
{
z *= 1.4142135623730950488;
@@ -2513,21 +2477,12 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
goto fail_1_with_EINVAL;
{
- size_t buf_neededlength;
- TCHAR_T *buf;
- TCHAR_T *buf_malloced;
- const FCHAR_T *cp;
- size_t di;
- DIRECTIVE *dp;
- /* Output string accumulator. */
- DCHAR_T *result;
- size_t allocated;
- size_t length;
-
/* Allocate a small buffer that will hold a directive passed to
sprintf or snprintf. */
- buf_neededlength =
+ size_t buf_neededlength =
xsum4 (7, d.max_width_length, d.max_precision_length, 6);
+ TCHAR_T *buf;
+ TCHAR_T *buf_malloced;
#if HAVE_ALLOCA
if (buf_neededlength < 4000 / sizeof (TCHAR_T))
{
@@ -2546,9 +2501,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
buf_malloced = buf;
}
- result = resultbuf;
- allocated = (resultbuf != NULL ? *lengthp : 0);
- length = 0;
+ /* Output string accumulator. */
+ DCHAR_T *result = resultbuf;
+ size_t allocated = (resultbuf != NULL ? *lengthp : 0);
+ size_t length = 0;
+
/* Invariants:
result is either == resultbuf or malloc-allocated.
If result == NULL, resultbuf is == NULL as well.
@@ -2559,15 +2516,13 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
#define ENSURE_ALLOCATION_ELSE(needed, oom_statement) \
if ((needed) > allocated) \
{ \
- size_t memory_size; \
- DCHAR_T *memory; \
- \
allocated = (allocated > 0 ? xtimes (allocated, 2) : 12); \
if ((needed) > allocated) \
allocated = (needed); \
- memory_size = xtimes (allocated, sizeof (DCHAR_T)); \
+ size_t memory_size = xtimes (allocated, sizeof (DCHAR_T)); \
if (size_overflow_p (memory_size)) \
oom_statement \
+ DCHAR_T *memory; \
if (result == resultbuf) \
memory = (DCHAR_T *) malloc (memory_size); \
else \
@@ -2581,6 +2536,9 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
#define ENSURE_ALLOCATION(needed) \
ENSURE_ALLOCATION_ELSE((needed), goto out_of_memory; )
+ const FCHAR_T *cp;
+ size_t di;
+ DIRECTIVE *dp;
for (cp = format, di = 0, dp = &d.dir[0]; ; cp = dp->dir_end, di++, dp++)
{
if (cp != dp->dir_start)
@@ -2681,22 +2639,16 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
arg_type type = a.arg[dp->arg_index].type;
int flags = dp->flags;
- int has_width;
- size_t width;
- int has_precision;
- size_t precision;
- has_width = 0;
- width = 0;
+ int has_width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -2719,17 +2671,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
has_width = 1;
}
- has_precision = 0;
- precision = 0;
+ int has_precision = 0;
+ size_t precision = 0;
if (dp->precision_start != dp->precision_end)
{
if (dp->precision_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->precision_arg_index].a.a_int;
+ int arg = a.arg[dp->precision_arg_index].a.a_int;
/* "A negative precision is taken as if the precision
were omitted." */
if (arg >= 0)
@@ -3074,22 +3024,16 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
than INT_MAX characters, whence snprintf or sprintf would
fail to process it. */
int flags = dp->flags;
- int has_width;
- size_t width;
- int has_precision;
- size_t precision;
- has_width = 0;
- width = 0;
+ int has_width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -3112,17 +3056,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
has_width = 1;
}
- has_precision = 0;
- precision = 6;
+ int has_precision = 0;
+ size_t precision = 6;
if (dp->precision_start != dp->precision_end)
{
if (dp->precision_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->precision_arg_index].a.a_int;
+ int arg = a.arg[dp->precision_arg_index].a.a_int;
/* "A negative precision is taken as if the precision
were omitted." */
if (arg >= 0)
@@ -3144,18 +3086,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
const char *arg = a.arg[dp->arg_index].a.a_string;
- size_t bytes;
-# if ENABLE_UNISTDIO && DCHAR_IS_TCHAR
- size_t characters;
-# endif
-# if !DCHAR_IS_TCHAR
- /* This code assumes that TCHAR_T is 'char'. */
- static_assert (sizeof (TCHAR_T) == 1);
- DCHAR_T *tmpdst;
- size_t tmpdst_len;
-# endif
- size_t w;
+ size_t bytes;
if (has_precision)
{
/* Use only at most PRECISION bytes, from the left. */
@@ -3169,6 +3101,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
}
# if ENABLE_UNISTDIO && DCHAR_IS_TCHAR
+ size_t characters;
if (has_width)
characters = mbsnlen (arg, bytes);
else
@@ -3180,6 +3113,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
# endif
# if !DCHAR_IS_TCHAR
+ /* This code assumes that TCHAR_T is 'char'. */
+ static_assert (sizeof (TCHAR_T) == 1);
+ DCHAR_T *tmpdst;
+ size_t tmpdst_len;
/* Convert from TCHAR_T[] to DCHAR_T[]. */
tmpdst =
DCHAR_CONV_FROM_ENCODING (locale_charset (),
@@ -3191,6 +3128,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
goto fail_with_errno;
# endif
+ size_t w;
if (has_width)
{
# if ENABLE_UNISTDIO
@@ -3260,18 +3198,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
convert back the result from a char[] to a wchar_t[].
Instead, just copy the argument wchar_t[] to the result. */
int flags = dp->flags;
- size_t width;
- width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -3300,20 +3235,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
if (dp->conversion == 's')
{
- int has_precision;
- size_t precision;
-
- has_precision = 0;
- precision = 6;
+ int has_precision = 0;
+ size_t precision = 6;
if (dp->precision_start != dp->precision_end)
{
if (dp->precision_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->precision_arg_index].a.a_int;
+ int arg = a.arg[dp->precision_arg_index].a.a_int;
/* "A negative precision is taken as if the precision
were omitted." */
if (arg >= 0)
@@ -3339,9 +3269,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
/* Use only at most PRECISION wide characters, from
the left. */
- const wchar_t *ls_arg_end;
-
- ls_arg_end = ls_arg;
+ const wchar_t *ls_arg_end = ls_arg;
characters = 0;
for (; precision > 0; precision--)
{
@@ -3413,22 +3341,16 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
such bugs, we implement the entire processing of the 's'
directive ourselves. */
int flags = dp->flags;
- int has_width;
- size_t width;
- int has_precision;
- size_t precision;
- has_width = 0;
- width = 0;
+ int has_width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -3451,17 +3373,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
has_width = 1;
}
- has_precision = 0;
- precision = 6;
+ int has_precision = 0;
+ size_t precision = 6;
if (dp->precision_start != dp->precision_end)
{
if (dp->precision_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->precision_arg_index].a.a_int;
+ int arg = a.arg[dp->precision_arg_index].a.a_int;
/* "A negative precision is taken as if the precision
were omitted." */
if (arg >= 0)
@@ -3563,13 +3483,12 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
if (has_precision || has_width)
{
/* We know the number of wide characters in advance. */
- size_t remaining;
# if HAVE_MBRTOWC
mbstate_t state;
mbszero (&state);
# endif
ENSURE_ALLOCATION (xsum (length, characters));
- for (remaining = characters; remaining > 0; remaining--)
+ for (size_t remaining = characters; remaining > 0; remaining--)
{
wchar_t wc;
int count;
@@ -3655,13 +3574,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
# endif
while (precision > 0)
{
- char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
- int count;
-
if (*arg_end == 0)
/* Found the terminating null wide character. */
break;
- count = local_wcrtomb (cbuf, *arg_end, &state);
+ char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count = local_wcrtomb (cbuf, *arg_end, &state);
if (count < 0)
/* Cannot convert. */
goto fail_with_EILSEQ;
@@ -3694,13 +3611,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
# endif
for (;;)
{
- char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
- int count;
-
if (*arg_end == 0)
/* Found the terminating null wide character. */
break;
- count = local_wcrtomb (cbuf, *arg_end, &state);
+ char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count = local_wcrtomb (cbuf, *arg_end, &state);
if (count < 0)
/* Cannot convert. */
goto fail_with_EILSEQ;
@@ -3727,27 +3642,22 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
# if !DCHAR_IS_TCHAR
{
- TCHAR_T *tmpsrc;
-
/* Convert the string into a piece of temporary memory. */
- tmpsrc = (TCHAR_T *) malloc (bytes * sizeof (TCHAR_T));
+ TCHAR_T *tmpsrc = (TCHAR_T *) malloc (bytes * sizeof (TCHAR_T));
if (tmpsrc == NULL)
goto out_of_memory;
{
TCHAR_T *tmpptr = tmpsrc;
- size_t remaining;
# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
mbstate_t state;
mbszero (&state);
# endif
- for (remaining = bytes; remaining > 0; )
+ for (size_t remaining = bytes; remaining > 0; )
{
- char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
- int count;
-
if (*arg == 0)
abort ();
- count = local_wcrtomb (cbuf, *arg, &state);
+ char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count = local_wcrtomb (cbuf, *arg, &state);
if (count <= 0)
/* Inconsistency. */
abort ();
@@ -3814,20 +3724,17 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
if (has_precision || has_width)
{
/* We know the number of bytes in advance. */
- size_t remaining;
# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
mbstate_t state;
mbszero (&state);
# endif
ENSURE_ALLOCATION (xsum (length, bytes));
- for (remaining = bytes; remaining > 0; )
+ for (size_t remaining = bytes; remaining > 0; )
{
- char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
- int count;
-
if (*arg == 0)
abort ();
- count = local_wcrtomb (cbuf, *arg, &state);
+ char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count = local_wcrtomb (cbuf, *arg, &state);
if (count <= 0)
/* Inconsistency. */
abort ();
@@ -3847,12 +3754,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
# endif
while (arg < arg_end)
{
- char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
- int count;
-
if (*arg == 0)
abort ();
- count = local_wcrtomb (cbuf, *arg, &state);
+ char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count = local_wcrtomb (cbuf, *arg, &state);
if (count <= 0)
/* Cannot convert. */
goto fail_with_EILSEQ;
@@ -3889,20 +3794,16 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
a correct behaviour for the null wint_t argument and/or the
fallback that avoids EILSEQ. */
int flags = dp->flags;
- int has_width;
- size_t width;
- has_width = 0;
- width = 0;
+ int has_width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -3945,14 +3846,13 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
# endif
{
/* Count the number of bytes. */
- char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
- int count;
# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
mbstate_t state;
mbszero (&state);
# endif
- count = local_wcrtomb (cbuf, arg, &state);
+ char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count = local_wcrtomb (cbuf, arg, &state);
if (count < 0)
/* Cannot convert. */
goto fail_with_EILSEQ;
@@ -3980,14 +3880,13 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
/* Convert the string into a piece of temporary memory. */
if (bytes > 0)
{
- char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
- int count;
# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
mbstate_t state;
mbszero (&state);
# endif
- count = local_wcrtomb (cbuf, arg, &state);
+ char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count = local_wcrtomb (cbuf, arg, &state);
if (count <= 0)
/* Inconsistency. */
abort ();
@@ -4047,13 +3946,12 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
ENSURE_ALLOCATION (xsum (length, bytes));
if (bytes > 0)
{
- int count;
# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
mbstate_t state;
mbszero (&state);
# endif
- count = local_wcrtomb (result + length, arg, &state);
+ int count = local_wcrtomb (result + length, arg, &state);
if (count <= 0)
/* Inconsistency. */
abort ();
@@ -4062,14 +3960,13 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
}
else
{
- char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
- int count;
# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
mbstate_t state;
mbszero (&state);
# endif
- count = local_wcrtomb (cbuf, arg, &state);
+ char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count = local_wcrtomb (cbuf, arg, &state);
if (count < 0)
/* Cannot convert. */
goto fail_with_EILSEQ;
@@ -4102,18 +3999,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
/* Implement the 'c' directive ourselves, in order to avoid
EILSEQ in the "C" locale. */
int flags = dp->flags;
- size_t width;
- width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -4139,9 +4033,9 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
char arg = (char) a.arg[dp->arg_index].a.a_char;
mbstate_t state;
- wchar_t wc;
-
mbszero (&state);
+
+ wchar_t wc;
int count = mbrtowc (&wc, &arg, 1, &state);
if (count < 0)
/* Invalid or incomplete multibyte character. */
@@ -4182,30 +4076,16 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
arg_type type = a.arg[dp->arg_index].type;
int flags = dp->flags;
- int has_width;
- size_t width;
- int has_precision;
- size_t precision;
- size_t tmp_length;
- size_t count;
- DCHAR_T tmpbuf[700];
- DCHAR_T *tmp;
- DCHAR_T *tmp_end;
- DCHAR_T *tmp_start;
- DCHAR_T *pad_ptr;
- DCHAR_T *p;
- has_width = 0;
- width = 0;
+ int has_width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -4228,17 +4108,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
has_width = 1;
}
- has_precision = 0;
- precision = 1;
+ int has_precision = 0;
+ size_t precision = 1;
if (dp->precision_start != dp->precision_end)
{
if (dp->precision_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->precision_arg_index].a.a_int;
+ int arg = a.arg[dp->precision_arg_index].a.a_int;
/* "A negative precision is taken as if the precision
were omitted." */
if (arg >= 0)
@@ -4259,6 +4137,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
}
/* Allocate a temporary buffer of sufficient size. */
+ size_t tmp_length;
switch (type)
{
default:
@@ -4325,6 +4204,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
if (tmp_length < width)
tmp_length = width;
+ DCHAR_T tmpbuf[700];
+ DCHAR_T *tmp;
if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T))
tmp = tmpbuf;
else
@@ -4340,7 +4221,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
goto out_of_memory;
}
- tmp_end = tmp + tmp_length;
+ DCHAR_T *tmp_end = tmp + tmp_length;
unsigned long long arg;
switch (type)
@@ -4389,7 +4270,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
}
int need_prefix = ((flags & FLAG_ALT) && arg != 0);
- p = tmp_end;
+ DCHAR_T *p = tmp_end;
/* "The result of converting a zero value with a precision
of zero is no characters." */
if (!(has_precision && precision == 0 && arg == 0))
@@ -4409,7 +4290,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
*--p = '0';
}
- pad_ptr = p;
+ DCHAR_T *pad_ptr = p;
if (need_prefix)
{
@@ -4422,12 +4303,12 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
# endif
*--p = '0';
}
- tmp_start = p;
+ DCHAR_T *tmp_start = p;
/* The generated string now extends from tmp_start to tmp_end,
with the zero padding insertion point being at pad_ptr,
tmp_start <= pad_ptr <= tmp_end. */
- count = tmp_end - tmp_start;
+ size_t count = tmp_end - tmp_start;
if (count < width)
{
@@ -4503,26 +4384,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
arg_type type = a.arg[dp->arg_index].type;
int flags = dp->flags;
- size_t width;
- int has_precision;
- size_t precision;
- size_t tmp_length;
- size_t count;
- DCHAR_T tmpbuf[700];
- DCHAR_T *tmp;
- DCHAR_T *pad_ptr;
- DCHAR_T *p;
- width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -4544,17 +4414,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
goto overflow;
}
- has_precision = 0;
- precision = 0;
+ int has_precision = 0;
+ size_t precision = 0;
if (dp->precision_start != dp->precision_end)
{
if (dp->precision_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->precision_arg_index].a.a_int;
+ int arg = a.arg[dp->precision_arg_index].a.a_int;
/* "A negative precision is taken as if the precision
were omitted." */
if (arg >= 0)
@@ -4575,6 +4443,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
}
/* Allocate a temporary buffer of sufficient size. */
+ size_t tmp_length;
if (type == TYPE_LONGDOUBLE)
tmp_length =
(unsigned int) ((LDBL_DIG + 1)
@@ -4597,6 +4466,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */
+ DCHAR_T tmpbuf[700];
+ DCHAR_T *tmp;
if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T))
tmp = tmpbuf;
else
@@ -4612,8 +4483,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
goto out_of_memory;
}
- pad_ptr = NULL;
- p = tmp;
+ DCHAR_T *pad_ptr = NULL;
+ DCHAR_T *p = tmp;
if (type == TYPE_LONGDOUBLE)
{
# if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || (NEED_WPRINTF_DIRECTIVE_LA && WIDE_CHAR_VERSION)
@@ -4632,11 +4503,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
}
else
{
- int sign = 0;
DECL_LONG_DOUBLE_ROUNDING
BEGIN_LONG_DOUBLE_ROUNDING ();
+ int sign = 0;
if (signbit (arg)) /* arg < 0.0L or negative zero */
{
sign = -1;
@@ -4665,7 +4536,6 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
int exponent;
long double mantissa;
-
if (arg > 0.0L)
mantissa = printf_frexpl (arg, &exponent);
else
@@ -4679,9 +4549,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
/* Round the mantissa. */
long double tail = mantissa;
- size_t q;
- for (q = precision; ; q--)
+ for (size_t q = precision; ; q--)
{
int digit = (int) tail;
tail -= digit;
@@ -4696,7 +4565,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
tail *= 16.0L;
}
if (tail != 0.0L)
- for (q = precision; q > 0; q--)
+ for (size_t q = precision; q > 0; q--)
tail *= 0.0625L;
mantissa += tail;
}
@@ -4705,9 +4574,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
*p++ = dp->conversion - 'A' + 'X';
pad_ptr = p;
{
- int digit;
-
- digit = (int) mantissa;
+ int digit = (int) mantissa;
mantissa -= digit;
*p++ = '0' + digit;
if ((flags & FLAG_ALT)
@@ -4754,9 +4621,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
char expbuf[6 + 1];
- const char *ep;
sprintf (expbuf, "%+d", exponent);
- for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ for (const char *ep = expbuf; (*p = *ep) != '\0'; ep++)
p++;
}
# endif
@@ -4787,7 +4653,6 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
int sign = 0;
-
if (signbit (arg)) /* arg < 0.0 or negative zero */
{
sign = -1;
@@ -4816,7 +4681,6 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
int exponent;
double mantissa;
-
if (arg > 0.0)
mantissa = printf_frexp (arg, &exponent);
else
@@ -4830,9 +4694,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
/* Round the mantissa. */
double tail = mantissa;
- size_t q;
- for (q = precision; ; q--)
+ for (size_t q = precision; ; q--)
{
int digit = (int) tail;
tail -= digit;
@@ -4847,7 +4710,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
tail *= 16.0;
}
if (tail != 0.0)
- for (q = precision; q > 0; q--)
+ for (size_t q = precision; q > 0; q--)
tail *= 0.0625;
mantissa += tail;
}
@@ -4856,9 +4719,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
*p++ = dp->conversion - 'A' + 'X';
pad_ptr = p;
{
- int digit;
-
- digit = (int) mantissa;
+ int digit = (int) mantissa;
mantissa -= digit;
*p++ = '0' + digit;
if ((flags & FLAG_ALT)
@@ -4905,9 +4766,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
char expbuf[6 + 1];
- const char *ep;
sprintf (expbuf, "%+d", exponent);
- for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ for (const char *ep = expbuf; (*p = *ep) != '\0'; ep++)
p++;
}
# endif
@@ -4920,7 +4780,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
/* The generated string now extends from tmp to p, with the
zero padding insertion point being at pad_ptr. */
- count = p - tmp;
+ size_t count = p - tmp;
if (count < width)
{
@@ -5011,26 +4871,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
arg_type type = a.arg[dp->arg_index].type;
# endif
int flags = dp->flags;
- size_t width;
- size_t count;
- int has_precision;
- size_t precision;
- size_t tmp_length;
- DCHAR_T tmpbuf[700];
- DCHAR_T *tmp;
- DCHAR_T *pad_ptr;
- DCHAR_T *p;
- width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -5052,17 +4901,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
goto overflow;
}
- has_precision = 0;
- precision = 0;
+ int has_precision = 0;
+ size_t precision = 0;
if (dp->precision_start != dp->precision_end)
{
if (dp->precision_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->precision_arg_index].a.a_int;
+ int arg = a.arg[dp->precision_arg_index].a.a_int;
/* "A negative precision is taken as if the precision
were omitted." */
if (arg >= 0)
@@ -5091,6 +4938,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
precision = 6;
/* Allocate a temporary buffer of sufficient size. */
+ size_t tmp_length;
# if NEED_PRINTF_DOUBLE && NEED_PRINTF_LONG_DOUBLE
tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : DBL_DIG + 1);
# elif NEED_PRINTF_INFINITE_DOUBLE && NEED_PRINTF_LONG_DOUBLE
@@ -5155,6 +5003,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */
+ DCHAR_T tmpbuf[700];
+ DCHAR_T *tmp;
if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T))
tmp = tmpbuf;
else
@@ -5170,8 +5020,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
goto out_of_memory;
}
- pad_ptr = NULL;
- p = tmp;
+ DCHAR_T *pad_ptr = NULL;
+ DCHAR_T *p = tmp;
# if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE
# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE
@@ -5193,11 +5043,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
}
else
{
- int sign = 0;
DECL_LONG_DOUBLE_ROUNDING
BEGIN_LONG_DOUBLE_ROUNDING ();
+ int sign = 0;
if (signbit (arg)) /* arg < 0.0L or negative zero */
{
sign = -1;
@@ -5229,17 +5079,14 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
if (dp->conversion == 'f' || dp->conversion == 'F')
{
- char *digits;
- size_t ndigits;
-
- digits =
+ char *digits =
scale10_round_decimal_long_double (arg, precision);
if (digits == NULL)
{
END_LONG_DOUBLE_ROUNDING ();
goto out_of_memory;
}
- ndigits = strlen (digits);
+ size_t ndigits = strlen (digits);
if (ndigits > precision)
{
@@ -5355,12 +5202,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
/* arg > 0.0L. */
- int adjusted;
+ exponent = floorlog10l (arg);
+ int adjusted = 0;
char *digits;
size_t ndigits;
-
- exponent = floorlog10l (arg);
- adjusted = 0;
for (;;)
{
digits =
@@ -5451,9 +5296,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
char expbuf[6 + 1];
- const char *ep;
sprintf (expbuf, "%+.2d", exponent);
- for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ for (const char *ep = expbuf; (*p = *ep) != '\0'; ep++)
p++;
}
# endif
@@ -5489,14 +5333,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
/* arg > 0.0L. */
- int exponent;
- int adjusted;
+ int exponent = floorlog10l (arg);
+ int adjusted = 0;
char *digits;
size_t ndigits;
- size_t nzeroes;
-
- exponent = floorlog10l (arg);
- adjusted = 0;
for (;;)
{
digits =
@@ -5556,7 +5396,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
/* Determine the number of trailing zeroes
that have to be dropped. */
- nzeroes = 0;
+ size_t nzeroes = 0;
if ((flags & FLAG_ALT) == 0)
while (nzeroes < ndigits
&& digits[nzeroes] == '0')
@@ -5706,9 +5546,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
char expbuf[6 + 1];
- const char *ep;
sprintf (expbuf, "%+.2d", exponent);
- for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ for (const char *ep = expbuf; (*p = *ep) != '\0'; ep++)
p++;
}
# endif
@@ -5808,7 +5647,6 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
int sign = 0;
-
if (signbit (arg)) /* arg < 0.0 or negative zero */
{
sign = -1;
@@ -5840,14 +5678,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
if (dp->conversion == 'f' || dp->conversion == 'F')
{
- char *digits;
- size_t ndigits;
-
- digits =
+ char *digits =
scale10_round_decimal_double (arg, precision);
if (digits == NULL)
goto out_of_memory;
- ndigits = strlen (digits);
+ size_t ndigits = strlen (digits);
if (ndigits > precision)
{
@@ -5963,12 +5798,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
/* arg > 0.0. */
- int adjusted;
+ exponent = floorlog10 (arg);
+ int adjusted = 0;
char *digits;
size_t ndigits;
-
- exponent = floorlog10 (arg);
- adjusted = 0;
for (;;)
{
digits =
@@ -6070,9 +5903,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
char expbuf[6 + 1];
- const char *ep;
sprintf (expbuf, decimal_format, exponent);
- for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ for (const char *ep = expbuf; (*p = *ep) != '\0'; ep++)
p++;
}
}
@@ -6109,14 +5941,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
/* arg > 0.0. */
- int exponent;
- int adjusted;
+ int exponent = floorlog10 (arg);
+ int adjusted = 0;
char *digits;
size_t ndigits;
- size_t nzeroes;
-
- exponent = floorlog10 (arg);
- adjusted = 0;
for (;;)
{
digits =
@@ -6172,7 +6000,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
/* Determine the number of trailing zeroes
that have to be dropped. */
- nzeroes = 0;
+ size_t nzeroes = 0;
if ((flags & FLAG_ALT) == 0)
while (nzeroes < ndigits
&& digits[nzeroes] == '0')
@@ -6337,9 +6165,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
char expbuf[6 + 1];
- const char *ep;
sprintf (expbuf, decimal_format, exponent);
- for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ for (const char *ep = expbuf; (*p = *ep) != '\0'; ep++)
p++;
}
}
@@ -6409,7 +6236,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
/* The generated string now extends from tmp to p, with the
zero padding insertion point being at pad_ptr. */
- count = p - tmp;
+ size_t count = p - tmp;
if (count < width)
{
@@ -6473,16 +6300,6 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
arg_type type = a.arg[dp->arg_index].type;
int flags = dp->flags;
-#if (WIDE_CHAR_VERSION && MUSL_LIBC) || NEED_PRINTF_FLAG_LEFTADJUST || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_FLAG_ALT_PRECISION_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION || NEED_PRINTF_FLAG_GROUPING || NEED_PRINTF_FLAG_GROUPING_INT
- int has_width;
-#endif
-#if !USE_SNPRINTF || WIDE_CHAR_VERSION || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || NEED_PRINTF_FLAG_LEFTADJUST || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_FLAG_ALT_PRECISION_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION || NEED_PRINTF_FLAG_GROUPING || NEED_PRINTF_FLAG_GROUPING_INT
- size_t width;
-#endif
-#if !USE_SNPRINTF || (WIDE_CHAR_VERSION && DCHAR_IS_TCHAR) || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || (WIDE_CHAR_VERSION && MUSL_LIBC) || NEED_PRINTF_FLAG_LEFTADJUST || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_FLAG_ALT_PRECISION_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION || NEED_PRINTF_FLAG_GROUPING || NEED_PRINTF_FLAG_GROUPING_INT
- int has_precision;
- size_t precision;
-#endif
#if NEED_PRINTF_FLAG_ALT_PRECISION_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
int prec_ourselves;
#else
@@ -6511,19 +6328,17 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
#endif
#if (WIDE_CHAR_VERSION && MUSL_LIBC) || NEED_PRINTF_FLAG_LEFTADJUST || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_FLAG_ALT_PRECISION_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION || NEED_PRINTF_FLAG_GROUPING || NEED_PRINTF_FLAG_GROUPING_INT
- has_width = 0;
+ int has_width = 0;
#endif
#if !USE_SNPRINTF || WIDE_CHAR_VERSION || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || NEED_PRINTF_FLAG_LEFTADJUST || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_FLAG_ALT_PRECISION_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION || NEED_PRINTF_FLAG_GROUPING || NEED_PRINTF_FLAG_GROUPING_INT
- width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -6551,17 +6366,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
#endif
#if !USE_SNPRINTF || (WIDE_CHAR_VERSION && DCHAR_IS_TCHAR) || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || (WIDE_CHAR_VERSION && MUSL_LIBC) || NEED_PRINTF_FLAG_LEFTADJUST || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_FLAG_ALT_PRECISION_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION || NEED_PRINTF_FLAG_GROUPING || NEED_PRINTF_FLAG_GROUPING_INT
- has_precision = 0;
- precision = 6;
+ int has_precision = 0;
+ size_t precision = 6;
if (dp->precision_start != dp->precision_end)
{
if (dp->precision_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->precision_arg_index].a.a_int;
+ int arg = a.arg[dp->precision_arg_index].a.a_int;
/* "A negative precision is taken as if the precision
were omitted." */
if (arg >= 0)
@@ -6730,11 +6543,9 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
quick check anyway. */
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -6959,7 +6770,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
/* The following platforms forbid %n:
- 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).
+ program (if compiled with _FORTIFY_SOURCE >= 2).
- On macOS 10.13 or newer, the use of %n in format
strings in writable memory by default crashes the
program.
@@ -7659,16 +7470,16 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
)
{
/* The result string is not guaranteed to be ASCII. */
- const TCHAR_T *tmpsrc;
- DCHAR_T *tmpdst;
- size_t tmpdst_len;
/* This code assumes that TCHAR_T is 'char'. */
static_assert (sizeof (TCHAR_T) == 1);
+ const TCHAR_T *tmpsrc;
# if USE_SNPRINTF
tmpsrc = (TCHAR_T *) (result + length);
# else
tmpsrc = tmp;
# endif
+ DCHAR_T *tmpdst;
+ size_t tmpdst_len;
# if WIDE_CHAR_VERSION
/* Convert tmpsrc[0..count-1] to a freshly allocated
wide character array. */
@@ -7746,9 +7557,6 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
# endif
{
const TCHAR_T *tmpsrc;
- DCHAR_T *tmpdst;
- size_t n;
-
# if USE_SNPRINTF
if (result == resultbuf)
{
@@ -7768,11 +7576,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
tmpsrc = tmp;
ENSURE_ALLOCATION (xsum (length, count));
# endif
- tmpdst = result + length;
+ DCHAR_T *tmpdst = result + length;
/* Copy backwards, because of overlapping. */
tmpsrc += count;
tmpdst += count;
- for (n = count; n > 0; n--)
+ for (size_t n = count; n > 0; n--)
*--tmpdst = *--tmpsrc;
}
}
@@ -7957,8 +7765,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
/* Convert the %f result to upper case for %F. */
DCHAR_T *rp = result + length;
- size_t rc;
- for (rc = count; rc > 0; rc--, rp++)
+ for (size_t rc = count; rc > 0; rc--, rp++)
if (*rp >= 'a' && *rp <= 'z')
*rp = *rp - 'a' + 'A';
}
@@ -7981,9 +7788,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
if (result != resultbuf && length + 1 < allocated)
{
/* Shrink the allocated memory if possible. */
- DCHAR_T *memory;
-
- memory = (DCHAR_T *) realloc (result, (length + 1) * sizeof (DCHAR_T));
+ DCHAR_T *memory =
+ (DCHAR_T *) realloc (result, (length + 1) * sizeof (DCHAR_T));
if (memory != NULL)
result = memory;
}
diff --git a/lib/verify.h b/lib/verify.h
index 3b01d7c2..ad45c39d 100644
--- a/lib/verify.h
+++ b/lib/verify.h
@@ -1,6 +1,6 @@
/* Compile-time assert-like macros.
- Copyright (C) 2005-2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2006, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/warn-on-use.h b/lib/warn-on-use.h
index c0072412..97f36ea2 100644
--- a/lib/warn-on-use.h
+++ b/lib/warn-on-use.h
@@ -1,5 +1,5 @@
/* A C macro for emitting warnings if a function is used.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 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/wchar.in.h b/lib/wchar.in.h
index ab602a28..a60a4dfc 100644
--- a/lib/wchar.in.h
+++ b/lib/wchar.in.h
@@ -1,6 +1,6 @@
/* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -301,7 +301,7 @@ _GL_EXTERN_C int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3)
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3);
# ifndef __cplusplus
-_GL_EXTERN_C wchar_t *wmemchr (const wchar_t *__s, wchar_t __wc, size_t __n)
+_GL_EXTERN_C wchar_t *(wmemchr) (const wchar_t *__s, wchar_t __wc, size_t __n)
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3);
# endif
_GL_EXTERN_C wchar_t *wmemset (wchar_t *__s, wchar_t __wc, size_t __n)
@@ -332,7 +332,6 @@ _GL_CXXALIAS_SYS_CAST (btowc, wint_t, (int c));
_GL_CXXALIASWARN (btowc);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef btowc
# if HAVE_RAW_DECL_BTOWC
_GL_WARN_ON_USE (btowc, "btowc is unportable - "
"use gnulib module btowc for portability");
@@ -360,7 +359,6 @@ _GL_CXXALIAS_SYS (wctob, int, (wint_t wc));
_GL_CXXALIASWARN (wctob);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wctob
# if HAVE_RAW_DECL_WCTOB
_GL_WARN_ON_USE (wctob, "wctob is unportable - "
"use gnulib module wctob for portability");
@@ -387,7 +385,6 @@ _GL_CXXALIAS_SYS (mbsinit, int, (const mbstate_t *ps));
_GL_CXXALIASWARN (mbsinit);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mbsinit
# if HAVE_RAW_DECL_MBSINIT
_GL_WARN_ON_USE (mbsinit, "mbsinit is unportable - "
"use gnulib module mbsinit for portability");
@@ -627,7 +624,6 @@ _GL_CXXALIAS_SYS (mbrtowc, size_t,
_GL_CXXALIASWARN (mbrtowc);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mbrtowc
# if HAVE_RAW_DECL_MBRTOWC
_GL_WARN_ON_USE (mbrtowc, "mbrtowc is unportable - "
"use gnulib module mbrtowc for portability");
@@ -658,7 +654,6 @@ _GL_CXXALIAS_SYS (mbrlen, size_t,
_GL_CXXALIASWARN (mbrlen);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mbrlen
# if HAVE_RAW_DECL_MBRLEN
_GL_WARN_ON_USE (mbrlen, "mbrlen is unportable - "
"use gnulib module mbrlen for portability");
@@ -699,7 +694,6 @@ _GL_CXXALIAS_SYS (mbsrtowcs, size_t,
_GL_CXXALIASWARN (mbsrtowcs);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mbsrtowcs
# if HAVE_RAW_DECL_MBSRTOWCS
_GL_WARN_ON_USE (mbsrtowcs, "mbsrtowcs is unportable - "
"use gnulib module mbsrtowcs for portability");
@@ -740,7 +734,6 @@ _GL_CXXALIAS_SYS (mbsnrtowcs, size_t,
_GL_CXXALIASWARN (mbsnrtowcs);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mbsnrtowcs
# if HAVE_RAW_DECL_MBSNRTOWCS
_GL_WARN_ON_USE (mbsnrtowcs, "mbsnrtowcs is unportable - "
"use gnulib module mbsnrtowcs for portability");
@@ -771,7 +764,6 @@ _GL_CXXALIAS_SYS (wcrtomb, size_t,
_GL_CXXALIASWARN (wcrtomb);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcrtomb
# if HAVE_RAW_DECL_WCRTOMB
_GL_WARN_ON_USE (wcrtomb, "wcrtomb is unportable - "
"use gnulib module wcrtomb for portability");
@@ -812,7 +804,6 @@ _GL_CXXALIAS_SYS (wcsrtombs, size_t,
_GL_CXXALIASWARN (wcsrtombs);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcsrtombs
# if HAVE_RAW_DECL_WCSRTOMBS
_GL_WARN_ON_USE (wcsrtombs, "wcsrtombs is unportable - "
"use gnulib module wcsrtombs for portability");
@@ -857,7 +848,6 @@ _GL_CXXALIAS_SYS (wcsnrtombs, size_t,
_GL_CXXALIASWARN (wcsnrtombs);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcsnrtombs
# if HAVE_RAW_DECL_WCSNRTOMBS
_GL_WARN_ON_USE (wcsnrtombs, "wcsnrtombs is unportable - "
"use gnulib module wcsnrtombs for portability");
@@ -885,7 +875,6 @@ _GL_CXXALIAS_SYS (wcwidth, int, (wchar_t));
_GL_CXXALIASWARN (wcwidth);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcwidth
# if HAVE_RAW_DECL_WCWIDTH
_GL_WARN_ON_USE (wcwidth, "wcwidth is unportable - "
"use gnulib module wcwidth for portability");
@@ -918,7 +907,6 @@ _GL_CXXALIASWARN1 (wmemchr, const wchar_t *,
_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");
@@ -955,7 +943,6 @@ _GL_CXXALIAS_SYS (wmemcmp, int,
_GL_CXXALIASWARN (wmemcmp);
# endif
#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");
@@ -979,7 +966,6 @@ _GL_CXXALIAS_SYS (wmemcpy, wchar_t *,
_GL_CXXALIASWARN (wmemcpy);
# endif
#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");
@@ -1002,7 +988,6 @@ _GL_CXXALIAS_SYS (wmemmove, wchar_t *,
_GL_CXXALIASWARN (wmemmove);
# endif
#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");
@@ -1038,7 +1023,6 @@ _GL_CXXALIAS_SYS (wmempcpy, wchar_t *,
_GL_CXXALIASWARN (wmempcpy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wmempcpy
# if HAVE_RAW_DECL_WMEMPCPY
_GL_WARN_ON_USE (wmempcpy, "wmempcpy is unportable - "
"use gnulib module wmempcpy for portability");
@@ -1057,7 +1041,6 @@ _GL_CXXALIAS_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n));
_GL_CXXALIASWARN (wmemset);
# endif
#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");
@@ -1075,7 +1058,6 @@ _GL_CXXALIAS_SYS (wcslen, size_t, (const wchar_t *s));
_GL_CXXALIASWARN (wcslen);
# endif
#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");
@@ -1095,7 +1077,6 @@ _GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen),
_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");
@@ -1115,7 +1096,6 @@ _GL_CXXALIAS_SYS (wcscpy, wchar_t *,
_GL_CXXALIASWARN (wcscpy);
# endif
#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");
@@ -1136,7 +1116,6 @@ _GL_CXXALIAS_SYS (wcpcpy, wchar_t *,
(wchar_t *restrict dest, const wchar_t *restrict 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");
@@ -1160,7 +1139,6 @@ _GL_CXXALIAS_SYS (wcsncpy, wchar_t *,
_GL_CXXALIASWARN (wcsncpy);
# endif
#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");
@@ -1184,7 +1162,6 @@ _GL_CXXALIAS_SYS (wcpncpy, wchar_t *,
const wchar_t *restrict 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");
@@ -1204,7 +1181,6 @@ _GL_CXXALIAS_SYS (wcscat, wchar_t *,
_GL_CXXALIASWARN (wcscat);
# endif
#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");
@@ -1243,7 +1219,6 @@ _GL_CXXALIAS_SYS (wcsncat, wchar_t *,
_GL_CXXALIASWARN (wcsncat);
# endif
#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");
@@ -1272,7 +1247,6 @@ _GL_CXXALIAS_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2));
_GL_CXXALIASWARN (wcscmp);
# endif
#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");
@@ -1309,7 +1283,6 @@ _GL_CXXALIAS_SYS (wcsncmp, int,
_GL_CXXALIASWARN (wcsncmp);
# endif
#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");
@@ -1329,7 +1302,6 @@ _GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2),
_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");
@@ -1351,7 +1323,6 @@ _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");
@@ -1370,7 +1341,6 @@ _GL_CXXALIAS_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2));
_GL_CXXALIASWARN (wcscoll);
# endif
#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");
@@ -1392,7 +1362,6 @@ _GL_CXXALIAS_SYS (wcsxfrm, size_t,
_GL_CXXALIASWARN (wcsxfrm);
# endif
#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");
@@ -1443,7 +1412,6 @@ _GL_FUNCDECL_SYS (wcsdup, wchar_t *,
# endif
# endif
# if defined GNULIB_POSIXCHECK
-# undef wcsdup
# if HAVE_RAW_DECL_WCSDUP
_GL_WARN_ON_USE (wcsdup, "wcsdup is unportable - "
"use gnulib module wcsdup for portability");
@@ -1503,7 +1471,6 @@ _GL_CXXALIASWARN1 (wcschr, const wchar_t *, (const wchar_t *wcs, wchar_t wc));
_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");
@@ -1534,7 +1501,6 @@ _GL_CXXALIASWARN1 (wcsrchr, const wchar_t *, (const wchar_t *wcs, wchar_t wc));
_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");
@@ -1554,7 +1520,6 @@ _GL_CXXALIAS_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject));
_GL_CXXALIASWARN (wcscspn);
# endif
#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");
@@ -1574,7 +1539,6 @@ _GL_CXXALIAS_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept));
_GL_CXXALIASWARN (wcsspn);
# endif
#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");
@@ -1608,7 +1572,6 @@ _GL_CXXALIASWARN1 (wcspbrk, const wchar_t *,
_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");
@@ -1661,7 +1624,6 @@ _GL_CXXALIASWARN1 (wcsstr, const wchar_t *,
_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");
@@ -1696,7 +1658,6 @@ _GL_CXXALIAS_SYS (wcstok, wchar_t *,
_GL_CXXALIASWARN (wcstok);
# endif
#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");
@@ -1726,7 +1687,6 @@ _GL_CXXALIAS_SYS (wcswidth, int, (const wchar_t *s, size_t n));
_GL_CXXALIASWARN (wcswidth);
# endif
#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");
@@ -1768,7 +1728,6 @@ _GL_CXXALIAS_SYS (wcsftime, size_t,
_GL_CXXALIASWARN (wcsftime);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcsftime
# if HAVE_RAW_DECL_WCSFTIME
_GL_WARN_ON_USE (wcsftime, "wcsftime is unportable - "
"use gnulib module wcsftime for portability");
diff --git a/lib/wcs-two-way.h b/lib/wcs-two-way.h
index 4cd384aa..9d07736a 100644
--- a/lib/wcs-two-way.h
+++ b/lib/wcs-two-way.h
@@ -1,5 +1,5 @@
/* Wide character substring search, using the Two-Way algorithm.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Eric Blake <ebb9@byu.net>, 2008.
@@ -91,13 +91,6 @@ static size_t
critical_factorization (const UNIT *needle, size_t needle_len,
size_t *period)
{
- /* Index of last character 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. */
- UNIT a, b; /* Current comparison characters. */
-
/* Special case NEEDLE_LEN of 1 or 2 (all callers already filtered
out 0-length needles. */
if (needle_len < 3)
@@ -116,73 +109,83 @@ critical_factorization (const UNIT *needle, size_t needle_len,
*/
/* 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;
+ size_t max_suffix = /* Index of last character of left half, or SIZE_MAX. */
+ SIZE_MAX;
+ {
+ size_t j = 0; /* Index into NEEDLE for current candidate suffix. */
+ size_t k = 1; /* Offset into current period. */
+ size_t p = 1; /* Intermediate period. */
+ while (j + k < needle_len)
+ {
+ UNIT a = CANON_ELEMENT (needle[j + k]);
+ UNIT 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;
- }
- }
+ size_t max_suffix_rev = /* Index of last character of left half, or SIZE_MAX. */
+ SIZE_MAX;
+ size_t p_rev;
+ {
+ size_t j = 0; /* Index into NEEDLE for current candidate suffix. */
+ size_t k = 1; /* Offset into current period. */
+ size_t p = 1; /* Intermediate period. */
+ while (j + k < needle_len)
+ {
+ UNIT a = CANON_ELEMENT (needle[j + k]);
+ UNIT 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;
+ }
+ }
+ p_rev = p;
+ }
/* Choose the shorter suffix. Return the index of the first character
of the right half, rather than the last character of the left half.
@@ -200,7 +203,7 @@ critical_factorization (const UNIT *needle, size_t needle_len,
factorization. */
if (max_suffix_rev + 1 < max_suffix + 1)
return max_suffix + 1;
- *period = p;
+ *period = p_rev;
return max_suffix_rev + 1;
}
@@ -218,15 +221,12 @@ static RETURN_TYPE _GL_ATTRIBUTE_PURE
two_way_short_needle (const UNIT *haystack, size_t haystack_len,
const UNIT *needle, size_t needle_len)
{
- size_t i; /* Index into current character 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);
+ size_t period; /* The period of the right half of needle. */
+ size_t suffix = /* The index of the right half of needle. */
+ critical_factorization (needle, needle_len, &period);
/* Perform the search. Each iteration compares the right half
first. */
@@ -236,11 +236,12 @@ two_way_short_needle (const UNIT *haystack, size_t haystack_len,
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;
+ size_t j = 0; /* Index into current window of HAYSTACK. */
while (AVAILABLE (haystack, haystack_len, j, needle_len))
{
/* Scan for matches in right half. */
- i = MAX (suffix, memory);
+ size_t i = /* Index into current character of NEEDLE. */
+ MAX (suffix, memory);
while (i < needle_len && (CANON_ELEMENT (needle[i])
== CANON_ELEMENT (haystack[i + j])))
++i;
@@ -270,11 +271,12 @@ two_way_short_needle (const UNIT *haystack, size_t haystack_len,
/* 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;
+ size_t j = 0; /* Index into current window of HAYSTACK. */
while (AVAILABLE (haystack, haystack_len, j, needle_len))
{
/* Scan for matches in right half. */
- i = suffix;
+ size_t i = /* Index into current character of NEEDLE. */
+ suffix;
while (i < needle_len && (CANON_ELEMENT (needle[i])
== CANON_ELEMENT (haystack[i + j])))
++i;
diff --git a/lib/wcsstr-impl.h b/lib/wcsstr-impl.h
index 60463b4b..423c7fd9 100644
--- a/lib/wcsstr-impl.h
+++ b/lib/wcsstr-impl.h
@@ -1,5 +1,5 @@
/* Locate a substring in a wide string.
- Copyright (C) 1999, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2011-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -24,31 +24,33 @@
RETURN_TYPE
FUNC (const UNIT *haystack_start, const UNIT *needle_start)
{
- const UNIT *haystack = haystack_start;
const UNIT *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 (RETURN_TYPE) haystack_start;
+ {
+ const UNIT *haystack = haystack_start;
+ bool ok = true; /* True if NEEDLE is prefix of HAYSTACK. */
+ while (*haystack && *needle)
+ ok &= *haystack++ == *needle++;
+ if (*needle)
+ return NULL;
+ if (ok)
+ return (RETURN_TYPE) 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);
+ size_t needle_len = /* Length of NEEDLE. */
+ needle - needle_start;
+ const UNIT *haystack = STRCHR (haystack_start + 1, *needle_start);
if (!haystack || __builtin_expect (needle_len == 1, 0))
return (RETURN_TYPE) haystack;
needle -= needle_len;
- haystack_len = (haystack > haystack_start + needle_len ? 1
- : needle_len + haystack_start - haystack);
+ size_t haystack_len = /* Known minimum length of HAYSTACK. */
+ (haystack > haystack_start + needle_len ? 1
+ : needle_len + haystack_start - haystack);
/* Perform the search. */
return two_way_short_needle (haystack, haystack_len,
diff --git a/lib/wctype-h.c b/lib/wctype-h.c
index 098014a9..f773d0cb 100644
--- a/lib/wctype-h.c
+++ b/lib/wctype-h.c
@@ -1,6 +1,6 @@
/* Inline functions for <wctype.h>.
- Copyright (C) 2012-2025 Free Software Foundation, Inc.
+ Copyright (C) 2012-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/wctype.in.h b/lib/wctype.in.h
index 17b5235b..15f310ce 100644
--- a/lib/wctype.in.h
+++ b/lib/wctype.in.h
@@ -1,6 +1,6 @@
/* A substitute for ISO C99 <wctype.h>, for platforms that lack it.
- Copyright (C) 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2006-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -653,7 +653,6 @@ _GL_CXXALIAS_SYS (wctype, wctype_t, (const char *name));
_GL_CXXALIASWARN (wctype);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wctype
# if HAVE_RAW_DECL_WCTYPE
_GL_WARN_ON_USE (wctype, "wctype is unportable - "
"use gnulib module wctype for portability");
@@ -681,7 +680,6 @@ _GL_CXXALIAS_SYS (iswctype, int, (wint_t wc, wctype_t desc));
_GL_CXXALIASWARN (iswctype);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef iswctype
# if HAVE_RAW_DECL_ISWCTYPE
_GL_WARN_ON_USE (iswctype, "iswctype is unportable - "
"use gnulib module iswctype for portability");
@@ -735,7 +733,6 @@ _GL_CXXALIAS_SYS (wctrans, wctrans_t, (const char *name));
_GL_CXXALIASWARN (wctrans);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wctrans
# if HAVE_RAW_DECL_WCTRANS
_GL_WARN_ON_USE (wctrans, "wctrans is unportable - "
"use gnulib module wctrans for portability");
@@ -763,7 +760,6 @@ _GL_CXXALIAS_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc));
_GL_CXXALIASWARN (towctrans);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef towctrans
# if HAVE_RAW_DECL_TOWCTRANS
_GL_WARN_ON_USE (towctrans, "towctrans is unportable - "
"use gnulib module towctrans for portability");
diff --git a/lib/wcwidth.c b/lib/wcwidth.c
index 6e7141d0..0f5c5ea4 100644
--- a/lib/wcwidth.c
+++ b/lib/wcwidth.c
@@ -1,5 +1,5 @@
/* Determine the number of screen columns needed for a character.
- Copyright (C) 2006-2007, 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2006-2007, 2010-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -23,7 +23,7 @@
#include <wctype.h>
#include "localcharset.h"
-#include "streq.h"
+#include "streq-opt.h"
#include "uniwidth.h"
/* Returns 1 if the current locale is an UTF-8 locale, 0 otherwise. */
diff --git a/lib/windows-initguard.h b/lib/windows-initguard.h
index 4f45e5bb..e7da4735 100644
--- a/lib/windows-initguard.h
+++ b/lib/windows-initguard.h
@@ -1,5 +1,5 @@
/* Init guards, somewhat like spinlocks (native Windows implementation).
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/windows-mutex.c b/lib/windows-mutex.c
index 87b75735..a8460fab 100644
--- a/lib/windows-mutex.c
+++ b/lib/windows-mutex.c
@@ -1,5 +1,5 @@
/* Plain mutexes (native Windows implementation).
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/windows-mutex.h b/lib/windows-mutex.h
index dc6b41e0..38eab652 100644
--- a/lib/windows-mutex.h
+++ b/lib/windows-mutex.h
@@ -1,5 +1,5 @@
/* Plain mutexes (native Windows implementation).
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/windows-once.c b/lib/windows-once.c
index bd9e672a..b3c8a982 100644
--- a/lib/windows-once.c
+++ b/lib/windows-once.c
@@ -1,5 +1,5 @@
/* Once-only control (native Windows implementation).
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/windows-once.h b/lib/windows-once.h
index b27ae538..886ddb45 100644
--- a/lib/windows-once.h
+++ b/lib/windows-once.h
@@ -1,5 +1,5 @@
/* Once-only control (native Windows implementation).
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/windows-recmutex.c b/lib/windows-recmutex.c
index 09341d56..fd6f04db 100644
--- a/lib/windows-recmutex.c
+++ b/lib/windows-recmutex.c
@@ -1,5 +1,5 @@
/* Plain recursive mutexes (native Windows implementation).
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/windows-recmutex.h b/lib/windows-recmutex.h
index 25a883d4..1b5773c1 100644
--- a/lib/windows-recmutex.h
+++ b/lib/windows-recmutex.h
@@ -1,5 +1,5 @@
/* Plain recursive mutexes (native Windows implementation).
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/windows-rwlock.c b/lib/windows-rwlock.c
index 313f14ca..4a5fbfc2 100644
--- a/lib/windows-rwlock.c
+++ b/lib/windows-rwlock.c
@@ -1,5 +1,5 @@
/* Read-write locks (native Windows implementation).
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -46,9 +46,6 @@ glwthread_waitqueue_init (glwthread_waitqueue_t *wq)
static HANDLE
glwthread_waitqueue_add (glwthread_waitqueue_t *wq)
{
- HANDLE event;
- unsigned int index;
-
if (wq->count == wq->alloc)
{
unsigned int new_alloc = 2 * wq->alloc + 1;
@@ -64,14 +61,13 @@ glwthread_waitqueue_add (glwthread_waitqueue_t *wq)
unsigned int old_count = wq->count;
unsigned int old_alloc = wq->alloc;
unsigned int old_offset = wq->offset;
- unsigned int i;
if (old_offset + old_count > old_alloc)
{
unsigned int limit = old_offset + old_count - old_alloc;
- for (i = 0; i < limit; i++)
+ for (unsigned int i = 0; i < limit; i++)
new_array[old_alloc + i] = new_array[i];
}
- for (i = 0; i < old_count; i++)
+ for (unsigned int i = 0; i < old_count; i++)
new_array[i] = new_array[old_offset + i];
wq->offset = 0;
}
@@ -80,11 +76,11 @@ glwthread_waitqueue_add (glwthread_waitqueue_t *wq)
}
/* Whether the created event is a manual-reset one or an auto-reset one,
does not matter, since we will wait on it only once. */
- event = CreateEvent (NULL, TRUE, FALSE, NULL);
+ HANDLE event = CreateEvent (NULL, TRUE, FALSE, NULL);
if (event == INVALID_HANDLE_VALUE)
/* No way to allocate an event. */
return INVALID_HANDLE_VALUE;
- index = wq->offset + wq->count;
+ unsigned int index = wq->offset + wq->count;
if (index >= wq->alloc)
index -= wq->alloc;
wq->array[index] = event;
@@ -107,9 +103,7 @@ glwthread_waitqueue_notify_first (glwthread_waitqueue_t *wq)
static void
glwthread_waitqueue_notify_all (glwthread_waitqueue_t *wq)
{
- unsigned int i;
-
- for (i = 0; i < wq->count; i++)
+ for (unsigned int i = 0; i < wq->count; i++)
{
unsigned int index = wq->offset + i;
if (index >= wq->alloc)
@@ -160,10 +154,9 @@ glwthread_rwlock_rdlock (glwthread_rwlock_t *lock)
HANDLE event = glwthread_waitqueue_add (&lock->waiting_readers);
if (event != INVALID_HANDLE_VALUE)
{
- DWORD result;
LeaveCriticalSection (&lock->lock);
/* Wait until another thread signals this event. */
- result = WaitForSingleObject (event, INFINITE);
+ DWORD result = WaitForSingleObject (event, INFINITE);
if (result == WAIT_FAILED || result == WAIT_TIMEOUT)
abort ();
CloseHandle (event);
@@ -217,10 +210,9 @@ glwthread_rwlock_wrlock (glwthread_rwlock_t *lock)
HANDLE event = glwthread_waitqueue_add (&lock->waiting_writers);
if (event != INVALID_HANDLE_VALUE)
{
- DWORD result;
LeaveCriticalSection (&lock->lock);
/* Wait until another thread signals this event. */
- result = WaitForSingleObject (event, INFINITE);
+ DWORD result = WaitForSingleObject (event, INFINITE);
if (result == WAIT_FAILED || result == WAIT_TIMEOUT)
abort ();
CloseHandle (event);
diff --git a/lib/windows-rwlock.h b/lib/windows-rwlock.h
index b1b4063a..5b0a6613 100644
--- a/lib/windows-rwlock.h
+++ b/lib/windows-rwlock.h
@@ -1,5 +1,5 @@
/* Read-write locks (native Windows implementation).
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/xalloc-oversized.h b/lib/xalloc-oversized.h
index 0f66bd06..cecdaec5 100644
--- a/lib/xalloc-oversized.h
+++ b/lib/xalloc-oversized.h
@@ -1,6 +1,6 @@
/* xalloc-oversized.h -- memory allocation size checking
- Copyright (C) 1990-2000, 2003-2004, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 1990-2000, 2003-2004, 2006-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/xsize.c b/lib/xsize.c
index cd75b606..22856eb6 100644
--- a/lib/xsize.c
+++ b/lib/xsize.c
@@ -1,6 +1,6 @@
/* Checked size_t computations.
- Copyright (C) 2012-2025 Free Software Foundation, Inc.
+ Copyright (C) 2012-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -15,7 +15,6 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define XSIZE_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "xsize.h"
diff --git a/lib/xsize.h b/lib/xsize.h
index ee9c5680..b76cf49f 100644
--- a/lib/xsize.h
+++ b/lib/xsize.h
@@ -1,6 +1,6 @@
/* xsize.h -- Checked size_t computations.
- Copyright (C) 2003, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2008-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as