From 5f59a34ab747dde8ede7357f3431bf06bd6002fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Sun, 8 Mar 2026 17:28:33 +0100 Subject: New upstream version 1.4.2 --- lib/Makefile.am | 4 + lib/Makefile.gnulib | 31 +- lib/Makefile.in | 2695 ++++++++++---------- lib/_Noreturn.h | 2 +- lib/alloca.in.h | 2 +- lib/amemxfrm.c | 32 +- lib/amemxfrm.h | 2 +- lib/arg-nonnull.h | 2 +- lib/array-mergesort.h | 2 +- lib/assert.in.h | 2 +- lib/attribute.h | 108 +- lib/c++defs.h | 14 +- lib/c-ctype.c | 5 +- lib/c-ctype.h | 2 +- lib/c-strcase.h | 2 +- lib/c-strcasecmp.c | 35 +- lib/c-strcaseeq.h | 2 +- lib/c32is-impl.h | 4 +- lib/c32isalnum.c | 2 +- lib/c32isalpha.c | 2 +- lib/c32isblank.c | 2 +- lib/c32iscntrl.c | 2 +- lib/c32isdigit.c | 2 +- lib/c32isgraph.c | 2 +- lib/c32islower.c | 2 +- lib/c32isprint.c | 2 +- lib/c32ispunct.c | 2 +- lib/c32isspace.c | 2 +- lib/c32isupper.c | 2 +- lib/c32isxdigit.c | 2 +- lib/c32to-impl.h | 4 +- lib/c32tolower.c | 2 +- lib/c32width.c | 4 +- lib/declared.sh | 4 +- lib/errno.in.h | 2 +- lib/fcntl.in.h | 54 +- lib/flexmember.h | 2 +- lib/float+.h | 2 +- lib/float.c | 2 +- lib/float.in.h | 4 +- lib/fpucw.h | 2 +- lib/free.c | 6 +- lib/frexp.c | 8 +- lib/frexpl.c | 2 +- lib/fseterr.c | 18 +- lib/fseterr.h | 2 +- lib/getlocalename_l-unsafe.c | 78 +- lib/getlocalename_l-unsafe.h | 2 +- lib/glthread/lock.c | 66 +- lib/glthread/lock.h | 2 +- lib/glthread/once.c | 2 +- lib/glthread/once.h | 2 +- lib/glthread/threadlib.c | 2 +- lib/hard-locale.c | 2 +- lib/hard-locale.h | 2 +- lib/iconv.c | 2 +- lib/iconv.in.h | 4 +- lib/iconv_close.c | 2 +- lib/iconv_open-aix.gperf | 2 +- lib/iconv_open-aix.h | 11 +- lib/iconv_open-hpux.gperf | 2 +- lib/iconv_open-hpux.h | 11 +- lib/iconv_open-solaris.gperf | 2 +- lib/iconv_open-solaris.h | 15 +- lib/iconv_open-zos.gperf | 2 +- lib/iconv_open-zos.h | 15 +- lib/iconv_open.c | 11 +- lib/iconveh.h | 2 +- lib/idx.h | 2 +- lib/intprops-internal.h | 10 +- lib/inttypes.in.h | 6 +- lib/isnan.c | 17 +- lib/isnand-nolibm.h | 2 +- lib/isnand.c | 2 +- lib/isnanf-nolibm.h | 2 +- lib/isnanf.c | 2 +- lib/isnanl-nolibm.h | 2 +- lib/isnanl.c | 2 +- lib/iswblank.c | 2 +- lib/iswdigit.c | 2 +- lib/iswpunct.c | 2 +- lib/iswxdigit.c | 2 +- lib/itold.c | 2 +- lib/lc-charset-dispatch.c | 4 +- lib/lc-charset-dispatch.h | 2 +- lib/limits.in.h | 2 +- lib/localcharset.c | 13 +- lib/localcharset.h | 2 +- lib/locale.in.h | 8 +- lib/localeconv.c | 2 +- lib/localename-environ.c | 44 +- lib/localename-table.c | 2 +- lib/localename-table.h | 2 +- lib/localename-unsafe.c | 238 +- lib/localename.c | 22 +- lib/localename.h | 2 +- lib/malloc.c | 2 +- lib/malloca.c | 2 +- lib/malloca.h | 2 +- lib/math.c | 2 +- lib/math.in.h | 250 +- lib/mbchar.c | 5 +- lib/mbchar.h | 2 +- lib/mbiterf.c | 5 +- lib/mbiterf.h | 2 +- lib/mbrtoc32.c | 6 +- lib/mbrtowc-impl-utf8.h | 2 +- lib/mbrtowc-impl.h | 29 +- lib/mbrtowc.c | 9 +- lib/mbsinit.c | 2 +- lib/mbsnlen.c | 2 +- lib/mbszero.c | 2 +- lib/mbtowc-lock.c | 2 +- lib/mbtowc-lock.h | 11 +- lib/memchr.c | 174 +- lib/memchr.valgrind | 2 +- lib/memcmp2.c | 2 +- lib/memcmp2.h | 2 +- lib/minmax.h | 2 +- lib/printf-args.c | 2 +- lib/printf-args.h | 2 +- lib/printf-frexp.c | 5 +- lib/printf-frexp.h | 2 +- lib/printf-frexpl.c | 2 +- lib/printf-frexpl.h | 2 +- lib/printf-parse.c | 16 +- lib/printf-parse.h | 2 +- lib/pthread-once.c | 2 +- lib/pthread.in.h | 53 +- lib/relocatable.c | 69 +- lib/relocatable.h | 2 +- lib/relocatable.valgrind | 2 +- lib/sched.in.h | 3 +- lib/setlocale-fixes.c | 12 +- lib/setlocale-fixes.h | 2 +- lib/setlocale-lock.c | 2 +- lib/setlocale_null-unlocked.c | 10 +- lib/setlocale_null.c | 15 +- lib/setlocale_null.h | 2 +- lib/signbitd.c | 2 +- lib/signbitf.c | 2 +- lib/signbitl.c | 2 +- lib/size_max.h | 2 +- lib/stdckdint.in.h | 4 +- lib/stddef.in.h | 2 +- lib/stdint.in.h | 2 +- lib/stdio-impl.h | 60 +- lib/stdlib.c | 2 +- lib/stdlib.in.h | 59 +- lib/str-two-way.h | 283 +- lib/streq-opt.h | 186 ++ lib/streq.h | 186 -- lib/striconveh.c | 135 +- lib/striconveh.h | 2 +- lib/striconveha.c | 77 +- lib/striconveha.h | 2 +- lib/string.c | 7 +- lib/string.in.h | 142 +- lib/strncat.c | 2 +- lib/strncpy.c | 38 + lib/strstr.c | 32 +- lib/struniq.h | 13 +- lib/sys_types.in.h | 2 +- lib/thread-optim.h | 2 +- lib/time.in.h | 27 +- lib/uchar.in.h | 5 +- lib/unicase.in.h | 2 +- lib/unicase/cased.c | 2 +- lib/unicase/casefold.h | 2 +- lib/unicase/caseprop.h | 2 +- lib/unicase/context.h | 2 +- lib/unicase/empty-prefix-context.c | 2 +- lib/unicase/empty-suffix-context.c | 2 +- lib/unicase/ignorable.c | 2 +- lib/unicase/invariant.h | 2 +- lib/unicase/locale-language.c | 5 +- lib/unicase/locale-languages.gperf | 2 +- lib/unicase/locale-languages.h | 12 +- lib/unicase/simple-mapping.h | 2 +- lib/unicase/special-casing.c | 2 +- lib/unicase/special-casing.in.h | 2 +- lib/unicase/tocasefold.c | 2 +- lib/unicase/tolower.c | 2 +- lib/unicase/totitle.c | 2 +- lib/unicase/toupper.c | 2 +- lib/unicase/u-casecmp.h | 22 +- lib/unicase/u-casecoll.h | 24 +- lib/unicase/u-casefold.h | 2 +- lib/unicase/u-casemap.h | 150 +- lib/unicase/u-casexfrm.h | 30 +- lib/unicase/u-ct-casefold.h | 26 +- lib/unicase/u-ct-totitle.h | 165 +- lib/unicase/u-is-cased.h | 31 +- lib/unicase/u-is-invariant.h | 21 +- lib/unicase/u-prefix-context.h | 2 +- lib/unicase/u-suffix-context.h | 2 +- lib/unicase/u-totitle.h | 2 +- lib/unicase/u16-casecmp.c | 2 +- lib/unicase/u16-casecoll.c | 2 +- lib/unicase/u16-casefold.c | 2 +- lib/unicase/u16-casemap.c | 2 +- lib/unicase/u16-casexfrm.c | 2 +- lib/unicase/u16-ct-casefold.c | 2 +- lib/unicase/u16-ct-tolower.c | 2 +- lib/unicase/u16-ct-totitle.c | 2 +- lib/unicase/u16-ct-toupper.c | 2 +- lib/unicase/u16-is-cased.c | 2 +- lib/unicase/u16-is-casefolded.c | 2 +- lib/unicase/u16-is-invariant.c | 2 +- lib/unicase/u16-is-lowercase.c | 2 +- lib/unicase/u16-is-titlecase.c | 2 +- lib/unicase/u16-is-uppercase.c | 2 +- lib/unicase/u16-prefix-context.c | 2 +- lib/unicase/u16-suffix-context.c | 2 +- lib/unicase/u16-tolower.c | 2 +- lib/unicase/u16-totitle.c | 2 +- lib/unicase/u16-toupper.c | 2 +- lib/unicase/u32-casecmp.c | 2 +- lib/unicase/u32-casecoll.c | 2 +- lib/unicase/u32-casefold.c | 2 +- lib/unicase/u32-casemap.c | 2 +- lib/unicase/u32-casexfrm.c | 2 +- lib/unicase/u32-ct-casefold.c | 2 +- lib/unicase/u32-ct-tolower.c | 2 +- lib/unicase/u32-ct-totitle.c | 2 +- lib/unicase/u32-ct-toupper.c | 2 +- lib/unicase/u32-is-cased.c | 2 +- lib/unicase/u32-is-casefolded.c | 2 +- lib/unicase/u32-is-invariant.c | 2 +- lib/unicase/u32-is-lowercase.c | 2 +- lib/unicase/u32-is-titlecase.c | 2 +- lib/unicase/u32-is-uppercase.c | 2 +- lib/unicase/u32-prefix-context.c | 2 +- lib/unicase/u32-suffix-context.c | 2 +- lib/unicase/u32-tolower.c | 2 +- lib/unicase/u32-totitle.c | 2 +- lib/unicase/u32-toupper.c | 2 +- lib/unicase/u8-casecmp.c | 2 +- lib/unicase/u8-casecoll.c | 2 +- lib/unicase/u8-casefold.c | 5 +- lib/unicase/u8-casemap.c | 2 +- lib/unicase/u8-casexfrm.c | 2 +- lib/unicase/u8-ct-casefold.c | 2 +- lib/unicase/u8-ct-tolower.c | 2 +- lib/unicase/u8-ct-totitle.c | 2 +- lib/unicase/u8-ct-toupper.c | 2 +- lib/unicase/u8-is-cased.c | 2 +- lib/unicase/u8-is-casefolded.c | 2 +- lib/unicase/u8-is-invariant.c | 2 +- lib/unicase/u8-is-lowercase.c | 2 +- lib/unicase/u8-is-titlecase.c | 2 +- lib/unicase/u8-is-uppercase.c | 2 +- lib/unicase/u8-prefix-context.c | 2 +- lib/unicase/u8-suffix-context.c | 2 +- lib/unicase/u8-tolower.c | 5 +- lib/unicase/u8-totitle.c | 5 +- lib/unicase/u8-toupper.c | 5 +- lib/unicase/ulc-casecmp.c | 16 +- lib/unicase/ulc-casecoll.c | 2 +- lib/unicase/ulc-casexfrm.c | 16 +- lib/unicase/unicasemap.h | 2 +- lib/uniconv.in.h | 2 +- lib/uniconv/u-conv-from-enc.h | 20 +- lib/uniconv/u-conv-to-enc.h | 43 +- lib/uniconv/u-strconv-from-enc.h | 6 +- lib/uniconv/u-strconv-to-enc.h | 9 +- lib/uniconv/u16-conv-from-enc.c | 2 +- lib/uniconv/u16-conv-to-enc.c | 22 +- lib/uniconv/u16-strconv-from-enc.c | 2 +- lib/uniconv/u16-strconv-from-locale.c | 2 +- lib/uniconv/u16-strconv-to-enc.c | 2 +- lib/uniconv/u16-strconv-to-locale.c | 2 +- lib/uniconv/u32-conv-from-enc.c | 2 +- lib/uniconv/u32-conv-to-enc.c | 2 +- lib/uniconv/u32-strconv-from-enc.c | 2 +- lib/uniconv/u32-strconv-from-locale.c | 2 +- lib/uniconv/u32-strconv-to-enc.c | 2 +- lib/uniconv/u32-strconv-to-locale.c | 2 +- lib/uniconv/u8-conv-from-enc.c | 30 +- lib/uniconv/u8-conv-to-enc.c | 5 +- lib/uniconv/u8-strconv-from-enc.c | 2 +- lib/uniconv/u8-strconv-from-locale.c | 2 +- lib/uniconv/u8-strconv-to-enc.c | 13 +- lib/uniconv/u8-strconv-to-locale.c | 2 +- lib/unictype.in.h | 2 +- lib/unictype/bidi_byname.c | 9 +- lib/unictype/bidi_byname.gperf | 2 +- lib/unictype/bidi_byname.h | 15 +- lib/unictype/bidi_longname.c | 2 +- lib/unictype/bidi_name.c | 2 +- lib/unictype/bidi_of.c | 2 +- lib/unictype/bidi_test.c | 2 +- lib/unictype/bitmap.h | 2 +- lib/unictype/block_test.c | 2 +- lib/unictype/blocks.c | 2 +- lib/unictype/categ_C.c | 2 +- lib/unictype/categ_Cc.c | 2 +- lib/unictype/categ_Cf.c | 2 +- lib/unictype/categ_Cn.c | 2 +- lib/unictype/categ_Co.c | 2 +- lib/unictype/categ_Cs.c | 2 +- lib/unictype/categ_L.c | 2 +- lib/unictype/categ_LC.c | 2 +- lib/unictype/categ_Ll.c | 2 +- lib/unictype/categ_Lm.c | 2 +- lib/unictype/categ_Lo.c | 2 +- lib/unictype/categ_Lt.c | 2 +- lib/unictype/categ_Lu.c | 2 +- lib/unictype/categ_M.c | 2 +- lib/unictype/categ_Mc.c | 2 +- lib/unictype/categ_Me.c | 2 +- lib/unictype/categ_Mn.c | 2 +- lib/unictype/categ_N.c | 2 +- lib/unictype/categ_Nd.c | 2 +- lib/unictype/categ_Nl.c | 2 +- lib/unictype/categ_No.c | 2 +- lib/unictype/categ_P.c | 2 +- lib/unictype/categ_Pc.c | 2 +- lib/unictype/categ_Pd.c | 2 +- lib/unictype/categ_Pe.c | 2 +- lib/unictype/categ_Pf.c | 2 +- lib/unictype/categ_Pi.c | 2 +- lib/unictype/categ_Po.c | 2 +- lib/unictype/categ_Ps.c | 2 +- lib/unictype/categ_S.c | 2 +- lib/unictype/categ_Sc.c | 2 +- lib/unictype/categ_Sk.c | 2 +- lib/unictype/categ_Sm.c | 2 +- lib/unictype/categ_So.c | 2 +- lib/unictype/categ_Z.c | 2 +- lib/unictype/categ_Zl.c | 2 +- lib/unictype/categ_Zp.c | 2 +- lib/unictype/categ_Zs.c | 2 +- lib/unictype/categ_and.c | 8 +- lib/unictype/categ_and_not.c | 8 +- lib/unictype/categ_byname.c | 10 +- lib/unictype/categ_byname.gperf | 2 +- lib/unictype/categ_byname.h | 19 +- lib/unictype/categ_longname.c | 2 +- lib/unictype/categ_name.c | 2 +- lib/unictype/categ_none.c | 2 +- lib/unictype/categ_of.c | 4 +- lib/unictype/categ_or.c | 8 +- lib/unictype/categ_test.c | 2 +- lib/unictype/combiningclass.c | 2 +- lib/unictype/combiningclass_byname.c | 10 +- lib/unictype/combiningclass_byname.gperf | 2 +- lib/unictype/combiningclass_byname.h | 15 +- lib/unictype/combiningclass_longname.c | 3 +- lib/unictype/combiningclass_name.c | 3 +- lib/unictype/ctype_alnum.c | 2 +- lib/unictype/ctype_alpha.c | 2 +- lib/unictype/ctype_blank.c | 2 +- lib/unictype/ctype_cntrl.c | 2 +- lib/unictype/ctype_digit.c | 2 +- lib/unictype/ctype_graph.c | 2 +- lib/unictype/ctype_lower.c | 2 +- lib/unictype/ctype_print.c | 2 +- lib/unictype/ctype_punct.c | 2 +- lib/unictype/ctype_space.c | 2 +- lib/unictype/ctype_upper.c | 2 +- lib/unictype/ctype_xdigit.c | 2 +- lib/unictype/decdigit.c | 2 +- lib/unictype/digit.c | 2 +- lib/unictype/identsyntaxmap.h | 2 +- lib/unictype/incb_byname.c | 10 +- lib/unictype/incb_byname.gperf | 2 +- lib/unictype/incb_byname.h | 11 +- lib/unictype/incb_name.c | 2 +- lib/unictype/incb_name.h | 2 +- lib/unictype/incb_of.c | 2 +- lib/unictype/joininggroup_byname.c | 10 +- lib/unictype/joininggroup_byname.gperf | 2 +- lib/unictype/joininggroup_name.c | 2 +- lib/unictype/joininggroup_name.h | 2 +- lib/unictype/joininggroup_of.c | 2 +- lib/unictype/joiningtype_byname.c | 10 +- lib/unictype/joiningtype_byname.gperf | 2 +- lib/unictype/joiningtype_byname.h | 11 +- lib/unictype/joiningtype_longname.c | 2 +- lib/unictype/joiningtype_name.c | 2 +- lib/unictype/joiningtype_of.c | 2 +- lib/unictype/mirror.c | 2 +- lib/unictype/numeric.c | 2 +- lib/unictype/pr_alphabetic.c | 2 +- lib/unictype/pr_ascii_hex_digit.c | 2 +- lib/unictype/pr_bidi_arabic_digit.c | 2 +- lib/unictype/pr_bidi_arabic_right_to_left.c | 2 +- lib/unictype/pr_bidi_block_separator.c | 2 +- lib/unictype/pr_bidi_boundary_neutral.c | 2 +- lib/unictype/pr_bidi_common_separator.c | 2 +- lib/unictype/pr_bidi_control.c | 2 +- lib/unictype/pr_bidi_embedding_or_override.c | 2 +- lib/unictype/pr_bidi_eur_num_separator.c | 2 +- lib/unictype/pr_bidi_eur_num_terminator.c | 2 +- lib/unictype/pr_bidi_european_digit.c | 2 +- lib/unictype/pr_bidi_hebrew_right_to_left.c | 2 +- lib/unictype/pr_bidi_left_to_right.c | 2 +- lib/unictype/pr_bidi_non_spacing_mark.c | 2 +- lib/unictype/pr_bidi_other_neutral.c | 2 +- lib/unictype/pr_bidi_pdf.c | 2 +- lib/unictype/pr_bidi_segment_separator.c | 2 +- lib/unictype/pr_bidi_whitespace.c | 2 +- lib/unictype/pr_byname.c | 42 +- lib/unictype/pr_byname.gperf | 2 +- lib/unictype/pr_byname.h | 27 +- lib/unictype/pr_case_ignorable.c | 2 +- lib/unictype/pr_cased.c | 2 +- lib/unictype/pr_changes_when_casefolded.c | 2 +- lib/unictype/pr_changes_when_casemapped.c | 2 +- lib/unictype/pr_changes_when_lowercased.c | 2 +- lib/unictype/pr_changes_when_titlecased.c | 2 +- lib/unictype/pr_changes_when_uppercased.c | 2 +- lib/unictype/pr_combining.c | 2 +- lib/unictype/pr_composite.c | 2 +- lib/unictype/pr_currency_symbol.c | 2 +- lib/unictype/pr_dash.c | 2 +- lib/unictype/pr_decimal_digit.c | 2 +- lib/unictype/pr_default_ignorable_code_point.c | 2 +- lib/unictype/pr_deprecated.c | 2 +- lib/unictype/pr_diacritic.c | 2 +- lib/unictype/pr_emoji.c | 2 +- lib/unictype/pr_emoji_component.c | 2 +- lib/unictype/pr_emoji_modifier.c | 2 +- lib/unictype/pr_emoji_modifier_base.c | 2 +- lib/unictype/pr_emoji_presentation.c | 2 +- lib/unictype/pr_extended_pictographic.c | 2 +- lib/unictype/pr_extender.c | 2 +- lib/unictype/pr_format_control.c | 2 +- lib/unictype/pr_grapheme_base.c | 2 +- lib/unictype/pr_grapheme_extend.c | 2 +- lib/unictype/pr_grapheme_link.c | 2 +- lib/unictype/pr_hex_digit.c | 2 +- lib/unictype/pr_hyphen.c | 2 +- lib/unictype/pr_id_compat_math_continue.c | 2 +- lib/unictype/pr_id_compat_math_start.c | 2 +- lib/unictype/pr_id_continue.c | 2 +- lib/unictype/pr_id_start.c | 2 +- lib/unictype/pr_ideographic.c | 2 +- lib/unictype/pr_ids_binary_operator.c | 2 +- lib/unictype/pr_ids_trinary_operator.c | 2 +- lib/unictype/pr_ids_unary_operator.c | 2 +- lib/unictype/pr_ignorable_control.c | 2 +- lib/unictype/pr_iso_control.c | 2 +- lib/unictype/pr_join_control.c | 2 +- lib/unictype/pr_left_of_pair.c | 2 +- lib/unictype/pr_line_separator.c | 2 +- lib/unictype/pr_logical_order_exception.c | 2 +- lib/unictype/pr_lowercase.c | 2 +- lib/unictype/pr_math.c | 2 +- lib/unictype/pr_modifier_combining_mark.c | 2 +- lib/unictype/pr_non_break.c | 2 +- lib/unictype/pr_not_a_character.c | 2 +- lib/unictype/pr_numeric.c | 2 +- lib/unictype/pr_other_alphabetic.c | 2 +- .../pr_other_default_ignorable_code_point.c | 2 +- lib/unictype/pr_other_grapheme_extend.c | 2 +- lib/unictype/pr_other_id_continue.c | 2 +- lib/unictype/pr_other_id_start.c | 2 +- lib/unictype/pr_other_lowercase.c | 2 +- lib/unictype/pr_other_math.c | 2 +- lib/unictype/pr_other_uppercase.c | 2 +- lib/unictype/pr_paired_punctuation.c | 2 +- lib/unictype/pr_paragraph_separator.c | 2 +- lib/unictype/pr_pattern_syntax.c | 2 +- lib/unictype/pr_pattern_white_space.c | 2 +- lib/unictype/pr_prepended_concatenation_mark.c | 2 +- lib/unictype/pr_private_use.c | 2 +- lib/unictype/pr_punctuation.c | 2 +- lib/unictype/pr_quotation_mark.c | 2 +- lib/unictype/pr_radical.c | 2 +- lib/unictype/pr_regional_indicator.c | 2 +- lib/unictype/pr_sentence_terminal.c | 2 +- lib/unictype/pr_soft_dotted.c | 2 +- lib/unictype/pr_space.c | 2 +- lib/unictype/pr_terminal_punctuation.c | 2 +- lib/unictype/pr_test.c | 2 +- lib/unictype/pr_titlecase.c | 2 +- lib/unictype/pr_unassigned_code_value.c | 2 +- lib/unictype/pr_unified_ideograph.c | 2 +- lib/unictype/pr_uppercase.c | 2 +- lib/unictype/pr_variation_selector.c | 2 +- lib/unictype/pr_white_space.c | 2 +- lib/unictype/pr_xid_continue.c | 2 +- lib/unictype/pr_xid_start.c | 2 +- lib/unictype/pr_zero_width.c | 2 +- lib/unictype/scripts.c | 7 +- lib/unictype/sy_c_ident.c | 2 +- lib/unictype/sy_c_whitespace.c | 2 +- lib/unictype/sy_java_ident.c | 2 +- lib/unictype/sy_java_whitespace.c | 2 +- lib/unigbrk.in.h | 2 +- lib/unigbrk/u-grapheme-breaks.h | 2 +- lib/unigbrk/u-grapheme-next.h | 2 +- lib/unigbrk/u-grapheme-prev.h | 18 +- lib/unigbrk/u16-grapheme-breaks.c | 2 +- lib/unigbrk/u16-grapheme-next.c | 2 +- lib/unigbrk/u16-grapheme-prev.c | 2 +- lib/unigbrk/u32-grapheme-breaks.c | 2 +- lib/unigbrk/u32-grapheme-next.c | 2 +- lib/unigbrk/u32-grapheme-prev.c | 2 +- lib/unigbrk/u8-grapheme-breaks.c | 2 +- lib/unigbrk/u8-grapheme-next.c | 2 +- lib/unigbrk/u8-grapheme-prev.c | 2 +- lib/unigbrk/uc-gbrk-prop.c | 2 +- lib/unigbrk/uc-grapheme-breaks.c | 2 +- lib/unigbrk/uc-is-grapheme-break.c | 8 +- lib/unigbrk/ulc-grapheme-breaks.c | 17 +- lib/unilbrk.in.h | 2 +- lib/unilbrk/internal.h | 2 +- lib/unilbrk/lbrktables.h | 2 +- lib/unilbrk/u16-possible-linebreaks.c | 2 +- lib/unilbrk/u16-width-linebreaks.c | 19 +- lib/unilbrk/u32-possible-linebreaks.c | 2 +- lib/unilbrk/u32-width-linebreaks.c | 19 +- lib/unilbrk/u8-possible-linebreaks.c | 8 +- lib/unilbrk/u8-width-linebreaks.c | 25 +- lib/unilbrk/ulc-common.c | 2 +- lib/unilbrk/ulc-common.h | 2 +- lib/unilbrk/ulc-possible-linebreaks.c | 19 +- lib/unilbrk/ulc-width-linebreaks.c | 23 +- lib/unimetadata.in.h | 2 +- lib/uniname.in.h | 2 +- lib/uniname/gen-uninames.lisp | 2 +- lib/uniname/uniname.c | 57 +- lib/uninorm.in.h | 2 +- lib/uninorm/canonical-decomposition.c | 28 +- lib/uninorm/compat-decomposition.c | 2 +- lib/uninorm/composition.c | 6 +- lib/uninorm/decompose-internal.c | 2 +- lib/uninorm/decompose-internal.h | 2 +- lib/uninorm/decomposing-form.c | 2 +- lib/uninorm/decomposition-table.c | 2 +- lib/uninorm/decomposition-table.h | 2 +- lib/uninorm/decomposition.c | 28 +- lib/uninorm/nfc.c | 2 +- lib/uninorm/nfd.c | 2 +- lib/uninorm/nfkc.c | 2 +- lib/uninorm/nfkd.c | 2 +- lib/uninorm/normalize-internal.h | 2 +- lib/uninorm/u-normalize-internal.h | 117 +- lib/uninorm/u-normcmp.h | 22 +- lib/uninorm/u-normcoll.h | 24 +- lib/uninorm/u-normxfrm.h | 22 +- lib/uninorm/u16-normalize.c | 2 +- lib/uninorm/u16-normcmp.c | 2 +- lib/uninorm/u16-normcoll.c | 2 +- lib/uninorm/u16-normxfrm.c | 2 +- lib/uninorm/u32-normalize.c | 2 +- lib/uninorm/u32-normcmp.c | 2 +- lib/uninorm/u32-normcoll.c | 2 +- lib/uninorm/u32-normxfrm.c | 2 +- lib/uninorm/u8-normalize.c | 2 +- lib/uninorm/u8-normcmp.c | 2 +- lib/uninorm/u8-normcoll.c | 2 +- lib/uninorm/u8-normxfrm.c | 2 +- lib/uninorm/uninorm-filter.c | 102 +- lib/unistd.c | 2 +- lib/unistd.in.h | 59 +- lib/unistdio.in.h | 2 +- lib/unistdio/u-asnprintf.h | 6 +- lib/unistdio/u-asprintf.h | 6 +- lib/unistdio/u-printf-args.c | 2 +- lib/unistdio/u-printf-args.h | 2 +- lib/unistdio/u-printf-parse.h | 2 +- lib/unistdio/u-snprintf.h | 6 +- lib/unistdio/u-sprintf.h | 6 +- lib/unistdio/u-vasprintf.h | 2 +- lib/unistdio/u-vsnprintf.h | 5 +- lib/unistdio/u-vsprintf.h | 8 +- lib/unistdio/u16-asnprintf.c | 2 +- lib/unistdio/u16-asprintf.c | 2 +- lib/unistdio/u16-printf-parse.c | 2 +- lib/unistdio/u16-snprintf.c | 2 +- lib/unistdio/u16-sprintf.c | 2 +- lib/unistdio/u16-u16-asnprintf.c | 2 +- lib/unistdio/u16-u16-asprintf.c | 2 +- lib/unistdio/u16-u16-snprintf.c | 2 +- lib/unistdio/u16-u16-sprintf.c | 2 +- lib/unistdio/u16-u16-vasnprintf.c | 2 +- lib/unistdio/u16-u16-vasprintf.c | 2 +- lib/unistdio/u16-u16-vsnprintf.c | 2 +- lib/unistdio/u16-u16-vsprintf.c | 2 +- lib/unistdio/u16-vasnprintf.c | 2 +- lib/unistdio/u16-vasprintf.c | 2 +- lib/unistdio/u16-vsnprintf.c | 2 +- lib/unistdio/u16-vsprintf.c | 2 +- lib/unistdio/u32-asnprintf.c | 2 +- lib/unistdio/u32-asprintf.c | 2 +- lib/unistdio/u32-printf-parse.c | 2 +- lib/unistdio/u32-snprintf.c | 2 +- lib/unistdio/u32-sprintf.c | 2 +- lib/unistdio/u32-u32-asnprintf.c | 2 +- lib/unistdio/u32-u32-asprintf.c | 2 +- lib/unistdio/u32-u32-snprintf.c | 2 +- lib/unistdio/u32-u32-sprintf.c | 2 +- lib/unistdio/u32-u32-vasnprintf.c | 2 +- lib/unistdio/u32-u32-vasprintf.c | 2 +- lib/unistdio/u32-u32-vsnprintf.c | 2 +- lib/unistdio/u32-u32-vsprintf.c | 2 +- lib/unistdio/u32-vasnprintf.c | 2 +- lib/unistdio/u32-vasprintf.c | 2 +- lib/unistdio/u32-vsnprintf.c | 2 +- lib/unistdio/u32-vsprintf.c | 2 +- lib/unistdio/u8-asnprintf.c | 2 +- lib/unistdio/u8-asprintf.c | 2 +- lib/unistdio/u8-printf-parse.c | 2 +- lib/unistdio/u8-snprintf.c | 2 +- lib/unistdio/u8-sprintf.c | 2 +- lib/unistdio/u8-u8-asnprintf.c | 2 +- lib/unistdio/u8-u8-asprintf.c | 2 +- lib/unistdio/u8-u8-snprintf.c | 2 +- lib/unistdio/u8-u8-sprintf.c | 2 +- lib/unistdio/u8-u8-vasnprintf.c | 2 +- lib/unistdio/u8-u8-vasprintf.c | 2 +- lib/unistdio/u8-u8-vsnprintf.c | 2 +- lib/unistdio/u8-u8-vsprintf.c | 2 +- lib/unistdio/u8-vasnprintf.c | 2 +- lib/unistdio/u8-vasprintf.c | 2 +- lib/unistdio/u8-vsnprintf.c | 2 +- lib/unistdio/u8-vsprintf.c | 2 +- lib/unistdio/ulc-asnprintf.c | 2 +- lib/unistdio/ulc-asprintf.c | 2 +- lib/unistdio/ulc-fprintf.c | 13 +- lib/unistdio/ulc-printf-parse.c | 2 +- lib/unistdio/ulc-snprintf.c | 2 +- lib/unistdio/ulc-sprintf.c | 2 +- lib/unistdio/ulc-vasnprintf.c | 2 +- lib/unistdio/ulc-vasprintf.c | 2 +- lib/unistdio/ulc-vfprintf.c | 9 +- lib/unistdio/ulc-vsnprintf.c | 2 +- lib/unistdio/ulc-vsprintf.c | 2 +- lib/unistr.in.h | 6 +- lib/unistr/u-cmp2.h | 2 +- lib/unistr/u-cpy-alloc.h | 2 +- lib/unistr/u-cpy.h | 2 +- lib/unistr/u-endswith.h | 2 +- lib/unistr/u-move.h | 2 +- lib/unistr/u-pcpy.h | 2 +- lib/unistr/u-set.h | 2 +- lib/unistr/u-startswith.h | 2 +- lib/unistr/u-stpcpy.h | 2 +- lib/unistr/u-stpncpy.h | 2 +- lib/unistr/u-strcat.h | 2 +- lib/unistr/u-strcoll.h | 2 +- lib/unistr/u-strcpy.h | 2 +- lib/unistr/u-strcspn.h | 2 +- lib/unistr/u-strdup.h | 2 +- lib/unistr/u-strlen.h | 2 +- lib/unistr/u-strncat.h | 2 +- lib/unistr/u-strncpy.h | 2 +- lib/unistr/u-strnlen.h | 2 +- lib/unistr/u-strpbrk.h | 2 +- lib/unistr/u-strspn.h | 2 +- lib/unistr/u-strtok.h | 2 +- lib/unistr/u16-check.c | 2 +- lib/unistr/u16-chr.c | 38 +- lib/unistr/u16-cmp.c | 36 +- lib/unistr/u16-cmp2.c | 2 +- lib/unistr/u16-cpy-alloc.c | 2 +- lib/unistr/u16-cpy.c | 2 +- lib/unistr/u16-endswith.c | 2 +- lib/unistr/u16-mblen.c | 2 +- lib/unistr/u16-mbsnlen.c | 6 +- lib/unistr/u16-mbtouc-aux.c | 2 +- lib/unistr/u16-mbtouc-unsafe-aux.c | 2 +- lib/unistr/u16-mbtouc-unsafe.c | 2 +- lib/unistr/u16-mbtouc.c | 2 +- lib/unistr/u16-mbtoucr.c | 2 +- lib/unistr/u16-move.c | 2 +- lib/unistr/u16-next.c | 6 +- lib/unistr/u16-pcpy.c | 2 +- lib/unistr/u16-prev.c | 2 +- lib/unistr/u16-set.c | 2 +- lib/unistr/u16-startswith.c | 2 +- lib/unistr/u16-stpcpy.c | 2 +- lib/unistr/u16-stpncpy.c | 2 +- lib/unistr/u16-strcat.c | 2 +- lib/unistr/u16-strchr.c | 40 +- lib/unistr/u16-strcmp.c | 31 +- lib/unistr/u16-strcoll.c | 2 +- lib/unistr/u16-strcpy.c | 2 +- lib/unistr/u16-strcspn.c | 2 +- lib/unistr/u16-strdup.c | 2 +- lib/unistr/u16-strlen.c | 2 +- lib/unistr/u16-strmblen.c | 2 +- lib/unistr/u16-strmbtouc.c | 2 +- lib/unistr/u16-strncat.c | 2 +- lib/unistr/u16-strncmp.c | 36 +- lib/unistr/u16-strncpy.c | 2 +- lib/unistr/u16-strnlen.c | 2 +- lib/unistr/u16-strpbrk.c | 2 +- lib/unistr/u16-strrchr.c | 43 +- lib/unistr/u16-strspn.c | 2 +- lib/unistr/u16-strstr.c | 2 +- lib/unistr/u16-strtok.c | 2 +- lib/unistr/u16-to-u32.c | 22 +- lib/unistr/u16-to-u8.c | 22 +- lib/unistr/u16-uctomb-aux.c | 2 +- lib/unistr/u16-uctomb.c | 2 +- lib/unistr/u32-check.c | 2 +- lib/unistr/u32-chr.c | 2 +- lib/unistr/u32-cmp.c | 14 +- lib/unistr/u32-cmp2.c | 2 +- lib/unistr/u32-cpy-alloc.c | 2 +- lib/unistr/u32-cpy.c | 2 +- lib/unistr/u32-endswith.c | 2 +- lib/unistr/u32-mblen.c | 2 +- lib/unistr/u32-mbsnlen.c | 2 +- lib/unistr/u32-mbtouc-unsafe.c | 2 +- lib/unistr/u32-mbtouc.c | 2 +- lib/unistr/u32-mbtoucr.c | 2 +- lib/unistr/u32-move.c | 2 +- lib/unistr/u32-next.c | 6 +- lib/unistr/u32-pcpy.c | 2 +- lib/unistr/u32-prev.c | 2 +- lib/unistr/u32-set.c | 2 +- lib/unistr/u32-startswith.c | 2 +- lib/unistr/u32-stpcpy.c | 2 +- lib/unistr/u32-stpncpy.c | 2 +- lib/unistr/u32-strcat.c | 2 +- lib/unistr/u32-strchr.c | 2 +- lib/unistr/u32-strcmp.c | 13 +- lib/unistr/u32-strcoll.c | 2 +- lib/unistr/u32-strcpy.c | 2 +- lib/unistr/u32-strcspn.c | 2 +- lib/unistr/u32-strdup.c | 2 +- lib/unistr/u32-strlen.c | 2 +- lib/unistr/u32-strmblen.c | 2 +- lib/unistr/u32-strmbtouc.c | 2 +- lib/unistr/u32-strncat.c | 2 +- lib/unistr/u32-strncmp.c | 14 +- lib/unistr/u32-strncpy.c | 2 +- lib/unistr/u32-strnlen.c | 2 +- lib/unistr/u32-strpbrk.c | 2 +- lib/unistr/u32-strrchr.c | 2 +- lib/unistr/u32-strspn.c | 2 +- lib/unistr/u32-strstr.c | 2 +- lib/unistr/u32-strtok.c | 2 +- lib/unistr/u32-to-u16.c | 23 +- lib/unistr/u32-to-u8.c | 23 +- lib/unistr/u32-uctomb.c | 2 +- lib/unistr/u8-check.c | 2 +- lib/unistr/u8-chr.c | 5 +- lib/unistr/u8-cmp.c | 2 +- lib/unistr/u8-cmp2.c | 2 +- lib/unistr/u8-cpy-alloc.c | 2 +- lib/unistr/u8-cpy.c | 2 +- lib/unistr/u8-endswith.c | 2 +- lib/unistr/u8-mblen.c | 2 +- lib/unistr/u8-mbsnlen.c | 6 +- lib/unistr/u8-mbtouc-aux.c | 2 +- lib/unistr/u8-mbtouc-unsafe-aux.c | 2 +- lib/unistr/u8-mbtouc-unsafe.c | 2 +- lib/unistr/u8-mbtouc.c | 2 +- lib/unistr/u8-mbtoucr.c | 2 +- lib/unistr/u8-move.c | 2 +- lib/unistr/u8-next.c | 6 +- lib/unistr/u8-pcpy.c | 2 +- lib/unistr/u8-prev.c | 2 +- lib/unistr/u8-set.c | 2 +- lib/unistr/u8-startswith.c | 2 +- lib/unistr/u8-stpcpy.c | 2 +- lib/unistr/u8-stpncpy.c | 2 +- lib/unistr/u8-strcat.c | 2 +- lib/unistr/u8-strchr.c | 334 +-- lib/unistr/u8-strcmp.c | 2 +- lib/unistr/u8-strcoll.c | 2 +- lib/unistr/u8-strcpy.c | 2 +- lib/unistr/u8-strcspn.c | 2 +- lib/unistr/u8-strdup.c | 2 +- lib/unistr/u8-strlen.c | 2 +- lib/unistr/u8-strmblen.c | 2 +- lib/unistr/u8-strmbtouc.c | 2 +- lib/unistr/u8-strncat.c | 2 +- lib/unistr/u8-strncmp.c | 2 +- lib/unistr/u8-strncpy.c | 2 +- lib/unistr/u8-strnlen.c | 2 +- lib/unistr/u8-strpbrk.c | 2 +- lib/unistr/u8-strrchr.c | 109 +- lib/unistr/u8-strspn.c | 2 +- lib/unistr/u8-strstr.c | 2 +- lib/unistr/u8-strtok.c | 2 +- lib/unistr/u8-to-u16.c | 22 +- lib/unistr/u8-to-u32.c | 22 +- lib/unistr/u8-uctomb-aux.c | 2 +- lib/unistr/u8-uctomb.c | 2 +- lib/unistring/cdefs.h | 13 +- lib/unitypes.in.h | 2 +- lib/uniwbrk.in.h | 2 +- lib/uniwbrk/u-wordbreaks.h | 2 +- lib/uniwbrk/u16-wordbreaks.c | 2 +- lib/uniwbrk/u32-wordbreaks.c | 2 +- lib/uniwbrk/u8-wordbreaks.c | 8 +- lib/uniwbrk/ulc-wordbreaks.c | 19 +- lib/uniwbrk/wbrktable.c | 2 +- lib/uniwbrk/wbrktable.h | 2 +- lib/uniwbrk/wordbreak-property.c | 2 +- lib/uniwidth.in.h | 2 +- lib/uniwidth/cjk.h | 4 +- lib/uniwidth/u16-strwidth.c | 2 +- lib/uniwidth/u16-width.c | 6 +- lib/uniwidth/u32-strwidth.c | 2 +- lib/uniwidth/u32-width.c | 5 +- lib/uniwidth/u8-strwidth.c | 2 +- lib/uniwidth/u8-width.c | 6 +- lib/uniwidth/width.c | 2 +- lib/vasnprintf.c | 656 ++--- lib/verify.h | 2 +- lib/warn-on-use.h | 2 +- lib/wchar.in.h | 45 +- lib/wcs-two-way.h | 170 +- lib/wcsstr-impl.h | 32 +- lib/wctype-h.c | 2 +- lib/wctype.in.h | 6 +- lib/wcwidth.c | 4 +- lib/windows-initguard.h | 2 +- lib/windows-mutex.c | 2 +- lib/windows-mutex.h | 2 +- lib/windows-once.c | 2 +- lib/windows-once.h | 2 +- lib/windows-recmutex.c | 2 +- lib/windows-recmutex.h | 2 +- lib/windows-rwlock.c | 24 +- lib/windows-rwlock.h | 2 +- lib/xalloc-oversized.h | 2 +- lib/xsize.c | 5 +- lib/xsize.h | 2 +- 828 files changed, 4925 insertions(+), 5402 deletions(-) create mode 100644 lib/streq-opt.h delete mode 100644 lib/streq.h create mode 100644 lib/strncpy.c (limited to 'lib') 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 '; \ + echo '#if __cplusplus >= 201103'; \ + echo '#include '; \ + echo '#else'; \ echo '#if __GLIBC__ >= 2'; \ echo '#include '; \ 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 . @@ -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 '; \ + echo '#if __cplusplus >= 201103'; \ + echo '#include '; \ + echo '#else'; \ echo '#if __GLIBC__ >= 2'; \ echo '#include '; \ 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 , 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 , 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 - 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 and - . - ATTENTION! Efforts are underway to change the meaning of this attribute. - See . */ + . */ /* 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 and - . - ATTENTION! Efforts are underway to change the meaning of this attribute. - See . */ + . */ /* 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 . */ -#include - #define C_CTYPE_INLINE _GL_EXTERN_INLINE +#include #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 @@ 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 ." 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 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 . - 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 , 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 () +# include +# 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 , 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 . - Copyright (C) 2011-2025 Free Software Foundation, Inc. + Copyright (C) 2011-2026 Free Software Foundation, Inc. Written by Bruno Haible , 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 . - 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 , 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 . - 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 . */ +#if defined __clang_major__ && __clang_major__ < 21 +/* Work around Clang bug . */ # 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 , 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 . - 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 . - 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 on 2005-03-08, + Deborah Goldsmith 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 , 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 , 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 . - 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 . - 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 int isfinite (T); +template <> inline int isfinite (float x) { return gl_isfinitef (x); } +template <> inline int isfinite (double x) { return gl_isfinited (x); } +template <> inline int isfinite (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 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 int isinf (T); +template <> inline int isinf (float x) { return gl_isinff (x); } +template <> inline int isinf (double x) { return gl_isinfd (x); } +template <> inline int isinf (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 int isnan (T); +template <> inline int isnan (float x) { return gl_isnan_f (x); } +template <> inline int isnan (double x) { return gl_isnan_d (x); } +template <> inline int isnan (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 int isnan (T); +template <> inline int isnan (float x) { return __builtin_isnan (x); } +template <> inline int isnan (double x) { return __builtin_isnan (x); } +template <> inline int isnan (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 int signbit (T); +template <> inline int signbit (float x) { return __builtin_signbitf (x); } +template <> inline int signbit (double x) { return __builtin_signbit (x); } +template <> inline int signbit (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 int signbit (T); +template <> inline int signbit (float x) { return gl_signbitf (x); } +template <> inline int signbit (double x) { return gl_signbitd (x); } +template <> inline int signbit (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 . */ -#include - #define MBCHAR_INLINE _GL_EXTERN_INLINE +#include #include 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 . */ -#include - #define MBITERF_INLINE _GL_EXTERN_INLINE +#include #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 # 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 , 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 , 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 , 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 , 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 +#endif + #if DEPENDS_ON_LIBCHARSET # include #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 ). */ /* 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 , 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 . - 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 , 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 + + the innards of FILE were public. After this commit, the innards of FILE + are hidden. In this commit + + 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 and . - After this commit, the innards of FILE are hidden. Likewise for OpenBSD - up to this commit from 2025-07-16 - . */ + 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 . - 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 . - 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 #endif +/* QNX declares getprogname() in . */ +#if (@GNULIB_GETPROGNAME@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_PROCESS_H@ +# include +#endif + /* Native Windows platforms declare _mktemp() in . */ #if defined _WIN32 && !defined __CYGWIN__ # include @@ -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 , 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-opt.h b/lib/streq-opt.h new file mode 100644 index 00000000..31f0e775 --- /dev/null +++ b/lib/streq-opt.h @@ -0,0 +1,186 @@ +/* Optimized string comparison. + 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 + 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 . */ + +/* Written by Bruno Haible . */ + +#ifndef _GL_STREQ_OPT_H +#define _GL_STREQ_OPT_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/* STREQ_OPT optimizes string comparison with a small literal string. + STREQ_OPT (s, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) + is semantically equivalent to + strcmp (s, "EUC-KR") == 0 + just faster. */ + +/* Help GCC to generate good code for string comparisons with + immediate strings. */ +#if (defined __GNUC__ || defined __clang__) && defined __OPTIMIZE__ + +static inline int +streq9 (const char *s1, const char *s2) +{ + return streq (s1 + 9, s2 + 9); +} + +static inline int +streq8 (const char *s1, const char *s2, char s28) +{ + if (s1[8] == s28) + { + if (s28 == 0) + return 1; + else + return streq9 (s1, s2); + } + else + return 0; +} + +static inline int +streq7 (const char *s1, const char *s2, char s27, char s28) +{ + if (s1[7] == s27) + { + if (s27 == 0) + return 1; + else + return streq8 (s1, s2, s28); + } + else + return 0; +} + +static inline int +streq6 (const char *s1, const char *s2, char s26, char s27, char s28) +{ + if (s1[6] == s26) + { + if (s26 == 0) + return 1; + else + return streq7 (s1, s2, s27, s28); + } + else + return 0; +} + +static inline int +streq5 (const char *s1, const char *s2, char s25, char s26, char s27, char s28) +{ + if (s1[5] == s25) + { + if (s25 == 0) + return 1; + else + return streq6 (s1, s2, s26, s27, s28); + } + else + return 0; +} + +static inline int +streq4 (const char *s1, const char *s2, char s24, char s25, char s26, char s27, char s28) +{ + if (s1[4] == s24) + { + if (s24 == 0) + return 1; + else + return streq5 (s1, s2, s25, s26, s27, s28); + } + else + return 0; +} + +static inline int +streq3 (const char *s1, const char *s2, char s23, char s24, char s25, char s26, char s27, char s28) +{ + if (s1[3] == s23) + { + if (s23 == 0) + return 1; + else + return streq4 (s1, s2, s24, s25, s26, s27, s28); + } + else + return 0; +} + +static inline int +streq2 (const char *s1, const char *s2, char s22, char s23, char s24, char s25, char s26, char s27, char s28) +{ + if (s1[2] == s22) + { + if (s22 == 0) + return 1; + else + return streq3 (s1, s2, s23, s24, s25, s26, s27, s28); + } + else + return 0; +} + +static inline int +streq1 (const char *s1, const char *s2, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) +{ + if (s1[1] == s21) + { + if (s21 == 0) + return 1; + else + return streq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28); + } + else + return 0; +} + +static inline int +streq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) +{ + if (s1[0] == s20) + { + if (s20 == 0) + return 1; + else + return streq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28); + } + else + return 0; +} + +#define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ + streq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28) + +#else + +#define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ + (strcmp (s1, s2) == 0) + +#endif + + +#ifdef __cplusplus +} +#endif + +#endif /* _GL_STREQ_OPT_H */ diff --git a/lib/streq.h b/lib/streq.h deleted file mode 100644 index eb0df460..00000000 --- a/lib/streq.h +++ /dev/null @@ -1,186 +0,0 @@ -/* Optimized string comparison. - Copyright (C) 2001-2002, 2007, 2009-2025 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 . */ - -/* Written by Bruno Haible . */ - -#ifndef _GL_STREQ_H -#define _GL_STREQ_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* STREQ_OPT optimizes string comparison with a small literal string. - STREQ_OPT (s, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) - is semantically equivalent to - strcmp (s, "EUC-KR") == 0 - just faster. */ - -/* Help GCC to generate good code for string comparisons with - immediate strings. */ -#if (defined __GNUC__ || defined __clang__) && defined __OPTIMIZE__ - -static inline int -streq9 (const char *s1, const char *s2) -{ - return streq (s1 + 9, s2 + 9); -} - -static inline int -streq8 (const char *s1, const char *s2, char s28) -{ - if (s1[8] == s28) - { - if (s28 == 0) - return 1; - else - return streq9 (s1, s2); - } - else - return 0; -} - -static inline int -streq7 (const char *s1, const char *s2, char s27, char s28) -{ - if (s1[7] == s27) - { - if (s27 == 0) - return 1; - else - return streq8 (s1, s2, s28); - } - else - return 0; -} - -static inline int -streq6 (const char *s1, const char *s2, char s26, char s27, char s28) -{ - if (s1[6] == s26) - { - if (s26 == 0) - return 1; - else - return streq7 (s1, s2, s27, s28); - } - else - return 0; -} - -static inline int -streq5 (const char *s1, const char *s2, char s25, char s26, char s27, char s28) -{ - if (s1[5] == s25) - { - if (s25 == 0) - return 1; - else - return streq6 (s1, s2, s26, s27, s28); - } - else - return 0; -} - -static inline int -streq4 (const char *s1, const char *s2, char s24, char s25, char s26, char s27, char s28) -{ - if (s1[4] == s24) - { - if (s24 == 0) - return 1; - else - return streq5 (s1, s2, s25, s26, s27, s28); - } - else - return 0; -} - -static inline int -streq3 (const char *s1, const char *s2, char s23, char s24, char s25, char s26, char s27, char s28) -{ - if (s1[3] == s23) - { - if (s23 == 0) - return 1; - else - return streq4 (s1, s2, s24, s25, s26, s27, s28); - } - else - return 0; -} - -static inline int -streq2 (const char *s1, const char *s2, char s22, char s23, char s24, char s25, char s26, char s27, char s28) -{ - if (s1[2] == s22) - { - if (s22 == 0) - return 1; - else - return streq3 (s1, s2, s23, s24, s25, s26, s27, s28); - } - else - return 0; -} - -static inline int -streq1 (const char *s1, const char *s2, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) -{ - if (s1[1] == s21) - { - if (s21 == 0) - return 1; - else - return streq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28); - } - else - return 0; -} - -static inline int -streq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) -{ - if (s1[0] == s20) - { - if (s20 == 0) - return 1; - else - return streq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28); - } - else - return 0; -} - -#define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ - streq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28) - -#else - -#define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ - (strcmp (s1, s2) == 0) - -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_STREQ_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 . */ -#include - #define _GL_STRING_INLINE _GL_EXTERN_INLINE +#include #include 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 . - 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 T strnul (T); +template <> inline const char *strnul (const char *s) +{ return gl_strnul (s); } +template <> inline char *strnul< char *> ( char *s) +{ return const_cast(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 , 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 . */ + +/* Written by Bruno Haible , 1999. */ + +#include + +/* Specification. */ +#include + +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 . - 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 @@ /* 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 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 , 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 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 , 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 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 , 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 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 , 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 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 , 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 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 , 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 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 , 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 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 , 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 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 , 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 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 , 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 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 , 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 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 2010, based on code written by Bruno Haible , 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 , 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 , 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 , 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 , 2010, based on code written by Bruno Haible , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 . - 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 . - 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 - " "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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 . */ -#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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 , 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 . - 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 , 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 #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 . */ -#include - #define XSIZE_INLINE _GL_EXTERN_INLINE +#include #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 -- cgit v1.2.3