summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2026-03-08 17:28:33 +0100
committerJörg Frings-Fürst <debian@jff.email>2026-03-08 17:28:33 +0100
commit5f59a34ab747dde8ede7357f3431bf06bd6002fe (patch)
tree056a4477fd870d454d5be5868cddab829a47f4d2
parent27dae84ed92f1ef0300263091972338d12e78348 (diff)
New upstream version 1.4.2upstream/1.4.2upstream
-rw-r--r--ChangeLog25
-rw-r--r--Makefile.in14
-rw-r--r--NEWS3
-rw-r--r--README2
-rw-r--r--aclocal.m42
-rwxr-xr-xbuild-aux/config.rpath4
-rwxr-xr-xbuild-aux/gitlog-to-changelog2
-rwxr-xr-xbuild-aux/run-test4
-rw-r--r--config.h.in132
-rwxr-xr-xconfigure544
-rw-r--r--doc/Makefile.in14
-rw-r--r--doc/libunistring_1.html4
-rw-r--r--doc/libunistring_10.html4
-rw-r--r--doc/libunistring_11.html4
-rw-r--r--doc/libunistring_12.html4
-rw-r--r--doc/libunistring_13.html4
-rw-r--r--doc/libunistring_14.html4
-rw-r--r--doc/libunistring_15.html4
-rw-r--r--doc/libunistring_16.html4
-rw-r--r--doc/libunistring_17.html4
-rw-r--r--doc/libunistring_18.html4
-rw-r--r--doc/libunistring_19.html4
-rw-r--r--doc/libunistring_2.html4
-rw-r--r--doc/libunistring_20.html4
-rw-r--r--doc/libunistring_21.html4
-rw-r--r--doc/libunistring_22.html4
-rw-r--r--doc/libunistring_23.html4
-rw-r--r--doc/libunistring_3.html4
-rw-r--r--doc/libunistring_4.html4
-rw-r--r--doc/libunistring_5.html4
-rw-r--r--doc/libunistring_6.html4
-rw-r--r--doc/libunistring_7.html4
-rw-r--r--doc/libunistring_8.html4
-rw-r--r--doc/libunistring_9.html4
-rw-r--r--doc/libunistring_abt.html6
-rw-r--r--doc/libunistring_fot.html4
-rw-r--r--doc/libunistring_toc.html4
-rw-r--r--doc/stamp-vti4
-rw-r--r--doc/version.texi4
-rw-r--r--gnulib-local/Makefile.in14
-rw-r--r--gnulib-m4/00gnulib.m42
-rw-r--r--gnulib-m4/__inline.m42
-rw-r--r--gnulib-m4/absolute-header.m42
-rw-r--r--gnulib-m4/alloca.m42
-rw-r--r--gnulib-m4/arpa_inet_h.m42
-rw-r--r--gnulib-m4/assert_h.m42
-rw-r--r--gnulib-m4/btowc.m42
-rw-r--r--gnulib-m4/build-to-host.m42
-rw-r--r--gnulib-m4/builtin-expect.m42
-rw-r--r--gnulib-m4/c-bool.m42
-rw-r--r--gnulib-m4/c32rtomb.m42
-rw-r--r--gnulib-m4/calloc.m42
-rw-r--r--gnulib-m4/close.m42
-rw-r--r--gnulib-m4/codeset.m42
-rw-r--r--gnulib-m4/ctype_h.m42
-rw-r--r--gnulib-m4/double-slash-root.m42
-rw-r--r--gnulib-m4/dup2.m42
-rw-r--r--gnulib-m4/environ.m42
-rw-r--r--gnulib-m4/errno_h.m42
-rw-r--r--gnulib-m4/error.m42
-rw-r--r--gnulib-m4/error_h.m42
-rw-r--r--gnulib-m4/exponentd.m42
-rw-r--r--gnulib-m4/exponentf.m42
-rw-r--r--gnulib-m4/exponentl.m42
-rw-r--r--gnulib-m4/extensions-aix.m42
-rw-r--r--gnulib-m4/extensions.m42
-rw-r--r--gnulib-m4/extern-inline.m44
-rw-r--r--gnulib-m4/fcntl-o.m42
-rw-r--r--gnulib-m4/fcntl.m42
-rw-r--r--gnulib-m4/fcntl_h.m48
-rw-r--r--gnulib-m4/fdopen.m42
-rw-r--r--gnulib-m4/flexmember.m42
-rw-r--r--gnulib-m4/float_h.m42
-rw-r--r--gnulib-m4/fpieee.m42
-rw-r--r--gnulib-m4/free.m42
-rw-r--r--gnulib-m4/frexp.m42
-rw-r--r--gnulib-m4/frexpl.m42
-rw-r--r--gnulib-m4/fseterr.m42
-rw-r--r--gnulib-m4/fstat.m42
-rw-r--r--gnulib-m4/ftruncate.m42
-rw-r--r--gnulib-m4/getcwd.m42
-rw-r--r--gnulib-m4/getdtablesize.m42
-rw-r--r--gnulib-m4/getlocalename_l.m425
-rw-r--r--gnulib-m4/getprogname.m410
-rw-r--r--gnulib-m4/gettext_h.m42
-rw-r--r--gnulib-m4/gettimeofday.m42
-rw-r--r--gnulib-m4/gnulib-cache.m42
-rw-r--r--gnulib-m4/gnulib-common.m4113
-rw-r--r--gnulib-m4/gnulib-comp.m454
-rw-r--r--gnulib-m4/gnulib-i18n.m42
-rw-r--r--gnulib-m4/host-cpu-c-abi.m42
-rw-r--r--gnulib-m4/iconv.m42
-rw-r--r--gnulib-m4/iconv_h.m42
-rw-r--r--gnulib-m4/iconv_open.m42
-rw-r--r--gnulib-m4/include_next.m42
-rw-r--r--gnulib-m4/inet_pton.m47
-rw-r--r--gnulib-m4/init-package-version.m42
-rw-r--r--gnulib-m4/inline.m42
-rw-r--r--gnulib-m4/intl-thread-locale.m42
-rw-r--r--gnulib-m4/intlmacosx.m42
-rw-r--r--gnulib-m4/intmax_t.m42
-rw-r--r--gnulib-m4/inttypes.m42
-rw-r--r--gnulib-m4/inttypes_h.m42
-rw-r--r--gnulib-m4/ioctl.m42
-rw-r--r--gnulib-m4/isblank.m42
-rw-r--r--gnulib-m4/isnand.m42
-rw-r--r--gnulib-m4/isnanf.m42
-rw-r--r--gnulib-m4/isnanl.m42
-rw-r--r--gnulib-m4/iswblank.m42
-rw-r--r--gnulib-m4/iswdigit.m42
-rw-r--r--gnulib-m4/iswpunct.m42
-rw-r--r--gnulib-m4/iswxdigit.m42
-rw-r--r--gnulib-m4/largefile.m42
-rw-r--r--gnulib-m4/lcmessage.m42
-rw-r--r--gnulib-m4/ldexpl.m42
-rw-r--r--gnulib-m4/lib-ld.m42
-rw-r--r--gnulib-m4/lib-link.m42
-rw-r--r--gnulib-m4/lib-prefix.m42
-rw-r--r--gnulib-m4/libdl.m446
-rw-r--r--gnulib-m4/libunistring-base.m42
-rw-r--r--gnulib-m4/limits-h.m42
-rw-r--r--gnulib-m4/localcharset.m42
-rw-r--r--gnulib-m4/locale-ar.m42
-rw-r--r--gnulib-m4/locale-en.m44
-rw-r--r--gnulib-m4/locale-fr.m44
-rw-r--r--gnulib-m4/locale-ja.m42
-rw-r--r--gnulib-m4/locale-tr.m42
-rw-r--r--gnulib-m4/locale-zh.m42
-rw-r--r--gnulib-m4/locale_h.m42
-rw-r--r--gnulib-m4/localeconv.m42
-rw-r--r--gnulib-m4/localename.m42
-rw-r--r--gnulib-m4/lock.m42
-rw-r--r--gnulib-m4/lstat.m42
-rw-r--r--gnulib-m4/malloc.m465
-rw-r--r--gnulib-m4/malloca.m42
-rw-r--r--gnulib-m4/math_h.m49
-rw-r--r--gnulib-m4/mbchar.m42
-rw-r--r--gnulib-m4/mbiter.m42
-rw-r--r--gnulib-m4/mbrtoc32.m42
-rw-r--r--gnulib-m4/mbrtowc.m42
-rw-r--r--gnulib-m4/mbsinit.m42
-rw-r--r--gnulib-m4/mbstate_t.m42
-rw-r--r--gnulib-m4/mbtowc.m42
-rw-r--r--gnulib-m4/memchr.m42
-rw-r--r--gnulib-m4/minmax.m42
-rw-r--r--gnulib-m4/mkfifo.m42
-rw-r--r--gnulib-m4/mmap-anon.m42
-rw-r--r--gnulib-m4/mode_t.m42
-rw-r--r--gnulib-m4/msvc-inval.m42
-rw-r--r--gnulib-m4/msvc-nothrow.m42
-rw-r--r--gnulib-m4/multiarch.m42
-rw-r--r--gnulib-m4/musl.m42
-rw-r--r--gnulib-m4/nan-mips.m42
-rw-r--r--gnulib-m4/nanosleep.m423
-rw-r--r--gnulib-m4/netinet_in_h.m42
-rw-r--r--gnulib-m4/nocrash.m42
-rw-r--r--gnulib-m4/off64_t.m42
-rw-r--r--gnulib-m4/off_t.m42
-rw-r--r--gnulib-m4/once.m42
-rw-r--r--gnulib-m4/open-cloexec.m42
-rw-r--r--gnulib-m4/open-slash.m42
-rw-r--r--gnulib-m4/open.m42
-rw-r--r--gnulib-m4/pathmax.m42
-rw-r--r--gnulib-m4/perror.m42
-rw-r--r--gnulib-m4/pipe.m42
-rw-r--r--gnulib-m4/printf-frexp.m42
-rw-r--r--gnulib-m4/printf-frexpl.m42
-rw-r--r--gnulib-m4/printf.m46
-rw-r--r--gnulib-m4/pselect.m42
-rw-r--r--gnulib-m4/pthread-cond.m42
-rw-r--r--gnulib-m4/pthread-mutex.m42
-rw-r--r--gnulib-m4/pthread-once.m42
-rw-r--r--gnulib-m4/pthread-rwlock.m42
-rw-r--r--gnulib-m4/pthread-spin.m42
-rw-r--r--gnulib-m4/pthread-thread.m42
-rw-r--r--gnulib-m4/pthread_h.m42
-rw-r--r--gnulib-m4/pthread_mutex_timedlock.m42
-rw-r--r--gnulib-m4/pthread_rwlock_rdlock.m42
-rw-r--r--gnulib-m4/pthread_sigmask.m42
-rw-r--r--gnulib-m4/putenv.m42
-rw-r--r--gnulib-m4/raise.m42
-rw-r--r--gnulib-m4/random.m42
-rw-r--r--gnulib-m4/random_r.m42
-rw-r--r--gnulib-m4/realloc.m449
-rw-r--r--gnulib-m4/reallocarray.m42
-rw-r--r--gnulib-m4/relocatable-lib.m412
-rw-r--r--gnulib-m4/sched_h.m42
-rw-r--r--gnulib-m4/sched_yield.m42
-rw-r--r--gnulib-m4/select.m42
-rw-r--r--gnulib-m4/semaphore.m42
-rw-r--r--gnulib-m4/setenv.m42
-rw-r--r--gnulib-m4/setlocale.m42
-rw-r--r--gnulib-m4/setlocale_null.m42
-rw-r--r--gnulib-m4/signal_h.m42
-rw-r--r--gnulib-m4/signalblocking.m42
-rw-r--r--gnulib-m4/signbit.m42
-rw-r--r--gnulib-m4/size_max.m42
-rw-r--r--gnulib-m4/sleep.m42
-rw-r--r--gnulib-m4/snan.m42
-rw-r--r--gnulib-m4/socketlib.m42
-rw-r--r--gnulib-m4/sockets.m42
-rw-r--r--gnulib-m4/socklen.m42
-rw-r--r--gnulib-m4/sockpfaf.m42
-rw-r--r--gnulib-m4/ssize_t.m42
-rw-r--r--gnulib-m4/stat-time.m42
-rw-r--r--gnulib-m4/stat.m42
-rw-r--r--gnulib-m4/stdalign.m46
-rw-r--r--gnulib-m4/stdckdint_h.m42
-rw-r--r--gnulib-m4/stddef_h.m42
-rw-r--r--gnulib-m4/stdint.m42
-rw-r--r--gnulib-m4/stdint_h.m42
-rw-r--r--gnulib-m4/stdio_h.m42
-rw-r--r--gnulib-m4/stdlib_h.m45
-rw-r--r--gnulib-m4/stpcpy.m42
-rw-r--r--gnulib-m4/strerror.m42
-rw-r--r--gnulib-m4/strerror_r.m42
-rw-r--r--gnulib-m4/string_h.m49
-rw-r--r--gnulib-m4/stringeq.m42
-rw-r--r--gnulib-m4/strncat.m42
-rw-r--r--gnulib-m4/strncpy.m494
-rw-r--r--gnulib-m4/strstr.m42
-rw-r--r--gnulib-m4/symlink.m42
-rw-r--r--gnulib-m4/sys_cdefs_h.m42
-rw-r--r--gnulib-m4/sys_ioctl_h.m42
-rw-r--r--gnulib-m4/sys_select_h.m42
-rw-r--r--gnulib-m4/sys_socket_h.m42
-rw-r--r--gnulib-m4/sys_stat_h.m42
-rw-r--r--gnulib-m4/sys_time_h.m42
-rw-r--r--gnulib-m4/sys_types_h.m42
-rw-r--r--gnulib-m4/sys_uio_h.m42
-rw-r--r--gnulib-m4/thread.m42
-rw-r--r--gnulib-m4/threadlib.m42
-rw-r--r--gnulib-m4/time.m42
-rw-r--r--gnulib-m4/time_h.m42
-rw-r--r--gnulib-m4/uchar_h.m42
-rw-r--r--gnulib-m4/unicase_h.m42
-rw-r--r--gnulib-m4/unictype_h.m42
-rw-r--r--gnulib-m4/unimetadata_h.m42
-rw-r--r--gnulib-m4/uninorm_h.m42
-rw-r--r--gnulib-m4/unistd_h.m42
-rw-r--r--gnulib-m4/unitypes_h.m42
-rw-r--r--gnulib-m4/usleep.m42
-rw-r--r--gnulib-m4/vasnprintf.m42
-rw-r--r--gnulib-m4/visibility.m42
-rw-r--r--gnulib-m4/warn-on-use.m42
-rw-r--r--gnulib-m4/wchar_h.m42
-rw-r--r--gnulib-m4/wcrtomb.m42
-rw-r--r--gnulib-m4/wctob.m42
-rw-r--r--gnulib-m4/wctomb.m42
-rw-r--r--gnulib-m4/wctype_h.m42
-rw-r--r--gnulib-m4/wcwidth.m42
-rw-r--r--gnulib-m4/windows-rc.m42
-rw-r--r--gnulib-m4/wint_t.m42
-rw-r--r--gnulib-m4/xalloc.m42
-rw-r--r--gnulib-m4/xgetcwd.m42
-rw-r--r--gnulib-m4/xsize.m42
-rw-r--r--gnulib-m4/yield.m42
-rw-r--r--gnulib-m4/zzgnulib.m42
-rw-r--r--install-tests/Makefile.in14
-rw-r--r--lib/Makefile.am4
-rw-r--r--lib/Makefile.gnulib31
-rw-r--r--lib/Makefile.in2695
-rw-r--r--lib/_Noreturn.h2
-rw-r--r--lib/alloca.in.h2
-rw-r--r--lib/amemxfrm.c32
-rw-r--r--lib/amemxfrm.h2
-rw-r--r--lib/arg-nonnull.h2
-rw-r--r--lib/array-mergesort.h2
-rw-r--r--lib/assert.in.h2
-rw-r--r--lib/attribute.h108
-rw-r--r--lib/c++defs.h14
-rw-r--r--lib/c-ctype.c5
-rw-r--r--lib/c-ctype.h2
-rw-r--r--lib/c-strcase.h2
-rw-r--r--lib/c-strcasecmp.c35
-rw-r--r--lib/c-strcaseeq.h2
-rw-r--r--lib/c32is-impl.h4
-rw-r--r--lib/c32isalnum.c2
-rw-r--r--lib/c32isalpha.c2
-rw-r--r--lib/c32isblank.c2
-rw-r--r--lib/c32iscntrl.c2
-rw-r--r--lib/c32isdigit.c2
-rw-r--r--lib/c32isgraph.c2
-rw-r--r--lib/c32islower.c2
-rw-r--r--lib/c32isprint.c2
-rw-r--r--lib/c32ispunct.c2
-rw-r--r--lib/c32isspace.c2
-rw-r--r--lib/c32isupper.c2
-rw-r--r--lib/c32isxdigit.c2
-rw-r--r--lib/c32to-impl.h4
-rw-r--r--lib/c32tolower.c2
-rw-r--r--lib/c32width.c4
-rwxr-xr-xlib/declared.sh4
-rw-r--r--lib/errno.in.h2
-rw-r--r--lib/fcntl.in.h54
-rw-r--r--lib/flexmember.h2
-rw-r--r--lib/float+.h2
-rw-r--r--lib/float.c2
-rw-r--r--lib/float.in.h4
-rw-r--r--lib/fpucw.h2
-rw-r--r--lib/free.c6
-rw-r--r--lib/frexp.c8
-rw-r--r--lib/frexpl.c2
-rw-r--r--lib/fseterr.c18
-rw-r--r--lib/fseterr.h2
-rw-r--r--lib/getlocalename_l-unsafe.c78
-rw-r--r--lib/getlocalename_l-unsafe.h2
-rw-r--r--lib/glthread/lock.c66
-rw-r--r--lib/glthread/lock.h2
-rw-r--r--lib/glthread/once.c2
-rw-r--r--lib/glthread/once.h2
-rw-r--r--lib/glthread/threadlib.c2
-rw-r--r--lib/hard-locale.c2
-rw-r--r--lib/hard-locale.h2
-rw-r--r--lib/iconv.c2
-rw-r--r--lib/iconv.in.h4
-rw-r--r--lib/iconv_close.c2
-rw-r--r--lib/iconv_open-aix.gperf2
-rw-r--r--lib/iconv_open-aix.h11
-rw-r--r--lib/iconv_open-hpux.gperf2
-rw-r--r--lib/iconv_open-hpux.h11
-rw-r--r--lib/iconv_open-solaris.gperf2
-rw-r--r--lib/iconv_open-solaris.h15
-rw-r--r--lib/iconv_open-zos.gperf2
-rw-r--r--lib/iconv_open-zos.h15
-rw-r--r--lib/iconv_open.c11
-rw-r--r--lib/iconveh.h2
-rw-r--r--lib/idx.h2
-rw-r--r--lib/intprops-internal.h10
-rw-r--r--lib/inttypes.in.h6
-rw-r--r--lib/isnan.c17
-rw-r--r--lib/isnand-nolibm.h2
-rw-r--r--lib/isnand.c2
-rw-r--r--lib/isnanf-nolibm.h2
-rw-r--r--lib/isnanf.c2
-rw-r--r--lib/isnanl-nolibm.h2
-rw-r--r--lib/isnanl.c2
-rw-r--r--lib/iswblank.c2
-rw-r--r--lib/iswdigit.c2
-rw-r--r--lib/iswpunct.c2
-rw-r--r--lib/iswxdigit.c2
-rw-r--r--lib/itold.c2
-rw-r--r--lib/lc-charset-dispatch.c4
-rw-r--r--lib/lc-charset-dispatch.h2
-rw-r--r--lib/limits.in.h2
-rw-r--r--lib/localcharset.c13
-rw-r--r--lib/localcharset.h2
-rw-r--r--lib/locale.in.h8
-rw-r--r--lib/localeconv.c2
-rw-r--r--lib/localename-environ.c44
-rw-r--r--lib/localename-table.c2
-rw-r--r--lib/localename-table.h2
-rw-r--r--lib/localename-unsafe.c238
-rw-r--r--lib/localename.c22
-rw-r--r--lib/localename.h2
-rw-r--r--lib/malloc.c2
-rw-r--r--lib/malloca.c2
-rw-r--r--lib/malloca.h2
-rw-r--r--lib/math.c2
-rw-r--r--lib/math.in.h250
-rw-r--r--lib/mbchar.c5
-rw-r--r--lib/mbchar.h2
-rw-r--r--lib/mbiterf.c5
-rw-r--r--lib/mbiterf.h2
-rw-r--r--lib/mbrtoc32.c6
-rw-r--r--lib/mbrtowc-impl-utf8.h2
-rw-r--r--lib/mbrtowc-impl.h29
-rw-r--r--lib/mbrtowc.c9
-rw-r--r--lib/mbsinit.c2
-rw-r--r--lib/mbsnlen.c2
-rw-r--r--lib/mbszero.c2
-rw-r--r--lib/mbtowc-lock.c2
-rw-r--r--lib/mbtowc-lock.h11
-rw-r--r--lib/memchr.c174
-rw-r--r--lib/memchr.valgrind2
-rw-r--r--lib/memcmp2.c2
-rw-r--r--lib/memcmp2.h2
-rw-r--r--lib/minmax.h2
-rw-r--r--lib/printf-args.c2
-rw-r--r--lib/printf-args.h2
-rw-r--r--lib/printf-frexp.c5
-rw-r--r--lib/printf-frexp.h2
-rw-r--r--lib/printf-frexpl.c2
-rw-r--r--lib/printf-frexpl.h2
-rw-r--r--lib/printf-parse.c16
-rw-r--r--lib/printf-parse.h2
-rw-r--r--lib/pthread-once.c2
-rw-r--r--lib/pthread.in.h53
-rw-r--r--lib/relocatable.c69
-rw-r--r--lib/relocatable.h2
-rw-r--r--lib/relocatable.valgrind2
-rw-r--r--lib/sched.in.h3
-rw-r--r--lib/setlocale-fixes.c12
-rw-r--r--lib/setlocale-fixes.h2
-rw-r--r--lib/setlocale-lock.c2
-rw-r--r--lib/setlocale_null-unlocked.c10
-rw-r--r--lib/setlocale_null.c15
-rw-r--r--lib/setlocale_null.h2
-rw-r--r--lib/signbitd.c2
-rw-r--r--lib/signbitf.c2
-rw-r--r--lib/signbitl.c2
-rw-r--r--lib/size_max.h2
-rw-r--r--lib/stdckdint.in.h4
-rw-r--r--lib/stddef.in.h2
-rw-r--r--lib/stdint.in.h2
-rw-r--r--lib/stdio-impl.h60
-rw-r--r--lib/stdlib.c2
-rw-r--r--lib/stdlib.in.h59
-rw-r--r--lib/str-two-way.h283
-rw-r--r--lib/streq-opt.h (renamed from lib/streq.h)8
-rw-r--r--lib/striconveh.c135
-rw-r--r--lib/striconveh.h2
-rw-r--r--lib/striconveha.c77
-rw-r--r--lib/striconveha.h2
-rw-r--r--lib/string.c7
-rw-r--r--lib/string.in.h142
-rw-r--r--lib/strncat.c2
-rw-r--r--lib/strncpy.c38
-rw-r--r--lib/strstr.c32
-rw-r--r--lib/struniq.h13
-rw-r--r--lib/sys_types.in.h2
-rw-r--r--lib/thread-optim.h2
-rw-r--r--lib/time.in.h27
-rw-r--r--lib/uchar.in.h5
-rw-r--r--lib/unicase.in.h2
-rw-r--r--lib/unicase/cased.c2
-rw-r--r--lib/unicase/casefold.h2
-rw-r--r--lib/unicase/caseprop.h2
-rw-r--r--lib/unicase/context.h2
-rw-r--r--lib/unicase/empty-prefix-context.c2
-rw-r--r--lib/unicase/empty-suffix-context.c2
-rw-r--r--lib/unicase/ignorable.c2
-rw-r--r--lib/unicase/invariant.h2
-rw-r--r--lib/unicase/locale-language.c5
-rw-r--r--lib/unicase/locale-languages.gperf2
-rw-r--r--lib/unicase/locale-languages.h12
-rw-r--r--lib/unicase/simple-mapping.h2
-rw-r--r--lib/unicase/special-casing.c2
-rw-r--r--lib/unicase/special-casing.in.h2
-rw-r--r--lib/unicase/tocasefold.c2
-rw-r--r--lib/unicase/tolower.c2
-rw-r--r--lib/unicase/totitle.c2
-rw-r--r--lib/unicase/toupper.c2
-rw-r--r--lib/unicase/u-casecmp.h22
-rw-r--r--lib/unicase/u-casecoll.h24
-rw-r--r--lib/unicase/u-casefold.h2
-rw-r--r--lib/unicase/u-casemap.h150
-rw-r--r--lib/unicase/u-casexfrm.h30
-rw-r--r--lib/unicase/u-ct-casefold.h26
-rw-r--r--lib/unicase/u-ct-totitle.h165
-rw-r--r--lib/unicase/u-is-cased.h31
-rw-r--r--lib/unicase/u-is-invariant.h21
-rw-r--r--lib/unicase/u-prefix-context.h2
-rw-r--r--lib/unicase/u-suffix-context.h2
-rw-r--r--lib/unicase/u-totitle.h2
-rw-r--r--lib/unicase/u16-casecmp.c2
-rw-r--r--lib/unicase/u16-casecoll.c2
-rw-r--r--lib/unicase/u16-casefold.c2
-rw-r--r--lib/unicase/u16-casemap.c2
-rw-r--r--lib/unicase/u16-casexfrm.c2
-rw-r--r--lib/unicase/u16-ct-casefold.c2
-rw-r--r--lib/unicase/u16-ct-tolower.c2
-rw-r--r--lib/unicase/u16-ct-totitle.c2
-rw-r--r--lib/unicase/u16-ct-toupper.c2
-rw-r--r--lib/unicase/u16-is-cased.c2
-rw-r--r--lib/unicase/u16-is-casefolded.c2
-rw-r--r--lib/unicase/u16-is-invariant.c2
-rw-r--r--lib/unicase/u16-is-lowercase.c2
-rw-r--r--lib/unicase/u16-is-titlecase.c2
-rw-r--r--lib/unicase/u16-is-uppercase.c2
-rw-r--r--lib/unicase/u16-prefix-context.c2
-rw-r--r--lib/unicase/u16-suffix-context.c2
-rw-r--r--lib/unicase/u16-tolower.c2
-rw-r--r--lib/unicase/u16-totitle.c2
-rw-r--r--lib/unicase/u16-toupper.c2
-rw-r--r--lib/unicase/u32-casecmp.c2
-rw-r--r--lib/unicase/u32-casecoll.c2
-rw-r--r--lib/unicase/u32-casefold.c2
-rw-r--r--lib/unicase/u32-casemap.c2
-rw-r--r--lib/unicase/u32-casexfrm.c2
-rw-r--r--lib/unicase/u32-ct-casefold.c2
-rw-r--r--lib/unicase/u32-ct-tolower.c2
-rw-r--r--lib/unicase/u32-ct-totitle.c2
-rw-r--r--lib/unicase/u32-ct-toupper.c2
-rw-r--r--lib/unicase/u32-is-cased.c2
-rw-r--r--lib/unicase/u32-is-casefolded.c2
-rw-r--r--lib/unicase/u32-is-invariant.c2
-rw-r--r--lib/unicase/u32-is-lowercase.c2
-rw-r--r--lib/unicase/u32-is-titlecase.c2
-rw-r--r--lib/unicase/u32-is-uppercase.c2
-rw-r--r--lib/unicase/u32-prefix-context.c2
-rw-r--r--lib/unicase/u32-suffix-context.c2
-rw-r--r--lib/unicase/u32-tolower.c2
-rw-r--r--lib/unicase/u32-totitle.c2
-rw-r--r--lib/unicase/u32-toupper.c2
-rw-r--r--lib/unicase/u8-casecmp.c2
-rw-r--r--lib/unicase/u8-casecoll.c2
-rw-r--r--lib/unicase/u8-casefold.c5
-rw-r--r--lib/unicase/u8-casemap.c2
-rw-r--r--lib/unicase/u8-casexfrm.c2
-rw-r--r--lib/unicase/u8-ct-casefold.c2
-rw-r--r--lib/unicase/u8-ct-tolower.c2
-rw-r--r--lib/unicase/u8-ct-totitle.c2
-rw-r--r--lib/unicase/u8-ct-toupper.c2
-rw-r--r--lib/unicase/u8-is-cased.c2
-rw-r--r--lib/unicase/u8-is-casefolded.c2
-rw-r--r--lib/unicase/u8-is-invariant.c2
-rw-r--r--lib/unicase/u8-is-lowercase.c2
-rw-r--r--lib/unicase/u8-is-titlecase.c2
-rw-r--r--lib/unicase/u8-is-uppercase.c2
-rw-r--r--lib/unicase/u8-prefix-context.c2
-rw-r--r--lib/unicase/u8-suffix-context.c2
-rw-r--r--lib/unicase/u8-tolower.c5
-rw-r--r--lib/unicase/u8-totitle.c5
-rw-r--r--lib/unicase/u8-toupper.c5
-rw-r--r--lib/unicase/ulc-casecmp.c16
-rw-r--r--lib/unicase/ulc-casecoll.c2
-rw-r--r--lib/unicase/ulc-casexfrm.c16
-rw-r--r--lib/unicase/unicasemap.h2
-rw-r--r--lib/uniconv.in.h2
-rw-r--r--lib/uniconv/u-conv-from-enc.h20
-rw-r--r--lib/uniconv/u-conv-to-enc.h43
-rw-r--r--lib/uniconv/u-strconv-from-enc.h6
-rw-r--r--lib/uniconv/u-strconv-to-enc.h9
-rw-r--r--lib/uniconv/u16-conv-from-enc.c2
-rw-r--r--lib/uniconv/u16-conv-to-enc.c22
-rw-r--r--lib/uniconv/u16-strconv-from-enc.c2
-rw-r--r--lib/uniconv/u16-strconv-from-locale.c2
-rw-r--r--lib/uniconv/u16-strconv-to-enc.c2
-rw-r--r--lib/uniconv/u16-strconv-to-locale.c2
-rw-r--r--lib/uniconv/u32-conv-from-enc.c2
-rw-r--r--lib/uniconv/u32-conv-to-enc.c2
-rw-r--r--lib/uniconv/u32-strconv-from-enc.c2
-rw-r--r--lib/uniconv/u32-strconv-from-locale.c2
-rw-r--r--lib/uniconv/u32-strconv-to-enc.c2
-rw-r--r--lib/uniconv/u32-strconv-to-locale.c2
-rw-r--r--lib/uniconv/u8-conv-from-enc.c30
-rw-r--r--lib/uniconv/u8-conv-to-enc.c5
-rw-r--r--lib/uniconv/u8-strconv-from-enc.c2
-rw-r--r--lib/uniconv/u8-strconv-from-locale.c2
-rw-r--r--lib/uniconv/u8-strconv-to-enc.c13
-rw-r--r--lib/uniconv/u8-strconv-to-locale.c2
-rw-r--r--lib/unictype.in.h2
-rw-r--r--lib/unictype/bidi_byname.c9
-rw-r--r--lib/unictype/bidi_byname.gperf2
-rw-r--r--lib/unictype/bidi_byname.h15
-rw-r--r--lib/unictype/bidi_longname.c2
-rw-r--r--lib/unictype/bidi_name.c2
-rw-r--r--lib/unictype/bidi_of.c2
-rw-r--r--lib/unictype/bidi_test.c2
-rw-r--r--lib/unictype/bitmap.h2
-rw-r--r--lib/unictype/block_test.c2
-rw-r--r--lib/unictype/blocks.c2
-rw-r--r--lib/unictype/categ_C.c2
-rw-r--r--lib/unictype/categ_Cc.c2
-rw-r--r--lib/unictype/categ_Cf.c2
-rw-r--r--lib/unictype/categ_Cn.c2
-rw-r--r--lib/unictype/categ_Co.c2
-rw-r--r--lib/unictype/categ_Cs.c2
-rw-r--r--lib/unictype/categ_L.c2
-rw-r--r--lib/unictype/categ_LC.c2
-rw-r--r--lib/unictype/categ_Ll.c2
-rw-r--r--lib/unictype/categ_Lm.c2
-rw-r--r--lib/unictype/categ_Lo.c2
-rw-r--r--lib/unictype/categ_Lt.c2
-rw-r--r--lib/unictype/categ_Lu.c2
-rw-r--r--lib/unictype/categ_M.c2
-rw-r--r--lib/unictype/categ_Mc.c2
-rw-r--r--lib/unictype/categ_Me.c2
-rw-r--r--lib/unictype/categ_Mn.c2
-rw-r--r--lib/unictype/categ_N.c2
-rw-r--r--lib/unictype/categ_Nd.c2
-rw-r--r--lib/unictype/categ_Nl.c2
-rw-r--r--lib/unictype/categ_No.c2
-rw-r--r--lib/unictype/categ_P.c2
-rw-r--r--lib/unictype/categ_Pc.c2
-rw-r--r--lib/unictype/categ_Pd.c2
-rw-r--r--lib/unictype/categ_Pe.c2
-rw-r--r--lib/unictype/categ_Pf.c2
-rw-r--r--lib/unictype/categ_Pi.c2
-rw-r--r--lib/unictype/categ_Po.c2
-rw-r--r--lib/unictype/categ_Ps.c2
-rw-r--r--lib/unictype/categ_S.c2
-rw-r--r--lib/unictype/categ_Sc.c2
-rw-r--r--lib/unictype/categ_Sk.c2
-rw-r--r--lib/unictype/categ_Sm.c2
-rw-r--r--lib/unictype/categ_So.c2
-rw-r--r--lib/unictype/categ_Z.c2
-rw-r--r--lib/unictype/categ_Zl.c2
-rw-r--r--lib/unictype/categ_Zp.c2
-rw-r--r--lib/unictype/categ_Zs.c2
-rw-r--r--lib/unictype/categ_and.c8
-rw-r--r--lib/unictype/categ_and_not.c8
-rw-r--r--lib/unictype/categ_byname.c10
-rw-r--r--lib/unictype/categ_byname.gperf2
-rw-r--r--lib/unictype/categ_byname.h19
-rw-r--r--lib/unictype/categ_longname.c2
-rw-r--r--lib/unictype/categ_name.c2
-rw-r--r--lib/unictype/categ_none.c2
-rw-r--r--lib/unictype/categ_of.c4
-rw-r--r--lib/unictype/categ_or.c8
-rw-r--r--lib/unictype/categ_test.c2
-rw-r--r--lib/unictype/combiningclass.c2
-rw-r--r--lib/unictype/combiningclass_byname.c10
-rw-r--r--lib/unictype/combiningclass_byname.gperf2
-rw-r--r--lib/unictype/combiningclass_byname.h15
-rw-r--r--lib/unictype/combiningclass_longname.c3
-rw-r--r--lib/unictype/combiningclass_name.c3
-rw-r--r--lib/unictype/ctype_alnum.c2
-rw-r--r--lib/unictype/ctype_alpha.c2
-rw-r--r--lib/unictype/ctype_blank.c2
-rw-r--r--lib/unictype/ctype_cntrl.c2
-rw-r--r--lib/unictype/ctype_digit.c2
-rw-r--r--lib/unictype/ctype_graph.c2
-rw-r--r--lib/unictype/ctype_lower.c2
-rw-r--r--lib/unictype/ctype_print.c2
-rw-r--r--lib/unictype/ctype_punct.c2
-rw-r--r--lib/unictype/ctype_space.c2
-rw-r--r--lib/unictype/ctype_upper.c2
-rw-r--r--lib/unictype/ctype_xdigit.c2
-rw-r--r--lib/unictype/decdigit.c2
-rw-r--r--lib/unictype/digit.c2
-rw-r--r--lib/unictype/identsyntaxmap.h2
-rw-r--r--lib/unictype/incb_byname.c10
-rw-r--r--lib/unictype/incb_byname.gperf2
-rw-r--r--lib/unictype/incb_byname.h11
-rw-r--r--lib/unictype/incb_name.c2
-rw-r--r--lib/unictype/incb_name.h2
-rw-r--r--lib/unictype/incb_of.c2
-rw-r--r--lib/unictype/joininggroup_byname.c10
-rw-r--r--lib/unictype/joininggroup_byname.gperf2
-rw-r--r--lib/unictype/joininggroup_name.c2
-rw-r--r--lib/unictype/joininggroup_name.h2
-rw-r--r--lib/unictype/joininggroup_of.c2
-rw-r--r--lib/unictype/joiningtype_byname.c10
-rw-r--r--lib/unictype/joiningtype_byname.gperf2
-rw-r--r--lib/unictype/joiningtype_byname.h11
-rw-r--r--lib/unictype/joiningtype_longname.c2
-rw-r--r--lib/unictype/joiningtype_name.c2
-rw-r--r--lib/unictype/joiningtype_of.c2
-rw-r--r--lib/unictype/mirror.c2
-rw-r--r--lib/unictype/numeric.c2
-rw-r--r--lib/unictype/pr_alphabetic.c2
-rw-r--r--lib/unictype/pr_ascii_hex_digit.c2
-rw-r--r--lib/unictype/pr_bidi_arabic_digit.c2
-rw-r--r--lib/unictype/pr_bidi_arabic_right_to_left.c2
-rw-r--r--lib/unictype/pr_bidi_block_separator.c2
-rw-r--r--lib/unictype/pr_bidi_boundary_neutral.c2
-rw-r--r--lib/unictype/pr_bidi_common_separator.c2
-rw-r--r--lib/unictype/pr_bidi_control.c2
-rw-r--r--lib/unictype/pr_bidi_embedding_or_override.c2
-rw-r--r--lib/unictype/pr_bidi_eur_num_separator.c2
-rw-r--r--lib/unictype/pr_bidi_eur_num_terminator.c2
-rw-r--r--lib/unictype/pr_bidi_european_digit.c2
-rw-r--r--lib/unictype/pr_bidi_hebrew_right_to_left.c2
-rw-r--r--lib/unictype/pr_bidi_left_to_right.c2
-rw-r--r--lib/unictype/pr_bidi_non_spacing_mark.c2
-rw-r--r--lib/unictype/pr_bidi_other_neutral.c2
-rw-r--r--lib/unictype/pr_bidi_pdf.c2
-rw-r--r--lib/unictype/pr_bidi_segment_separator.c2
-rw-r--r--lib/unictype/pr_bidi_whitespace.c2
-rw-r--r--lib/unictype/pr_byname.c42
-rw-r--r--lib/unictype/pr_byname.gperf2
-rw-r--r--lib/unictype/pr_byname.h27
-rw-r--r--lib/unictype/pr_case_ignorable.c2
-rw-r--r--lib/unictype/pr_cased.c2
-rw-r--r--lib/unictype/pr_changes_when_casefolded.c2
-rw-r--r--lib/unictype/pr_changes_when_casemapped.c2
-rw-r--r--lib/unictype/pr_changes_when_lowercased.c2
-rw-r--r--lib/unictype/pr_changes_when_titlecased.c2
-rw-r--r--lib/unictype/pr_changes_when_uppercased.c2
-rw-r--r--lib/unictype/pr_combining.c2
-rw-r--r--lib/unictype/pr_composite.c2
-rw-r--r--lib/unictype/pr_currency_symbol.c2
-rw-r--r--lib/unictype/pr_dash.c2
-rw-r--r--lib/unictype/pr_decimal_digit.c2
-rw-r--r--lib/unictype/pr_default_ignorable_code_point.c2
-rw-r--r--lib/unictype/pr_deprecated.c2
-rw-r--r--lib/unictype/pr_diacritic.c2
-rw-r--r--lib/unictype/pr_emoji.c2
-rw-r--r--lib/unictype/pr_emoji_component.c2
-rw-r--r--lib/unictype/pr_emoji_modifier.c2
-rw-r--r--lib/unictype/pr_emoji_modifier_base.c2
-rw-r--r--lib/unictype/pr_emoji_presentation.c2
-rw-r--r--lib/unictype/pr_extended_pictographic.c2
-rw-r--r--lib/unictype/pr_extender.c2
-rw-r--r--lib/unictype/pr_format_control.c2
-rw-r--r--lib/unictype/pr_grapheme_base.c2
-rw-r--r--lib/unictype/pr_grapheme_extend.c2
-rw-r--r--lib/unictype/pr_grapheme_link.c2
-rw-r--r--lib/unictype/pr_hex_digit.c2
-rw-r--r--lib/unictype/pr_hyphen.c2
-rw-r--r--lib/unictype/pr_id_compat_math_continue.c2
-rw-r--r--lib/unictype/pr_id_compat_math_start.c2
-rw-r--r--lib/unictype/pr_id_continue.c2
-rw-r--r--lib/unictype/pr_id_start.c2
-rw-r--r--lib/unictype/pr_ideographic.c2
-rw-r--r--lib/unictype/pr_ids_binary_operator.c2
-rw-r--r--lib/unictype/pr_ids_trinary_operator.c2
-rw-r--r--lib/unictype/pr_ids_unary_operator.c2
-rw-r--r--lib/unictype/pr_ignorable_control.c2
-rw-r--r--lib/unictype/pr_iso_control.c2
-rw-r--r--lib/unictype/pr_join_control.c2
-rw-r--r--lib/unictype/pr_left_of_pair.c2
-rw-r--r--lib/unictype/pr_line_separator.c2
-rw-r--r--lib/unictype/pr_logical_order_exception.c2
-rw-r--r--lib/unictype/pr_lowercase.c2
-rw-r--r--lib/unictype/pr_math.c2
-rw-r--r--lib/unictype/pr_modifier_combining_mark.c2
-rw-r--r--lib/unictype/pr_non_break.c2
-rw-r--r--lib/unictype/pr_not_a_character.c2
-rw-r--r--lib/unictype/pr_numeric.c2
-rw-r--r--lib/unictype/pr_other_alphabetic.c2
-rw-r--r--lib/unictype/pr_other_default_ignorable_code_point.c2
-rw-r--r--lib/unictype/pr_other_grapheme_extend.c2
-rw-r--r--lib/unictype/pr_other_id_continue.c2
-rw-r--r--lib/unictype/pr_other_id_start.c2
-rw-r--r--lib/unictype/pr_other_lowercase.c2
-rw-r--r--lib/unictype/pr_other_math.c2
-rw-r--r--lib/unictype/pr_other_uppercase.c2
-rw-r--r--lib/unictype/pr_paired_punctuation.c2
-rw-r--r--lib/unictype/pr_paragraph_separator.c2
-rw-r--r--lib/unictype/pr_pattern_syntax.c2
-rw-r--r--lib/unictype/pr_pattern_white_space.c2
-rw-r--r--lib/unictype/pr_prepended_concatenation_mark.c2
-rw-r--r--lib/unictype/pr_private_use.c2
-rw-r--r--lib/unictype/pr_punctuation.c2
-rw-r--r--lib/unictype/pr_quotation_mark.c2
-rw-r--r--lib/unictype/pr_radical.c2
-rw-r--r--lib/unictype/pr_regional_indicator.c2
-rw-r--r--lib/unictype/pr_sentence_terminal.c2
-rw-r--r--lib/unictype/pr_soft_dotted.c2
-rw-r--r--lib/unictype/pr_space.c2
-rw-r--r--lib/unictype/pr_terminal_punctuation.c2
-rw-r--r--lib/unictype/pr_test.c2
-rw-r--r--lib/unictype/pr_titlecase.c2
-rw-r--r--lib/unictype/pr_unassigned_code_value.c2
-rw-r--r--lib/unictype/pr_unified_ideograph.c2
-rw-r--r--lib/unictype/pr_uppercase.c2
-rw-r--r--lib/unictype/pr_variation_selector.c2
-rw-r--r--lib/unictype/pr_white_space.c2
-rw-r--r--lib/unictype/pr_xid_continue.c2
-rw-r--r--lib/unictype/pr_xid_start.c2
-rw-r--r--lib/unictype/pr_zero_width.c2
-rw-r--r--lib/unictype/scripts.c7
-rw-r--r--lib/unictype/sy_c_ident.c2
-rw-r--r--lib/unictype/sy_c_whitespace.c2
-rw-r--r--lib/unictype/sy_java_ident.c2
-rw-r--r--lib/unictype/sy_java_whitespace.c2
-rw-r--r--lib/unigbrk.in.h2
-rw-r--r--lib/unigbrk/u-grapheme-breaks.h2
-rw-r--r--lib/unigbrk/u-grapheme-next.h2
-rw-r--r--lib/unigbrk/u-grapheme-prev.h18
-rw-r--r--lib/unigbrk/u16-grapheme-breaks.c2
-rw-r--r--lib/unigbrk/u16-grapheme-next.c2
-rw-r--r--lib/unigbrk/u16-grapheme-prev.c2
-rw-r--r--lib/unigbrk/u32-grapheme-breaks.c2
-rw-r--r--lib/unigbrk/u32-grapheme-next.c2
-rw-r--r--lib/unigbrk/u32-grapheme-prev.c2
-rw-r--r--lib/unigbrk/u8-grapheme-breaks.c2
-rw-r--r--lib/unigbrk/u8-grapheme-next.c2
-rw-r--r--lib/unigbrk/u8-grapheme-prev.c2
-rw-r--r--lib/unigbrk/uc-gbrk-prop.c2
-rw-r--r--lib/unigbrk/uc-grapheme-breaks.c2
-rw-r--r--lib/unigbrk/uc-is-grapheme-break.c8
-rw-r--r--lib/unigbrk/ulc-grapheme-breaks.c17
-rw-r--r--lib/unilbrk.in.h2
-rw-r--r--lib/unilbrk/internal.h2
-rw-r--r--lib/unilbrk/lbrktables.h2
-rw-r--r--lib/unilbrk/u16-possible-linebreaks.c2
-rw-r--r--lib/unilbrk/u16-width-linebreaks.c19
-rw-r--r--lib/unilbrk/u32-possible-linebreaks.c2
-rw-r--r--lib/unilbrk/u32-width-linebreaks.c19
-rw-r--r--lib/unilbrk/u8-possible-linebreaks.c8
-rw-r--r--lib/unilbrk/u8-width-linebreaks.c25
-rw-r--r--lib/unilbrk/ulc-common.c2
-rw-r--r--lib/unilbrk/ulc-common.h2
-rw-r--r--lib/unilbrk/ulc-possible-linebreaks.c19
-rw-r--r--lib/unilbrk/ulc-width-linebreaks.c23
-rw-r--r--lib/unimetadata.in.h2
-rw-r--r--lib/uniname.in.h2
-rwxr-xr-xlib/uniname/gen-uninames.lisp2
-rw-r--r--lib/uniname/uniname.c57
-rw-r--r--lib/uninorm.in.h2
-rw-r--r--lib/uninorm/canonical-decomposition.c28
-rw-r--r--lib/uninorm/compat-decomposition.c2
-rw-r--r--lib/uninorm/composition.c6
-rw-r--r--lib/uninorm/decompose-internal.c2
-rw-r--r--lib/uninorm/decompose-internal.h2
-rw-r--r--lib/uninorm/decomposing-form.c2
-rw-r--r--lib/uninorm/decomposition-table.c2
-rw-r--r--lib/uninorm/decomposition-table.h2
-rw-r--r--lib/uninorm/decomposition.c28
-rw-r--r--lib/uninorm/nfc.c2
-rw-r--r--lib/uninorm/nfd.c2
-rw-r--r--lib/uninorm/nfkc.c2
-rw-r--r--lib/uninorm/nfkd.c2
-rw-r--r--lib/uninorm/normalize-internal.h2
-rw-r--r--lib/uninorm/u-normalize-internal.h117
-rw-r--r--lib/uninorm/u-normcmp.h22
-rw-r--r--lib/uninorm/u-normcoll.h24
-rw-r--r--lib/uninorm/u-normxfrm.h22
-rw-r--r--lib/uninorm/u16-normalize.c2
-rw-r--r--lib/uninorm/u16-normcmp.c2
-rw-r--r--lib/uninorm/u16-normcoll.c2
-rw-r--r--lib/uninorm/u16-normxfrm.c2
-rw-r--r--lib/uninorm/u32-normalize.c2
-rw-r--r--lib/uninorm/u32-normcmp.c2
-rw-r--r--lib/uninorm/u32-normcoll.c2
-rw-r--r--lib/uninorm/u32-normxfrm.c2
-rw-r--r--lib/uninorm/u8-normalize.c2
-rw-r--r--lib/uninorm/u8-normcmp.c2
-rw-r--r--lib/uninorm/u8-normcoll.c2
-rw-r--r--lib/uninorm/u8-normxfrm.c2
-rw-r--r--lib/uninorm/uninorm-filter.c102
-rw-r--r--lib/unistd.c2
-rw-r--r--lib/unistd.in.h59
-rw-r--r--lib/unistdio.in.h2
-rw-r--r--lib/unistdio/u-asnprintf.h6
-rw-r--r--lib/unistdio/u-asprintf.h6
-rw-r--r--lib/unistdio/u-printf-args.c2
-rw-r--r--lib/unistdio/u-printf-args.h2
-rw-r--r--lib/unistdio/u-printf-parse.h2
-rw-r--r--lib/unistdio/u-snprintf.h6
-rw-r--r--lib/unistdio/u-sprintf.h6
-rw-r--r--lib/unistdio/u-vasprintf.h2
-rw-r--r--lib/unistdio/u-vsnprintf.h5
-rw-r--r--lib/unistdio/u-vsprintf.h8
-rw-r--r--lib/unistdio/u16-asnprintf.c2
-rw-r--r--lib/unistdio/u16-asprintf.c2
-rw-r--r--lib/unistdio/u16-printf-parse.c2
-rw-r--r--lib/unistdio/u16-snprintf.c2
-rw-r--r--lib/unistdio/u16-sprintf.c2
-rw-r--r--lib/unistdio/u16-u16-asnprintf.c2
-rw-r--r--lib/unistdio/u16-u16-asprintf.c2
-rw-r--r--lib/unistdio/u16-u16-snprintf.c2
-rw-r--r--lib/unistdio/u16-u16-sprintf.c2
-rw-r--r--lib/unistdio/u16-u16-vasnprintf.c2
-rw-r--r--lib/unistdio/u16-u16-vasprintf.c2
-rw-r--r--lib/unistdio/u16-u16-vsnprintf.c2
-rw-r--r--lib/unistdio/u16-u16-vsprintf.c2
-rw-r--r--lib/unistdio/u16-vasnprintf.c2
-rw-r--r--lib/unistdio/u16-vasprintf.c2
-rw-r--r--lib/unistdio/u16-vsnprintf.c2
-rw-r--r--lib/unistdio/u16-vsprintf.c2
-rw-r--r--lib/unistdio/u32-asnprintf.c2
-rw-r--r--lib/unistdio/u32-asprintf.c2
-rw-r--r--lib/unistdio/u32-printf-parse.c2
-rw-r--r--lib/unistdio/u32-snprintf.c2
-rw-r--r--lib/unistdio/u32-sprintf.c2
-rw-r--r--lib/unistdio/u32-u32-asnprintf.c2
-rw-r--r--lib/unistdio/u32-u32-asprintf.c2
-rw-r--r--lib/unistdio/u32-u32-snprintf.c2
-rw-r--r--lib/unistdio/u32-u32-sprintf.c2
-rw-r--r--lib/unistdio/u32-u32-vasnprintf.c2
-rw-r--r--lib/unistdio/u32-u32-vasprintf.c2
-rw-r--r--lib/unistdio/u32-u32-vsnprintf.c2
-rw-r--r--lib/unistdio/u32-u32-vsprintf.c2
-rw-r--r--lib/unistdio/u32-vasnprintf.c2
-rw-r--r--lib/unistdio/u32-vasprintf.c2
-rw-r--r--lib/unistdio/u32-vsnprintf.c2
-rw-r--r--lib/unistdio/u32-vsprintf.c2
-rw-r--r--lib/unistdio/u8-asnprintf.c2
-rw-r--r--lib/unistdio/u8-asprintf.c2
-rw-r--r--lib/unistdio/u8-printf-parse.c2
-rw-r--r--lib/unistdio/u8-snprintf.c2
-rw-r--r--lib/unistdio/u8-sprintf.c2
-rw-r--r--lib/unistdio/u8-u8-asnprintf.c2
-rw-r--r--lib/unistdio/u8-u8-asprintf.c2
-rw-r--r--lib/unistdio/u8-u8-snprintf.c2
-rw-r--r--lib/unistdio/u8-u8-sprintf.c2
-rw-r--r--lib/unistdio/u8-u8-vasnprintf.c2
-rw-r--r--lib/unistdio/u8-u8-vasprintf.c2
-rw-r--r--lib/unistdio/u8-u8-vsnprintf.c2
-rw-r--r--lib/unistdio/u8-u8-vsprintf.c2
-rw-r--r--lib/unistdio/u8-vasnprintf.c2
-rw-r--r--lib/unistdio/u8-vasprintf.c2
-rw-r--r--lib/unistdio/u8-vsnprintf.c2
-rw-r--r--lib/unistdio/u8-vsprintf.c2
-rw-r--r--lib/unistdio/ulc-asnprintf.c2
-rw-r--r--lib/unistdio/ulc-asprintf.c2
-rw-r--r--lib/unistdio/ulc-fprintf.c13
-rw-r--r--lib/unistdio/ulc-printf-parse.c2
-rw-r--r--lib/unistdio/ulc-snprintf.c2
-rw-r--r--lib/unistdio/ulc-sprintf.c2
-rw-r--r--lib/unistdio/ulc-vasnprintf.c2
-rw-r--r--lib/unistdio/ulc-vasprintf.c2
-rw-r--r--lib/unistdio/ulc-vfprintf.c9
-rw-r--r--lib/unistdio/ulc-vsnprintf.c2
-rw-r--r--lib/unistdio/ulc-vsprintf.c2
-rw-r--r--lib/unistr.in.h6
-rw-r--r--lib/unistr/u-cmp2.h2
-rw-r--r--lib/unistr/u-cpy-alloc.h2
-rw-r--r--lib/unistr/u-cpy.h2
-rw-r--r--lib/unistr/u-endswith.h2
-rw-r--r--lib/unistr/u-move.h2
-rw-r--r--lib/unistr/u-pcpy.h2
-rw-r--r--lib/unistr/u-set.h2
-rw-r--r--lib/unistr/u-startswith.h2
-rw-r--r--lib/unistr/u-stpcpy.h2
-rw-r--r--lib/unistr/u-stpncpy.h2
-rw-r--r--lib/unistr/u-strcat.h2
-rw-r--r--lib/unistr/u-strcoll.h2
-rw-r--r--lib/unistr/u-strcpy.h2
-rw-r--r--lib/unistr/u-strcspn.h2
-rw-r--r--lib/unistr/u-strdup.h2
-rw-r--r--lib/unistr/u-strlen.h2
-rw-r--r--lib/unistr/u-strncat.h2
-rw-r--r--lib/unistr/u-strncpy.h2
-rw-r--r--lib/unistr/u-strnlen.h2
-rw-r--r--lib/unistr/u-strpbrk.h2
-rw-r--r--lib/unistr/u-strspn.h2
-rw-r--r--lib/unistr/u-strtok.h2
-rw-r--r--lib/unistr/u16-check.c2
-rw-r--r--lib/unistr/u16-chr.c38
-rw-r--r--lib/unistr/u16-cmp.c36
-rw-r--r--lib/unistr/u16-cmp2.c2
-rw-r--r--lib/unistr/u16-cpy-alloc.c2
-rw-r--r--lib/unistr/u16-cpy.c2
-rw-r--r--lib/unistr/u16-endswith.c2
-rw-r--r--lib/unistr/u16-mblen.c2
-rw-r--r--lib/unistr/u16-mbsnlen.c6
-rw-r--r--lib/unistr/u16-mbtouc-aux.c2
-rw-r--r--lib/unistr/u16-mbtouc-unsafe-aux.c2
-rw-r--r--lib/unistr/u16-mbtouc-unsafe.c2
-rw-r--r--lib/unistr/u16-mbtouc.c2
-rw-r--r--lib/unistr/u16-mbtoucr.c2
-rw-r--r--lib/unistr/u16-move.c2
-rw-r--r--lib/unistr/u16-next.c6
-rw-r--r--lib/unistr/u16-pcpy.c2
-rw-r--r--lib/unistr/u16-prev.c2
-rw-r--r--lib/unistr/u16-set.c2
-rw-r--r--lib/unistr/u16-startswith.c2
-rw-r--r--lib/unistr/u16-stpcpy.c2
-rw-r--r--lib/unistr/u16-stpncpy.c2
-rw-r--r--lib/unistr/u16-strcat.c2
-rw-r--r--lib/unistr/u16-strchr.c40
-rw-r--r--lib/unistr/u16-strcmp.c31
-rw-r--r--lib/unistr/u16-strcoll.c2
-rw-r--r--lib/unistr/u16-strcpy.c2
-rw-r--r--lib/unistr/u16-strcspn.c2
-rw-r--r--lib/unistr/u16-strdup.c2
-rw-r--r--lib/unistr/u16-strlen.c2
-rw-r--r--lib/unistr/u16-strmblen.c2
-rw-r--r--lib/unistr/u16-strmbtouc.c2
-rw-r--r--lib/unistr/u16-strncat.c2
-rw-r--r--lib/unistr/u16-strncmp.c36
-rw-r--r--lib/unistr/u16-strncpy.c2
-rw-r--r--lib/unistr/u16-strnlen.c2
-rw-r--r--lib/unistr/u16-strpbrk.c2
-rw-r--r--lib/unistr/u16-strrchr.c43
-rw-r--r--lib/unistr/u16-strspn.c2
-rw-r--r--lib/unistr/u16-strstr.c2
-rw-r--r--lib/unistr/u16-strtok.c2
-rw-r--r--lib/unistr/u16-to-u32.c22
-rw-r--r--lib/unistr/u16-to-u8.c22
-rw-r--r--lib/unistr/u16-uctomb-aux.c2
-rw-r--r--lib/unistr/u16-uctomb.c2
-rw-r--r--lib/unistr/u32-check.c2
-rw-r--r--lib/unistr/u32-chr.c2
-rw-r--r--lib/unistr/u32-cmp.c14
-rw-r--r--lib/unistr/u32-cmp2.c2
-rw-r--r--lib/unistr/u32-cpy-alloc.c2
-rw-r--r--lib/unistr/u32-cpy.c2
-rw-r--r--lib/unistr/u32-endswith.c2
-rw-r--r--lib/unistr/u32-mblen.c2
-rw-r--r--lib/unistr/u32-mbsnlen.c2
-rw-r--r--lib/unistr/u32-mbtouc-unsafe.c2
-rw-r--r--lib/unistr/u32-mbtouc.c2
-rw-r--r--lib/unistr/u32-mbtoucr.c2
-rw-r--r--lib/unistr/u32-move.c2
-rw-r--r--lib/unistr/u32-next.c6
-rw-r--r--lib/unistr/u32-pcpy.c2
-rw-r--r--lib/unistr/u32-prev.c2
-rw-r--r--lib/unistr/u32-set.c2
-rw-r--r--lib/unistr/u32-startswith.c2
-rw-r--r--lib/unistr/u32-stpcpy.c2
-rw-r--r--lib/unistr/u32-stpncpy.c2
-rw-r--r--lib/unistr/u32-strcat.c2
-rw-r--r--lib/unistr/u32-strchr.c2
-rw-r--r--lib/unistr/u32-strcmp.c13
-rw-r--r--lib/unistr/u32-strcoll.c2
-rw-r--r--lib/unistr/u32-strcpy.c2
-rw-r--r--lib/unistr/u32-strcspn.c2
-rw-r--r--lib/unistr/u32-strdup.c2
-rw-r--r--lib/unistr/u32-strlen.c2
-rw-r--r--lib/unistr/u32-strmblen.c2
-rw-r--r--lib/unistr/u32-strmbtouc.c2
-rw-r--r--lib/unistr/u32-strncat.c2
-rw-r--r--lib/unistr/u32-strncmp.c14
-rw-r--r--lib/unistr/u32-strncpy.c2
-rw-r--r--lib/unistr/u32-strnlen.c2
-rw-r--r--lib/unistr/u32-strpbrk.c2
-rw-r--r--lib/unistr/u32-strrchr.c2
-rw-r--r--lib/unistr/u32-strspn.c2
-rw-r--r--lib/unistr/u32-strstr.c2
-rw-r--r--lib/unistr/u32-strtok.c2
-rw-r--r--lib/unistr/u32-to-u16.c23
-rw-r--r--lib/unistr/u32-to-u8.c23
-rw-r--r--lib/unistr/u32-uctomb.c2
-rw-r--r--lib/unistr/u8-check.c2
-rw-r--r--lib/unistr/u8-chr.c5
-rw-r--r--lib/unistr/u8-cmp.c2
-rw-r--r--lib/unistr/u8-cmp2.c2
-rw-r--r--lib/unistr/u8-cpy-alloc.c2
-rw-r--r--lib/unistr/u8-cpy.c2
-rw-r--r--lib/unistr/u8-endswith.c2
-rw-r--r--lib/unistr/u8-mblen.c2
-rw-r--r--lib/unistr/u8-mbsnlen.c6
-rw-r--r--lib/unistr/u8-mbtouc-aux.c2
-rw-r--r--lib/unistr/u8-mbtouc-unsafe-aux.c2
-rw-r--r--lib/unistr/u8-mbtouc-unsafe.c2
-rw-r--r--lib/unistr/u8-mbtouc.c2
-rw-r--r--lib/unistr/u8-mbtoucr.c2
-rw-r--r--lib/unistr/u8-move.c2
-rw-r--r--lib/unistr/u8-next.c6
-rw-r--r--lib/unistr/u8-pcpy.c2
-rw-r--r--lib/unistr/u8-prev.c2
-rw-r--r--lib/unistr/u8-set.c2
-rw-r--r--lib/unistr/u8-startswith.c2
-rw-r--r--lib/unistr/u8-stpcpy.c2
-rw-r--r--lib/unistr/u8-stpncpy.c2
-rw-r--r--lib/unistr/u8-strcat.c2
-rw-r--r--lib/unistr/u8-strchr.c334
-rw-r--r--lib/unistr/u8-strcmp.c2
-rw-r--r--lib/unistr/u8-strcoll.c2
-rw-r--r--lib/unistr/u8-strcpy.c2
-rw-r--r--lib/unistr/u8-strcspn.c2
-rw-r--r--lib/unistr/u8-strdup.c2
-rw-r--r--lib/unistr/u8-strlen.c2
-rw-r--r--lib/unistr/u8-strmblen.c2
-rw-r--r--lib/unistr/u8-strmbtouc.c2
-rw-r--r--lib/unistr/u8-strncat.c2
-rw-r--r--lib/unistr/u8-strncmp.c2
-rw-r--r--lib/unistr/u8-strncpy.c2
-rw-r--r--lib/unistr/u8-strnlen.c2
-rw-r--r--lib/unistr/u8-strpbrk.c2
-rw-r--r--lib/unistr/u8-strrchr.c109
-rw-r--r--lib/unistr/u8-strspn.c2
-rw-r--r--lib/unistr/u8-strstr.c2
-rw-r--r--lib/unistr/u8-strtok.c2
-rw-r--r--lib/unistr/u8-to-u16.c22
-rw-r--r--lib/unistr/u8-to-u32.c22
-rw-r--r--lib/unistr/u8-uctomb-aux.c2
-rw-r--r--lib/unistr/u8-uctomb.c2
-rw-r--r--lib/unistring/cdefs.h13
-rw-r--r--lib/unitypes.in.h2
-rw-r--r--lib/uniwbrk.in.h2
-rw-r--r--lib/uniwbrk/u-wordbreaks.h2
-rw-r--r--lib/uniwbrk/u16-wordbreaks.c2
-rw-r--r--lib/uniwbrk/u32-wordbreaks.c2
-rw-r--r--lib/uniwbrk/u8-wordbreaks.c8
-rw-r--r--lib/uniwbrk/ulc-wordbreaks.c19
-rw-r--r--lib/uniwbrk/wbrktable.c2
-rw-r--r--lib/uniwbrk/wbrktable.h2
-rw-r--r--lib/uniwbrk/wordbreak-property.c2
-rw-r--r--lib/uniwidth.in.h2
-rw-r--r--lib/uniwidth/cjk.h4
-rw-r--r--lib/uniwidth/u16-strwidth.c2
-rw-r--r--lib/uniwidth/u16-width.c6
-rw-r--r--lib/uniwidth/u32-strwidth.c2
-rw-r--r--lib/uniwidth/u32-width.c5
-rw-r--r--lib/uniwidth/u8-strwidth.c2
-rw-r--r--lib/uniwidth/u8-width.c6
-rw-r--r--lib/uniwidth/width.c2
-rw-r--r--lib/vasnprintf.c656
-rw-r--r--lib/verify.h2
-rw-r--r--lib/warn-on-use.h2
-rw-r--r--lib/wchar.in.h45
-rw-r--r--lib/wcs-two-way.h170
-rw-r--r--lib/wcsstr-impl.h32
-rw-r--r--lib/wctype-h.c2
-rw-r--r--lib/wctype.in.h6
-rw-r--r--lib/wcwidth.c4
-rw-r--r--lib/windows-initguard.h2
-rw-r--r--lib/windows-mutex.c2
-rw-r--r--lib/windows-mutex.h2
-rw-r--r--lib/windows-once.c2
-rw-r--r--lib/windows-once.h2
-rw-r--r--lib/windows-recmutex.c2
-rw-r--r--lib/windows-recmutex.h2
-rw-r--r--lib/windows-rwlock.c24
-rw-r--r--lib/windows-rwlock.h2
-rw-r--r--lib/xalloc-oversized.h2
-rw-r--r--lib/xsize.c5
-rw-r--r--lib/xsize.h2
-rw-r--r--tests/Makefile.gnulib25
-rw-r--r--tests/Makefile.in137
-rw-r--r--tests/_Noreturn.h2
-rw-r--r--tests/accept.c2
-rw-r--r--tests/alloca.c9
-rw-r--r--tests/arg-nonnull.h2
-rw-r--r--tests/arpa_inet.c5
-rw-r--r--tests/arpa_inet.in.h4
-rw-r--r--tests/atomic-int-gnulib.h5
-rw-r--r--tests/atomic-int-posix.h5
-rw-r--r--tests/basename-lgpl.c11
-rw-r--r--tests/basename-lgpl.h2
-rw-r--r--tests/binary-io.c5
-rw-r--r--tests/binary-io.h2
-rw-r--r--tests/bind.c2
-rw-r--r--tests/btoc32.c7
-rw-r--r--tests/btowc.c2
-rw-r--r--tests/c++defs.h14
-rw-r--r--tests/c32rtomb.c4
-rw-r--r--tests/c32tob.c6
-rw-r--r--tests/calloc.c2
-rw-r--r--tests/cdefs.h260
-rw-r--r--tests/cloexec.c2
-rw-r--r--tests/cloexec.h2
-rw-r--r--tests/close.c2
-rw-r--r--tests/concat-filename.c2
-rw-r--r--tests/concat-filename.h2
-rw-r--r--tests/connect.c2
-rw-r--r--tests/ctype.in.h17
-rw-r--r--tests/dup2.c68
-rw-r--r--tests/error.c2
-rw-r--r--tests/error.in.h2
-rw-r--r--tests/exitfail.c2
-rw-r--r--tests/exitfail.h2
-rw-r--r--tests/fcntl.c180
-rw-r--r--tests/fd-hook.c2
-rw-r--r--tests/fd-hook.h2
-rw-r--r--tests/fdopen.c5
-rw-r--r--tests/filename.h7
-rw-r--r--tests/fstat.c2
-rw-r--r--tests/ftruncate.c5
-rw-r--r--tests/getcwd-lgpl.c9
-rw-r--r--tests/getdtablesize.c13
-rw-r--r--tests/getprogname.c23
-rw-r--r--tests/getprogname.h2
-rw-r--r--tests/gettext.h8
-rw-r--r--tests/gettimeofday.c6
-rw-r--r--tests/glthread/thread.c6
-rw-r--r--tests/glthread/thread.h2
-rw-r--r--tests/glthread/yield.h2
-rw-r--r--tests/ialloc.c5
-rw-r--r--tests/ialloc.h2
-rw-r--r--tests/iconvsupport.c2
-rw-r--r--tests/ignore-value.h2
-rw-r--r--tests/inet_pton.c229
-rw-r--r--tests/infinity.h2
-rw-r--r--tests/init.sh2
-rw-r--r--tests/intprops-internal.h10
-rw-r--r--tests/intprops.h2
-rw-r--r--tests/ioctl.c10
-rw-r--r--tests/isblank.c2
-rw-r--r--tests/libc-config.h2
-rw-r--r--tests/listen.c2
-rw-r--r--tests/locale.c2
-rw-r--r--tests/lstat.c2
-rw-r--r--tests/macros.h2
-rw-r--r--tests/malloc.c2
-rw-r--r--tests/mbtowc-impl.h9
-rw-r--r--tests/mbtowc.c2
-rw-r--r--tests/minus-zero.h2
-rw-r--r--tests/mkfifo.c2
-rw-r--r--tests/msvc-inval.c2
-rw-r--r--tests/msvc-inval.h6
-rw-r--r--tests/msvc-nothrow.c2
-rw-r--r--tests/msvc-nothrow.h2
-rw-r--r--tests/nan.h2
-rw-r--r--tests/nanosleep.c5
-rw-r--r--tests/nap.h2
-rw-r--r--tests/netinet_in.in.h2
-rw-r--r--tests/open.c2
-rw-r--r--tests/pathmax.h2
-rw-r--r--tests/perror.c5
-rw-r--r--tests/pipe.c2
-rw-r--r--tests/pselect.c15
-rw-r--r--tests/pthread-cond.c5
-rw-r--r--tests/pthread-mutex.c2
-rw-r--r--tests/pthread-rwlock.c227
-rw-r--r--tests/pthread-thread.c2
-rw-r--r--tests/pthread_mutex_timedlock.c16
-rw-r--r--tests/pthread_sigmask.c9
-rw-r--r--tests/putenv.c9
-rw-r--r--tests/raise.c2
-rw-r--r--tests/random.c16
-rw-r--r--tests/random_r.c43
-rw-r--r--tests/randomd.c2
-rw-r--r--tests/randoml.c2
-rw-r--r--tests/realloc.c6
-rw-r--r--tests/reallocarray.c2
-rw-r--r--tests/same-inode.c4
-rw-r--r--tests/same-inode.h2
-rw-r--r--tests/sched_yield.c2
-rw-r--r--tests/select.c291
-rw-r--r--tests/setenv.c22
-rw-r--r--tests/setlocale.c163
-rw-r--r--tests/setsockopt.c6
-rw-r--r--tests/signal.in.h14
-rw-r--r--tests/signature.h2
-rw-r--r--tests/signed-nan.h2
-rw-r--r--tests/signed-snan.h2
-rw-r--r--tests/sigprocmask.c38
-rw-r--r--tests/sleep.c5
-rw-r--r--tests/snan.h4
-rw-r--r--tests/socket.c6
-rw-r--r--tests/sockets.c21
-rw-r--r--tests/sockets.h2
-rw-r--r--tests/stat-time.c5
-rw-r--r--tests/stat-time.h5
-rw-r--r--tests/stat-w32.c7
-rw-r--r--tests/stat-w32.h2
-rw-r--r--tests/stat.c5
-rw-r--r--tests/stdio-consolesafe.c59
-rw-r--r--tests/stdio-read.c13
-rw-r--r--tests/stdio-write.c13
-rw-r--r--tests/stdio.in.h71
-rw-r--r--tests/stpcpy.c2
-rw-r--r--tests/str_endswith.c2
-rw-r--r--tests/str_startswith.c2
-rw-r--r--tests/strerror-override.c2
-rw-r--r--tests/strerror-override.h2
-rw-r--r--tests/strerror.c5
-rw-r--r--tests/strerror_r.c9
-rw-r--r--tests/symlink.c2
-rw-r--r--tests/sys_ioctl.in.h3
-rw-r--r--tests/sys_select.in.h7
-rw-r--r--tests/sys_socket.c2
-rw-r--r--tests/sys_socket.in.h20
-rw-r--r--tests/sys_stat.in.h18
-rw-r--r--tests/sys_time.in.h3
-rw-r--r--tests/sys_uio.in.h2
-rw-r--r--tests/test-accept.c2
-rw-r--r--tests/test-alignasof.c2
-rw-r--r--tests/test-alloca-opt.c6
-rw-r--r--tests/test-arpa_inet-h.c2
-rw-r--r--tests/test-array-mergesort.c24
-rw-r--r--tests/test-assert.c2
-rw-r--r--tests/test-binary-io.c2
-rw-r--r--tests/test-bind.c2
-rw-r--r--tests/test-bool.c2
-rw-r--r--tests/test-btoc32.c14
-rw-r--r--tests/test-btowc.c14
-rw-r--r--tests/test-c-ctype.c9
-rw-r--r--tests/test-c-strcasecmp.c2
-rw-r--r--tests/test-c32isalnum.c108
-rw-r--r--tests/test-c32isalpha.c104
-rw-r--r--tests/test-c32isblank.c84
-rw-r--r--tests/test-c32iscntrl.c88
-rw-r--r--tests/test-c32isdigit.c84
-rw-r--r--tests/test-c32isgraph.c92
-rw-r--r--tests/test-c32islower.c94
-rw-r--r--tests/test-c32isprint.c88
-rw-r--r--tests/test-c32ispunct.c142
-rw-r--r--tests/test-c32isspace.c84
-rw-r--r--tests/test-c32isupper.c92
-rw-r--r--tests/test-c32isxdigit.c88
-rw-r--r--tests/test-c32rtomb-w32.c69
-rw-r--r--tests/test-c32rtomb.c66
-rw-r--r--tests/test-c32tolower.c96
-rw-r--r--tests/test-c32width.c8
-rw-r--r--tests/test-calloc-gnu.c2
-rw-r--r--tests/test-calloc-posix.c2
-rw-r--r--tests/test-cloexec.c2
-rw-r--r--tests/test-close.c2
-rw-r--r--tests/test-connect.c2
-rw-r--r--tests/test-ctype-h.c2
-rw-r--r--tests/test-dup2.c2
-rw-r--r--tests/test-environ.c2
-rw-r--r--tests/test-errno-h.c2
-rw-r--r--tests/test-error.c2
-rw-r--r--tests/test-fcntl-h.c2
-rw-r--r--tests/test-fcntl.c2
-rw-r--r--tests/test-fdopen.c5
-rw-r--r--tests/test-fgetc.c2
-rw-r--r--tests/test-fputc.c2
-rw-r--r--tests/test-fread.c2
-rw-r--r--tests/test-free.c20
-rw-r--r--tests/test-frexp.c2
-rw-r--r--tests/test-frexp.h185
-rw-r--r--tests/test-frexpl.c4
-rw-r--r--tests/test-fseterr.c2
-rw-r--r--tests/test-fstat.c2
-rw-r--r--tests/test-ftruncate.c2
-rw-r--r--tests/test-fwrite.c2
-rw-r--r--tests/test-getcwd-lgpl.c2
-rw-r--r--tests/test-getdtablesize.c2
-rw-r--r--tests/test-getprogname.c2
-rw-r--r--tests/test-gettext-h.c2
-rw-r--r--tests/test-gettimeofday.c2
-rw-r--r--tests/test-hard-locale.c2
-rw-r--r--tests/test-iconv-h.c2
-rw-r--r--tests/test-iconv.c2
-rw-r--r--tests/test-ignore-value.c2
-rw-r--r--tests/test-inet_pton.c2
-rwxr-xr-xtests/test-init.sh2
-rw-r--r--tests/test-intprops.c2
-rw-r--r--tests/test-inttypes-h.c2
-rw-r--r--tests/test-ioctl.c2
-rw-r--r--tests/test-isblank.c6
-rw-r--r--tests/test-isnand-nolibm.c2
-rw-r--r--tests/test-isnand.h2
-rw-r--r--tests/test-isnanf-nolibm.c2
-rw-r--r--tests/test-isnanf.h2
-rw-r--r--tests/test-isnanl-nolibm.c2
-rw-r--r--tests/test-isnanl.h2
-rw-r--r--tests/test-iswblank.c2
-rw-r--r--tests/test-iswdigit.c84
-rw-r--r--tests/test-iswpunct.c134
-rw-r--r--tests/test-iswxdigit.c88
-rw-r--r--tests/test-largefile.c2
-rw-r--r--tests/test-limits-h.c2
-rw-r--r--tests/test-listen.c2
-rw-r--r--tests/test-localcharset-w32utf8.c2
-rw-r--r--tests/test-localcharset.c2
-rw-r--r--tests/test-locale-h.c2
-rw-r--r--tests/test-localeconv-mt.c2
-rw-r--r--tests/test-localeconv.c2
-rw-r--r--tests/test-localename-w32utf8.c2
-rw-r--r--tests/test-localename.c144
-rw-r--r--tests/test-lock.c63
-rw-r--r--tests/test-lstat.c2
-rw-r--r--tests/test-lstat.h2
-rw-r--r--tests/test-malloc-gnu.c2
-rw-r--r--tests/test-malloc-posix.c2
-rw-r--r--tests/test-malloca.c6
-rw-r--r--tests/test-math-h.c2
-rw-r--r--tests/test-mbrtoc32-w32.c8
-rw-r--r--tests/test-mbrtoc32.c8
-rw-r--r--tests/test-mbrtowc-w32.c8
-rw-r--r--tests/test-mbrtowc-w32utf8.c2
-rw-r--r--tests/test-mbrtowc.c8
-rw-r--r--tests/test-mbsinit.c2
-rw-r--r--tests/test-mbsnlen.c2
-rw-r--r--tests/test-memchr.c130
-rw-r--r--tests/test-mkfifo.c2
-rw-r--r--tests/test-mkfifo.h2
-rw-r--r--tests/test-nanosleep.c2
-rw-r--r--tests/test-netinet_in-h.c2
-rw-r--r--tests/test-once.c2
-rw-r--r--tests/test-open.c2
-rw-r--r--tests/test-open.h11
-rw-r--r--tests/test-pathmax.c2
-rw-r--r--tests/test-perror.c2
-rw-r--r--tests/test-perror2.c5
-rw-r--r--tests/test-pipe.c2
-rw-r--r--tests/test-printf-frexp.c2
-rw-r--r--tests/test-printf-frexpl.c4
-rw-r--r--tests/test-pselect.c2
-rw-r--r--tests/test-pthread-cond.c6
-rw-r--r--tests/test-pthread-mutex-type.c2
-rw-r--r--tests/test-pthread-mutex.c28
-rw-r--r--tests/test-pthread-once1.c2
-rw-r--r--tests/test-pthread-once2.c22
-rw-r--r--tests/test-pthread-rwlock.c21
-rw-r--r--tests/test-pthread-thread.c2
-rw-r--r--tests/test-pthread.c2
-rw-r--r--tests/test-pthread_sigmask1.c2
-rw-r--r--tests/test-pthread_sigmask2.c2
-rw-r--r--tests/test-putenv.c2
-rw-r--r--tests/test-raise.c2
-rw-r--r--tests/test-random-mt.c38
-rw-r--r--tests/test-random.c5
-rw-r--r--tests/test-random_r.c10
-rw-r--r--tests/test-realloc-posix.c2
-rw-r--r--tests/test-reallocarray.c2
-rw-r--r--tests/test-rwlock1.c2
-rw-r--r--tests/test-sched-h.c2
-rw-r--r--tests/test-select-fd.c2
-rw-r--r--tests/test-select-stdin.c2
-rw-r--r--tests/test-select.c2
-rw-r--r--tests/test-select.h2
-rw-r--r--tests/test-setenv.c2
-rw-r--r--tests/test-setlocale-w32.c2
-rw-r--r--tests/test-setlocale-w32utf8.c2
-rw-r--r--tests/test-setlocale1.c2
-rw-r--r--tests/test-setlocale2.c2
-rw-r--r--tests/test-setlocale_null-mt-all.c2
-rw-r--r--tests/test-setlocale_null-mt-one.c2
-rw-r--r--tests/test-setlocale_null-unlocked.c2
-rw-r--r--tests/test-setlocale_null.c2
-rw-r--r--tests/test-setsockopt.c2
-rw-r--r--tests/test-signal-h.c2
-rw-r--r--tests/test-signbit.c2
-rw-r--r--tests/test-sigprocmask.c2
-rw-r--r--tests/test-sleep.c2
-rw-r--r--tests/test-sockets.c2
-rw-r--r--tests/test-stat-time.c14
-rw-r--r--tests/test-stat.c2
-rw-r--r--tests/test-stat.h2
-rw-r--r--tests/test-stdckdint-h.c2
-rw-r--r--tests/test-stddef-h.c2
-rw-r--r--tests/test-stdint-h.c2
-rw-r--r--tests/test-stdio-h.c2
-rw-r--r--tests/test-stdlib-h.c2
-rw-r--r--tests/test-str_endswith.c2
-rw-r--r--tests/test-str_startswith.c2
-rw-r--r--tests/test-strerror.c2
-rw-r--r--tests/test-strerror_r.c8
-rw-r--r--tests/test-striconveh.c170
-rw-r--r--tests/test-striconveha.c87
-rw-r--r--tests/test-string-h.c2
-rw-r--r--tests/test-strncat.c2
-rw-r--r--tests/test-strncpy.c122
-rw-r--r--tests/test-strstr.c5
-rw-r--r--tests/test-symlink.c2
-rw-r--r--tests/test-symlink.h2
-rw-r--r--tests/test-sys_ioctl-h.c2
-rw-r--r--tests/test-sys_select-h.c2
-rw-r--r--tests/test-sys_socket-h.c2
-rw-r--r--tests/test-sys_stat-h.c9
-rw-r--r--tests/test-sys_time-h.c2
-rw-r--r--tests/test-sys_types-h.c9
-rw-r--r--tests/test-sys_uio-h.c2
-rw-r--r--tests/test-sys_wait-h.h2
-rw-r--r--tests/test-thread_create.c2
-rw-r--r--tests/test-thread_self.c2
-rw-r--r--tests/test-time-h.c2
-rw-r--r--tests/test-time.c2
-rw-r--r--tests/test-uchar-h.c2
-rw-r--r--tests/test-unistd-h.c2
-rw-r--r--tests/test-unsetenv.c2
-rw-r--r--tests/test-usleep.c2
-rw-r--r--tests/test-verify-try.c2
-rw-r--r--tests/test-verify.c2
-rw-r--r--tests/test-wchar-h.c2
-rw-r--r--tests/test-wcrtomb-w32.c69
-rw-r--r--tests/test-wcrtomb.c66
-rw-r--r--tests/test-wctype-h.c2
-rw-r--r--tests/test-wcwidth.c8
-rw-r--r--tests/test-windows-mutex-type.c2
-rw-r--r--tests/test-windows-recmutex-type.c2
-rw-r--r--tests/test-windows-timedmutex-type.c2
-rw-r--r--tests/test-windows-timedrecmutex-type.c2
-rw-r--r--tests/test-xalloc-die.c2
-rwxr-xr-xtests/test-xalloc-die.sh2
-rw-r--r--tests/time.c6
-rw-r--r--tests/unicase/test-casecmp.h2
-rw-r--r--tests/unicase/test-is-cased.h2
-rw-r--r--tests/unicase/test-is-casefolded.h2
-rw-r--r--tests/unicase/test-is-lowercase.h2
-rw-r--r--tests/unicase/test-is-titlecase.h2
-rw-r--r--tests/unicase/test-is-uppercase.h2
-rw-r--r--tests/unicase/test-locale-language.c2
-rw-r--r--tests/unicase/test-mapping-part1.h2
-rw-r--r--tests/unicase/test-mapping-part2.h5
-rw-r--r--tests/unicase/test-predicate-part1.h2
-rw-r--r--tests/unicase/test-predicate-part2.h5
-rw-r--r--tests/unicase/test-u16-casecmp.c2
-rw-r--r--tests/unicase/test-u16-casecoll.c2
-rw-r--r--tests/unicase/test-u16-casefold.c2
-rw-r--r--tests/unicase/test-u16-is-cased.c2
-rw-r--r--tests/unicase/test-u16-is-casefolded.c2
-rw-r--r--tests/unicase/test-u16-is-lowercase.c2
-rw-r--r--tests/unicase/test-u16-is-titlecase.c2
-rw-r--r--tests/unicase/test-u16-is-uppercase.c2
-rw-r--r--tests/unicase/test-u16-tolower.c2
-rw-r--r--tests/unicase/test-u16-totitle.c2
-rw-r--r--tests/unicase/test-u16-toupper.c2
-rw-r--r--tests/unicase/test-u32-casecmp.c2
-rw-r--r--tests/unicase/test-u32-casecoll.c2
-rw-r--r--tests/unicase/test-u32-casefold.c2
-rw-r--r--tests/unicase/test-u32-is-cased.c2
-rw-r--r--tests/unicase/test-u32-is-casefolded.c2
-rw-r--r--tests/unicase/test-u32-is-lowercase.c2
-rw-r--r--tests/unicase/test-u32-is-titlecase.c2
-rw-r--r--tests/unicase/test-u32-is-uppercase.c2
-rw-r--r--tests/unicase/test-u32-tolower.c2
-rw-r--r--tests/unicase/test-u32-totitle.c2
-rw-r--r--tests/unicase/test-u32-toupper.c2
-rw-r--r--tests/unicase/test-u8-casecmp.c2
-rw-r--r--tests/unicase/test-u8-casecoll.c2
-rw-r--r--tests/unicase/test-u8-casefold.c2
-rw-r--r--tests/unicase/test-u8-is-cased.c2
-rw-r--r--tests/unicase/test-u8-is-casefolded.c2
-rw-r--r--tests/unicase/test-u8-is-lowercase.c2
-rw-r--r--tests/unicase/test-u8-is-titlecase.c2
-rw-r--r--tests/unicase/test-u8-is-uppercase.c2
-rw-r--r--tests/unicase/test-u8-tolower.c2
-rw-r--r--tests/unicase/test-u8-totitle.c2
-rw-r--r--tests/unicase/test-u8-toupper.c2
-rw-r--r--tests/unicase/test-ulc-casecmp.c2
-rw-r--r--tests/unicase/test-ulc-casecoll.c2
-rw-r--r--tests/unicase/test-unicase-h.c2
-rw-r--r--tests/uniconv/test-u16-conv-from-enc.c35
-rw-r--r--tests/uniconv/test-u16-conv-to-enc.c23
-rw-r--r--tests/uniconv/test-u16-strconv-from-enc.c13
-rw-r--r--tests/uniconv/test-u16-strconv-to-enc.c9
-rw-r--r--tests/uniconv/test-u32-conv-from-enc.c35
-rw-r--r--tests/uniconv/test-u32-conv-to-enc.c19
-rw-r--r--tests/uniconv/test-u32-strconv-from-enc.c13
-rw-r--r--tests/uniconv/test-u32-strconv-to-enc.c7
-rw-r--r--tests/uniconv/test-u8-conv-from-enc.c35
-rw-r--r--tests/uniconv/test-u8-conv-to-enc.c23
-rw-r--r--tests/uniconv/test-u8-strconv-from-enc.c13
-rw-r--r--tests/uniconv/test-u8-strconv-to-enc.c9
-rw-r--r--tests/uniconv/test-uniconv-h.c2
-rw-r--r--tests/unictype/test-bidi_byname.c2
-rw-r--r--tests/unictype/test-bidi_longname.c2
-rw-r--r--tests/unictype/test-bidi_name.c2
-rw-r--r--tests/unictype/test-bidi_of.c2
-rw-r--r--tests/unictype/test-bidi_test.c10
-rw-r--r--tests/unictype/test-block_list.c5
-rw-r--r--tests/unictype/test-block_of.c25
-rw-r--r--tests/unictype/test-block_test.c2
-rw-r--r--tests/unictype/test-categ_and.c2
-rw-r--r--tests/unictype/test-categ_and_not.c2
-rw-r--r--tests/unictype/test-categ_byname.c13
-rw-r--r--tests/unictype/test-categ_longname.c2
-rw-r--r--tests/unictype/test-categ_name.c2
-rw-r--r--tests/unictype/test-categ_none.c5
-rw-r--r--tests/unictype/test-categ_of.c19
-rw-r--r--tests/unictype/test-categ_or.c2
-rw-r--r--tests/unictype/test-categ_test_withtable.c2
-rw-r--r--tests/unictype/test-combiningclass.c2
-rw-r--r--tests/unictype/test-combiningclass_byname.c2
-rw-r--r--tests/unictype/test-combiningclass_longname.c2
-rw-r--r--tests/unictype/test-combiningclass_name.c2
-rw-r--r--tests/unictype/test-decdigit.c5
-rw-r--r--tests/unictype/test-digit.c5
-rw-r--r--tests/unictype/test-incb_byname.c2
-rw-r--r--tests/unictype/test-incb_name.c2
-rw-r--r--tests/unictype/test-incb_of.c5
-rw-r--r--tests/unictype/test-joininggroup_byname.c2
-rw-r--r--tests/unictype/test-joininggroup_name.c2
-rw-r--r--tests/unictype/test-joininggroup_of.c5
-rw-r--r--tests/unictype/test-joiningtype_byname.c2
-rw-r--r--tests/unictype/test-joiningtype_longname.c2
-rw-r--r--tests/unictype/test-joiningtype_name.c2
-rw-r--r--tests/unictype/test-joiningtype_of.c5
-rw-r--r--tests/unictype/test-mirror.c2
-rw-r--r--tests/unictype/test-numeric.c5
-rw-r--r--tests/unictype/test-pr_byname.c5
-rw-r--r--tests/unictype/test-pr_test.c5
-rw-r--r--tests/unictype/test-predicate-part1.h2
-rw-r--r--tests/unictype/test-predicate-part2.h5
-rw-r--r--tests/unictype/test-scripts.c21
-rw-r--r--tests/unictype/test-sy_c_ident.c2
-rw-r--r--tests/unictype/test-sy_java_ident.c2
-rw-r--r--tests/unictype/test-unictype-h.c2
-rw-r--r--tests/unigbrk/test-u16-grapheme-breaks.c15
-rw-r--r--tests/unigbrk/test-u16-grapheme-next.c6
-rw-r--r--tests/unigbrk/test-u16-grapheme-prev.c6
-rw-r--r--tests/unigbrk/test-u32-grapheme-breaks.c15
-rw-r--r--tests/unigbrk/test-u32-grapheme-next.c6
-rw-r--r--tests/unigbrk/test-u32-grapheme-prev.c6
-rw-r--r--tests/unigbrk/test-u8-grapheme-breaks.c13
-rw-r--r--tests/unigbrk/test-u8-grapheme-next.c6
-rw-r--r--tests/unigbrk/test-u8-grapheme-prev.c6
-rw-r--r--tests/unigbrk/test-uc-gbrk-prop.c5
-rw-r--r--tests/unigbrk/test-uc-grapheme-breaks.c13
-rw-r--r--tests/unigbrk/test-uc-is-grapheme-break.c2
-rw-r--r--tests/unigbrk/test-ulc-grapheme-breaks.c13
-rw-r--r--tests/unigbrk/test-unigbrk-h.c2
-rw-r--r--tests/unilbrk/test-u16-possible-linebreaks.c35
-rw-r--r--tests/unilbrk/test-u16-width-linebreaks.c8
-rw-r--r--tests/unilbrk/test-u32-possible-linebreaks.c35
-rw-r--r--tests/unilbrk/test-u32-width-linebreaks.c8
-rw-r--r--tests/unilbrk/test-u8-possible-linebreaks.c35
-rw-r--r--tests/unilbrk/test-u8-width-linebreaks.c8
-rw-r--r--tests/unilbrk/test-uc-possible-linebreaks.c111
-rw-r--r--tests/unilbrk/test-ulc-possible-linebreaks.c8
-rw-r--r--tests/unilbrk/test-ulc-width-linebreaks.c5
-rw-r--r--tests/unilbrk/test-unilbrk-h.c2
-rw-r--r--tests/unimetadata/test-u-version.c2
-rw-r--r--tests/unimetadata/test-unimetadata-h.c2
-rw-r--r--tests/uniname/test-uniname-h.c2
-rw-r--r--tests/uniname/test-uninames.c27
-rw-r--r--tests/uninorm/test-canonical-decomposition.c2
-rw-r--r--tests/uninorm/test-compat-decomposition.c2
-rw-r--r--tests/uninorm/test-composition.c2
-rw-r--r--tests/uninorm/test-decomposing-form.c2
-rw-r--r--tests/uninorm/test-decomposition.c2
-rw-r--r--tests/uninorm/test-nfc.c2
-rw-r--r--tests/uninorm/test-nfd.c2
-rw-r--r--tests/uninorm/test-nfkc.c2
-rw-r--r--tests/uninorm/test-nfkd.c2
-rw-r--r--tests/uninorm/test-u16-nfc.c124
-rw-r--r--tests/uninorm/test-u16-nfd.c118
-rw-r--r--tests/uninorm/test-u16-nfkc.c124
-rw-r--r--tests/uninorm/test-u16-nfkd.c118
-rw-r--r--tests/uninorm/test-u16-normcmp.c2
-rw-r--r--tests/uninorm/test-u16-normcmp.h2
-rw-r--r--tests/uninorm/test-u16-normcoll.c2
-rw-r--r--tests/uninorm/test-u32-nfc-big.c2
-rw-r--r--tests/uninorm/test-u32-nfc.c124
-rw-r--r--tests/uninorm/test-u32-nfd-big.c2
-rw-r--r--tests/uninorm/test-u32-nfd.c118
-rw-r--r--tests/uninorm/test-u32-nfkc-big.c2
-rw-r--r--tests/uninorm/test-u32-nfkc.c124
-rw-r--r--tests/uninorm/test-u32-nfkd-big.c2
-rw-r--r--tests/uninorm/test-u32-nfkd.c118
-rw-r--r--tests/uninorm/test-u32-normalize-big.c35
-rw-r--r--tests/uninorm/test-u32-normalize-big.h2
-rw-r--r--tests/uninorm/test-u32-normcmp.c2
-rw-r--r--tests/uninorm/test-u32-normcmp.h2
-rw-r--r--tests/uninorm/test-u32-normcoll.c2
-rw-r--r--tests/uninorm/test-u8-nfc.c176
-rw-r--r--tests/uninorm/test-u8-nfd.c168
-rw-r--r--tests/uninorm/test-u8-nfkc.c176
-rw-r--r--tests/uninorm/test-u8-nfkd.c168
-rw-r--r--tests/uninorm/test-u8-normcmp.c2
-rw-r--r--tests/uninorm/test-u8-normcmp.h2
-rw-r--r--tests/uninorm/test-u8-normcoll.c2
-rw-r--r--tests/uninorm/test-uninorm-filter-nfc.c5
-rw-r--r--tests/uninorm/test-uninorm-h.c2
-rw-r--r--tests/unistdio/test-u16-asnprintf1.c2
-rw-r--r--tests/unistdio/test-u16-asnprintf1.h7
-rw-r--r--tests/unistdio/test-u16-printf1.h2
-rw-r--r--tests/unistdio/test-u16-vasnprintf1.c2
-rw-r--r--tests/unistdio/test-u16-vasnprintf2.c2
-rw-r--r--tests/unistdio/test-u16-vasnprintf3.c2
-rw-r--r--tests/unistdio/test-u16-vasprintf1.c2
-rw-r--r--tests/unistdio/test-u16-vsnprintf1.c2
-rw-r--r--tests/unistdio/test-u16-vsprintf1.c2
-rw-r--r--tests/unistdio/test-u32-asnprintf1.c2
-rw-r--r--tests/unistdio/test-u32-asnprintf1.h7
-rw-r--r--tests/unistdio/test-u32-printf1.h2
-rw-r--r--tests/unistdio/test-u32-vasnprintf1.c2
-rw-r--r--tests/unistdio/test-u32-vasnprintf2.c2
-rw-r--r--tests/unistdio/test-u32-vasnprintf3.c2
-rw-r--r--tests/unistdio/test-u32-vasprintf1.c2
-rw-r--r--tests/unistdio/test-u32-vsnprintf1.c2
-rw-r--r--tests/unistdio/test-u32-vsprintf1.c2
-rw-r--r--tests/unistdio/test-u8-asnprintf1.c2
-rw-r--r--tests/unistdio/test-u8-asnprintf1.h7
-rw-r--r--tests/unistdio/test-u8-printf1.h2
-rw-r--r--tests/unistdio/test-u8-vasnprintf1.c2
-rw-r--r--tests/unistdio/test-u8-vasnprintf2.c2
-rw-r--r--tests/unistdio/test-u8-vasnprintf3.c2
-rw-r--r--tests/unistdio/test-u8-vasprintf1.c2
-rw-r--r--tests/unistdio/test-u8-vsnprintf1.c2
-rw-r--r--tests/unistdio/test-u8-vsprintf1.c2
-rw-r--r--tests/unistdio/test-ulc-asnprintf1.c2
-rw-r--r--tests/unistdio/test-ulc-asnprintf1.h7
-rw-r--r--tests/unistdio/test-ulc-printf1.h2
-rw-r--r--tests/unistdio/test-ulc-vasnprintf1.c2
-rw-r--r--tests/unistdio/test-ulc-vasnprintf2.c2
-rw-r--r--tests/unistdio/test-ulc-vasnprintf3.c2
-rw-r--r--tests/unistdio/test-ulc-vasprintf1.c2
-rw-r--r--tests/unistdio/test-ulc-vsnprintf1.c2
-rw-r--r--tests/unistdio/test-ulc-vsprintf1.c2
-rw-r--r--tests/unistdio/test-unistdio-h.c2
-rw-r--r--tests/unistr/test-chr.h42
-rw-r--r--tests/unistr/test-cmp.h14
-rw-r--r--tests/unistr/test-cmp2.h2
-rw-r--r--tests/unistr/test-cpy-alloc.h8
-rw-r--r--tests/unistr/test-cpy.h8
-rw-r--r--tests/unistr/test-move.h56
-rw-r--r--tests/unistr/test-pcpy.h8
-rw-r--r--tests/unistr/test-set.h33
-rw-r--r--tests/unistr/test-stpcpy.h8
-rw-r--r--tests/unistr/test-stpncpy.h24
-rw-r--r--tests/unistr/test-strcat.h15
-rw-r--r--tests/unistr/test-strchr.h47
-rw-r--r--tests/unistr/test-strcmp.h2
-rw-r--r--tests/unistr/test-strcpy.h8
-rw-r--r--tests/unistr/test-strdup.h8
-rw-r--r--tests/unistr/test-strncat.h31
-rw-r--r--tests/unistr/test-strncmp.h2
-rw-r--r--tests/unistr/test-strncpy.h24
-rw-r--r--tests/unistr/test-strnlen.h10
-rw-r--r--tests/unistr/test-u-strstr.h15
-rw-r--r--tests/unistr/test-u-strtok.h2
-rw-r--r--tests/unistr/test-u16-check.c2
-rw-r--r--tests/unistr/test-u16-chr.c2
-rw-r--r--tests/unistr/test-u16-cmp.c2
-rw-r--r--tests/unistr/test-u16-cmp2.c2
-rw-r--r--tests/unistr/test-u16-cpy-alloc.c2
-rw-r--r--tests/unistr/test-u16-cpy.c2
-rw-r--r--tests/unistr/test-u16-mblen.c5
-rw-r--r--tests/unistr/test-u16-mbsnlen.c8
-rw-r--r--tests/unistr/test-u16-mbtouc-unsafe.c2
-rw-r--r--tests/unistr/test-u16-mbtouc.c2
-rw-r--r--tests/unistr/test-u16-mbtouc.h5
-rw-r--r--tests/unistr/test-u16-mbtoucr.c5
-rw-r--r--tests/unistr/test-u16-move.c2
-rw-r--r--tests/unistr/test-u16-next.c5
-rw-r--r--tests/unistr/test-u16-pcpy.c2
-rw-r--r--tests/unistr/test-u16-prev.c17
-rw-r--r--tests/unistr/test-u16-set.c2
-rw-r--r--tests/unistr/test-u16-stpcpy.c2
-rw-r--r--tests/unistr/test-u16-stpncpy.c2
-rw-r--r--tests/unistr/test-u16-strcat.c2
-rw-r--r--tests/unistr/test-u16-strchr.c2
-rw-r--r--tests/unistr/test-u16-strcmp.c2
-rw-r--r--tests/unistr/test-u16-strcmp.h2
-rw-r--r--tests/unistr/test-u16-strcoll.c2
-rw-r--r--tests/unistr/test-u16-strcpy.c2
-rw-r--r--tests/unistr/test-u16-strdup.c2
-rw-r--r--tests/unistr/test-u16-strlen.c2
-rw-r--r--tests/unistr/test-u16-strmblen.c5
-rw-r--r--tests/unistr/test-u16-strmbtouc.c5
-rw-r--r--tests/unistr/test-u16-strncat.c2
-rw-r--r--tests/unistr/test-u16-strncmp.c2
-rw-r--r--tests/unistr/test-u16-strncpy.c2
-rw-r--r--tests/unistr/test-u16-strnlen.c2
-rw-r--r--tests/unistr/test-u16-strstr.c2
-rw-r--r--tests/unistr/test-u16-strtok.c2
-rw-r--r--tests/unistr/test-u16-to-u32.c2
-rw-r--r--tests/unistr/test-u16-to-u8.c2
-rw-r--r--tests/unistr/test-u16-uctomb.c36
-rw-r--r--tests/unistr/test-u32-check.c2
-rw-r--r--tests/unistr/test-u32-chr.c2
-rw-r--r--tests/unistr/test-u32-cmp.c2
-rw-r--r--tests/unistr/test-u32-cmp2.c2
-rw-r--r--tests/unistr/test-u32-cpy-alloc.c2
-rw-r--r--tests/unistr/test-u32-cpy.c2
-rw-r--r--tests/unistr/test-u32-mblen.c5
-rw-r--r--tests/unistr/test-u32-mbsnlen.c8
-rw-r--r--tests/unistr/test-u32-mbtouc-unsafe.c2
-rw-r--r--tests/unistr/test-u32-mbtouc.c2
-rw-r--r--tests/unistr/test-u32-mbtouc.h5
-rw-r--r--tests/unistr/test-u32-mbtoucr.c5
-rw-r--r--tests/unistr/test-u32-move.c2
-rw-r--r--tests/unistr/test-u32-next.c5
-rw-r--r--tests/unistr/test-u32-pcpy.c2
-rw-r--r--tests/unistr/test-u32-prev.c11
-rw-r--r--tests/unistr/test-u32-set.c2
-rw-r--r--tests/unistr/test-u32-stpcpy.c2
-rw-r--r--tests/unistr/test-u32-stpncpy.c2
-rw-r--r--tests/unistr/test-u32-strcat.c2
-rw-r--r--tests/unistr/test-u32-strchr.c2
-rw-r--r--tests/unistr/test-u32-strcmp.c2
-rw-r--r--tests/unistr/test-u32-strcmp.h2
-rw-r--r--tests/unistr/test-u32-strcoll.c2
-rw-r--r--tests/unistr/test-u32-strcpy.c2
-rw-r--r--tests/unistr/test-u32-strdup.c2
-rw-r--r--tests/unistr/test-u32-strlen.c2
-rw-r--r--tests/unistr/test-u32-strmblen.c5
-rw-r--r--tests/unistr/test-u32-strmbtouc.c5
-rw-r--r--tests/unistr/test-u32-strncat.c2
-rw-r--r--tests/unistr/test-u32-strncmp.c2
-rw-r--r--tests/unistr/test-u32-strncpy.c2
-rw-r--r--tests/unistr/test-u32-strnlen.c2
-rw-r--r--tests/unistr/test-u32-strstr.c2
-rw-r--r--tests/unistr/test-u32-strtok.c2
-rw-r--r--tests/unistr/test-u32-to-u16.c2
-rw-r--r--tests/unistr/test-u32-to-u8.c2
-rw-r--r--tests/unistr/test-u32-uctomb.c36
-rw-r--r--tests/unistr/test-u8-check.c2
-rw-r--r--tests/unistr/test-u8-chr.c2
-rw-r--r--tests/unistr/test-u8-cmp.c2
-rw-r--r--tests/unistr/test-u8-cmp2.c2
-rw-r--r--tests/unistr/test-u8-cpy-alloc.c2
-rw-r--r--tests/unistr/test-u8-cpy.c2
-rw-r--r--tests/unistr/test-u8-mblen.c5
-rw-r--r--tests/unistr/test-u8-mbsnlen.c8
-rw-r--r--tests/unistr/test-u8-mbtouc-unsafe.c2
-rw-r--r--tests/unistr/test-u8-mbtouc.c5
-rw-r--r--tests/unistr/test-u8-mbtouc.h5
-rw-r--r--tests/unistr/test-u8-mbtoucr.c5
-rw-r--r--tests/unistr/test-u8-move.c2
-rw-r--r--tests/unistr/test-u8-next.c5
-rw-r--r--tests/unistr/test-u8-pcpy.c2
-rw-r--r--tests/unistr/test-u8-prev.c29
-rw-r--r--tests/unistr/test-u8-set.c2
-rw-r--r--tests/unistr/test-u8-stpcpy.c2
-rw-r--r--tests/unistr/test-u8-stpncpy.c2
-rw-r--r--tests/unistr/test-u8-strcat.c2
-rw-r--r--tests/unistr/test-u8-strchr.c2
-rw-r--r--tests/unistr/test-u8-strcmp.c2
-rw-r--r--tests/unistr/test-u8-strcmp.h2
-rw-r--r--tests/unistr/test-u8-strcoll.c2
-rw-r--r--tests/unistr/test-u8-strcpy.c2
-rw-r--r--tests/unistr/test-u8-strdup.c2
-rw-r--r--tests/unistr/test-u8-strlen.c2
-rw-r--r--tests/unistr/test-u8-strmblen.c5
-rw-r--r--tests/unistr/test-u8-strmbtouc.c5
-rw-r--r--tests/unistr/test-u8-strncat.c2
-rw-r--r--tests/unistr/test-u8-strncmp.c2
-rw-r--r--tests/unistr/test-u8-strncpy.c2
-rw-r--r--tests/unistr/test-u8-strnlen.c2
-rw-r--r--tests/unistr/test-u8-strstr.c2
-rw-r--r--tests/unistr/test-u8-strtok.c2
-rw-r--r--tests/unistr/test-u8-to-u16.c2
-rw-r--r--tests/unistr/test-u8-to-u32.c2
-rw-r--r--tests/unistr/test-u8-uctomb.c36
-rw-r--r--tests/unistr/test-unistr-h.c2
-rw-r--r--tests/uniwbrk/test-u16-wordbreaks.c14
-rw-r--r--tests/uniwbrk/test-u32-wordbreaks.c14
-rw-r--r--tests/uniwbrk/test-u8-wordbreaks.c14
-rw-r--r--tests/uniwbrk/test-uc-wordbreaks.c8
-rw-r--r--tests/uniwbrk/test-ulc-wordbreaks.c5
-rw-r--r--tests/uniwbrk/test-uniwbrk-h.c2
-rw-r--r--tests/uniwidth/test-u16-strwidth.c2
-rw-r--r--tests/uniwidth/test-u16-width.c2
-rw-r--r--tests/uniwidth/test-u32-strwidth.c2
-rw-r--r--tests/uniwidth/test-u32-width.c2
-rw-r--r--tests/uniwidth/test-u8-strwidth.c2
-rw-r--r--tests/uniwidth/test-u8-width.c2
-rw-r--r--tests/uniwidth/test-uc_width.c6
-rw-r--r--tests/uniwidth/test-uc_width2.c6
-rw-r--r--tests/uniwidth/test-uniwidth-h.c2
-rw-r--r--tests/unsetenv.c11
-rw-r--r--tests/usleep.c2
-rw-r--r--tests/verify.h2
-rw-r--r--tests/virtualbox.h8
-rw-r--r--tests/w32sock.h2
-rw-r--r--tests/warn-on-use.h2
-rw-r--r--tests/wcrtomb.c2
-rw-r--r--tests/wctob.c2
-rw-r--r--tests/wctomb-impl.h7
-rw-r--r--tests/wctomb.c2
-rw-r--r--tests/windows-cond.c62
-rw-r--r--tests/windows-cond.h2
-rw-r--r--tests/windows-initguard.h2
-rw-r--r--tests/windows-thread.c10
-rw-r--r--tests/windows-thread.h2
-rw-r--r--tests/windows-timedmutex.c8
-rw-r--r--tests/windows-timedmutex.h2
-rw-r--r--tests/windows-timedrecmutex.c8
-rw-r--r--tests/windows-timedrecmutex.h2
-rw-r--r--tests/windows-timedrwlock.c49
-rw-r--r--tests/windows-timedrwlock.h2
-rw-r--r--tests/windows-tls.c15
-rw-r--r--tests/windows-tls.h2
-rw-r--r--tests/xalloc-die.c2
-rw-r--r--tests/xalloc.h2
-rw-r--r--tests/xconcat-filename.c6
-rw-r--r--tests/xgetcwd.c2
-rw-r--r--tests/xgetcwd.h2
-rw-r--r--tests/xmalloc.c28
-rw-r--r--tests/zerosize-ptr.h2
-rw-r--r--version.sh6
1818 files changed, 10794 insertions, 10739 deletions
diff --git a/ChangeLog b/ChangeLog
index 0139c397..780b340d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,28 @@
+2026-02-24 Bruno Haible <bruno@clisp.org>
+
+ Prepare for 1.4.2 release.
+ * version.sh: Bump version number, date, gnulib version.
+ * README: Update version.
+ * NEWS: Update.
+
+2025-12-29 Bruno Haible <bruno@clisp.org>
+
+ Sync with gnulib.
+ * lib/unistring/cdefs.h: Update from gnulib/m4/gnulib-common.m4.
+ (_GL_UNNAMED): New macro.
+ (_UC_UNNAMED): Apply
+ 2025-12-23 Paul Eggert <eggert@cs.ucla.edu>
+ New C macro _GL_UNNAMED
+
+2025-10-08 Bruno Haible <bruno@clisp.org>
+
+ Make the generated <unistring/stdint.h> more usable in C++ mode.
+ Reported by Daniel Collins <solemnwarning@solemnwarning.net>
+ at <https://savannah.gnu.org/bugs/?67590>.
+
+ * lib/Makefile.am (unistring/stdint.h): In C++ 11 or newer mode, just use
+ <cstdint>.
+
2025-10-05 Bruno Haible <bruno@clisp.org>
Prepare for 1.4.1 release.
diff --git a/Makefile.in b/Makefile.in
index c082a5e6..2e07c4aa 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -168,6 +168,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 \
@@ -268,6 +269,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 \
@@ -682,13 +684,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@
@@ -836,6 +841,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@
@@ -917,6 +923,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@
@@ -944,8 +951,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@
@@ -1460,6 +1469,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@
@@ -1617,6 +1627,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@
@@ -1717,6 +1728,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@
@@ -2162,6 +2174,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@
@@ -2181,6 +2194,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@
diff --git a/NEWS b/NEWS
index 97356643..e97ee06e 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,6 @@
+New in 1.4.2:
+* Fixed a build failure on systems with glibc 2.43.
+
New in 1.4.1:
* Fixed a compilation error in C++ mode.
diff --git a/README b/README
index c9b0043b..1368eb52 100644
--- a/README
+++ b/README
@@ -69,7 +69,7 @@ The documentation is under another license; see in the documentation.
Download
--------
- https://ftp.gnu.org/gnu/libunistring/libunistring-1.4.1.tar.gz
+ https://ftp.gnu.org/gnu/libunistring/libunistring-1.4.2.tar.gz
Homepage
--------
diff --git a/aclocal.m4 b/aclocal.m4
index c566de59..4c3a6702 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1429,6 +1429,7 @@ m4_include([gnulib-m4/ldexpl.m4])
m4_include([gnulib-m4/lib-ld.m4])
m4_include([gnulib-m4/lib-link.m4])
m4_include([gnulib-m4/lib-prefix.m4])
+m4_include([gnulib-m4/libdl.m4])
m4_include([gnulib-m4/libunistring-base.m4])
m4_include([gnulib-m4/limits-h.m4])
m4_include([gnulib-m4/localcharset.m4])
@@ -1529,6 +1530,7 @@ m4_include([gnulib-m4/strerror_r.m4])
m4_include([gnulib-m4/string_h.m4])
m4_include([gnulib-m4/stringeq.m4])
m4_include([gnulib-m4/strncat.m4])
+m4_include([gnulib-m4/strncpy.m4])
m4_include([gnulib-m4/strstr.m4])
m4_include([gnulib-m4/symlink.m4])
m4_include([gnulib-m4/sys_cdefs_h.m4])
diff --git a/build-aux/config.rpath b/build-aux/config.rpath
index 51b6aef7..1119d6ab 100755
--- a/build-aux/config.rpath
+++ b/build-aux/config.rpath
@@ -3,7 +3,7 @@
# run time search path of shared libraries in a binary (executable or
# shared library).
#
-# Copyright 1996-2025 Free Software Foundation, Inc.
+# Copyright 1996-2026 Free Software Foundation, Inc.
# Taken from GNU libtool, 2001
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
@@ -49,7 +49,7 @@ Send patches and bug reports to <bug-gnulib@gnu.org>."
func_version ()
{
echo "config.rpath (GNU gnulib, module havelib)"
- echo "Copyright (C) 2025 Free Software Foundation, Inc.
+ echo "Copyright (C) 2026 Free Software Foundation, Inc.
License: All-Permissive.
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/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog
index 0c751f95..134833a9 100755
--- a/build-aux/gitlog-to-changelog
+++ b/build-aux/gitlog-to-changelog
@@ -3,7 +3,7 @@
# Convert git log output to ChangeLog format.
-# Copyright (C) 2008-2025 Free Software Foundation, Inc.
+# Copyright (C) 2008-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
diff --git a/build-aux/run-test b/build-aux/run-test
index 53167320..ab827f07 100755
--- a/build-aux/run-test
+++ b/build-aux/run-test
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# 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 General Public License as published by
@@ -50,7 +50,7 @@ func_version ()
{
echo "\
run-test (GNU gnulib)
-Copyright (C) 2024-2025 Free Software Foundation, Inc.
+Copyright (C) 2024-2026 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law."
diff --git a/config.h.in b/config.h.in
index 95253425..cc277415 100644
--- a/config.h.in
+++ b/config.h.in
@@ -475,8 +475,8 @@
/* Define to 1 when the gnulib module setsockopt should be tested. */
#undef GNULIB_TEST_SETSOCKOPT
-/* Define to 1 when the gnulib module signbit should be tested. */
-#undef GNULIB_TEST_SIGNBIT
+/* Define to 1 when the gnulib module signbit-no-cxx should be tested. */
+#undef GNULIB_TEST_SIGNBIT_NO_CXX
/* Define to 1 when the gnulib module sigprocmask should be tested. */
#undef GNULIB_TEST_SIGPROCMASK
@@ -505,6 +505,9 @@
/* Define to 1 when the gnulib module strncat should be tested. */
#undef GNULIB_TEST_STRNCAT
+/* Define to 1 when the gnulib module strncpy should be tested. */
+#undef GNULIB_TEST_STRNCPY
+
/* Define to 1 when the gnulib module strstr should be tested. */
#undef GNULIB_TEST_STRSTR
@@ -868,6 +871,9 @@
*/
#undef HAVE_DECL___ARGV
+/* Define to 1 if dladdr exists and is defined in libc. */
+#undef HAVE_DLADDR_IN_LIBC
+
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
@@ -1008,7 +1014,7 @@
/* Define to 1 if malloc (0) returns nonnull. */
#undef HAVE_MALLOC_0_NONNULL
-/* Define if malloc, realloc, and calloc set errno on allocation failure. */
+/* Define if malloc and calloc set errno on allocation failure. */
#undef HAVE_MALLOC_POSIX
/* Define to 1 if malloc-like functions do not allocate objects larger than
@@ -1114,6 +1120,9 @@
/* Define to 1 if realloc (..., 0) returns nonnull. */
#undef HAVE_REALLOC_0_NONNULL
+/* Define if realloc sets errno on allocation failure. */
+#undef HAVE_REALLOC_POSIX
+
/* Define to 1 if 'long double' and 'double' have the same representation. */
#undef HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
@@ -1265,6 +1274,9 @@
/* Define to 1 if you have the <sys/param.h> header file. */
#undef HAVE_SYS_PARAM_H
+/* Define to 1 if you have the <sys/process.h> header file. */
+#undef HAVE_SYS_PROCESS_H
+
/* Define to 1 if you have the <sys/select.h> header file. */
#undef HAVE_SYS_SELECT_H
@@ -1328,6 +1340,9 @@
/* Define if you have a global __progname variable */
#undef HAVE_VAR___PROGNAME
+/* Define to 1 if you have the 'vasprintf' function. */
+#undef HAVE_VASPRINTF
+
/* Define to 1 or 0, depending whether the compiler supports simple visibility
declarations. */
#undef HAVE_VISIBILITY
@@ -1427,7 +1442,7 @@
if isdigit is mistakenly implemented via a static inline function,
a program containing an extern inline function that calls isdigit
may not work since C99 through C23 prohibit extern inline functions
- from calling static functions (ISO C 23 section 6.7.5.(2)).
+ from calling static functions (ISO C 23 § 6.7.5 ¶ 3)).
Although a future C standard will likely relax this restriction
<https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3622.txt>,
respect it for now. This bug is known to occur on:
@@ -2385,22 +2400,25 @@
#endif
/* _GL_ATTRIBUTE_CONST declares:
- 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 _GL_ATTRIBUTE_PURE because the
- function cannot observe state. It is stricter than
- _GL_ATTRIBUTE_UNSEQUENCED because the function must return exactly
- once and cannot depend on state addressed by its arguments.) */
+ 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. */
#ifndef _GL_ATTRIBUTE_CONST
# if _GL_HAS_ATTRIBUTE (const)
# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
# else
-# define _GL_ATTRIBUTE_CONST _GL_ATTRIBUTE_UNSEQUENCED
+# define _GL_ATTRIBUTE_CONST
# endif
#endif
@@ -2561,7 +2579,9 @@
/* _GL_ATTRIBUTE_MAYBE_UNUSED declares that it is not a programming mistake if
the entity is not used. The compiler should not warn if the entity is not
- used. */
+ used. However, 'int _GL_UNNAMED (i)' is preferable to
+ '_GL_ATTRIBUTE_MAYBE_UNUSED int i' when parameter I is unused
+ regardless of preprocessor macro settings. */
/* Applies to:
- function, variable,
- struct, union, struct/union member,
@@ -2715,39 +2735,40 @@
#endif
/* _GL_ATTRIBUTE_PURE declares:
- 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.
+ 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. It is stricter than
- _GL_ATTRIBUTE_REPRODUCIBLE because the function must return exactly
- once and cannot affect state addressed by its arguments.) */
+ 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. */
#ifndef _GL_ATTRIBUTE_PURE
# if _GL_HAS_ATTRIBUTE (pure)
# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
# else
-# define _GL_ATTRIBUTE_PURE _GL_ATTRIBUTE_REPRODUCIBLE
+# define _GL_ATTRIBUTE_PURE
# endif
#endif
/* _GL_ATTRIBUTE_REPRODUCIBLE declares:
- 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.
+ 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 and idempotent. It is looser
- than _GL_ATTRIBUTE_PURE because the function need not return
- exactly once and can affect state addressed by its arguments.)
+ the function need not be stateless or independent.
+ Unlike _GL_ATTRIBUTE_PURE the function need not return exactly once
+ and can change state addressed by its pointer arguments, but the
+ function cannot return a pointer to storage whose contents change later.)
See also <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2956.htm> and
- <https://stackoverflow.com/questions/76847905/>.
- ATTENTION! Efforts are underway to change the meaning of this attribute.
- See <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3424.htm>. */
+ <https://stackoverflow.com/questions/76847905/>. */
/* Applies to: functions, pointer to functions, function types. */
#ifndef _GL_ATTRIBUTE_REPRODUCIBLE
/* This may be revisited when gcc and clang support [[reproducible]] or possibly
@@ -2787,20 +2808,22 @@
#endif
/* _GL_ATTRIBUTE_UNSEQUENCED declares:
- 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 _GL_ATTRIBUTE_REPRODUCIBLE because
- the function must be stateless and independent. It is looser than
- _GL_ATTRIBUTE_CONST because the function need not return exactly
- once and can depend on state addressed by its arguments.)
+ the function must be stateless and independent. Unlike
+ _GL_ATTRIBUTE_CONST the function need not return exactly once, and
+ can depend on state accessed via its pointer arguments or that
+ happens to have the same value for all calls to the function, but
+ the function cannot return a pointer to storage whose contents
+ change later.)
See also <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2956.htm> and
- <https://stackoverflow.com/questions/76847905/>.
- ATTENTION! Efforts are underway to change the meaning of this attribute.
- See <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3424.htm>. */
+ <https://stackoverflow.com/questions/76847905/>. */
/* Applies to: functions, pointer to functions, function types. */
#ifndef _GL_ATTRIBUTE_UNSEQUENCED
/* This may be revisited when gcc and clang support [[unsequenced]] or possibly
@@ -2839,6 +2862,21 @@
# endif
#endif
+/* _GL_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. */
+#ifndef _GL_UNNAMED
+# if ((defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 202311 \
+ && !defined __cplusplus)
+# define _GL_UNNAMED(id) unnamed_##id _GL_ATTRIBUTE_UNUSED
+# else
+# define _GL_UNNAMED(id)
+# endif
+#endif
+
/* The following attributes enable detection of multithread-safety problems
and resource leaks at compile-time, by clang ≥ 15, when the warning option
-Wthread-safety is enabled. For usage, see
@@ -2992,8 +3030,8 @@
References:
ISO C23 (latest free draft
- <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf>)
- sections 6.5.3.4, 6.7.5, 7.15.
+ <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf>)
+ sections 6.2.8, 6.7.6.
C++11 (latest free draft
<https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf>)
section 18.10. */
diff --git a/configure b/configure
index 9ef1634a..8f46ff1e 100755
--- a/configure
+++ b/configure
@@ -723,12 +723,12 @@ GL_COND_OBJ_STRERROR_FALSE
GL_COND_OBJ_STRERROR_TRUE
GL_COND_OBJ_STPCPY_FALSE
GL_COND_OBJ_STPCPY_TRUE
+GL_COND_OBJ_STDIO_CONSOLESAFE_FALSE
+GL_COND_OBJ_STDIO_CONSOLESAFE_TRUE
GL_COND_OBJ_STDIO_WRITE_FALSE
GL_COND_OBJ_STDIO_WRITE_TRUE
GL_COND_OBJ_STDIO_READ_FALSE
GL_COND_OBJ_STDIO_READ_TRUE
-GL_COND_OBJ_STDIO_CONSOLESAFE_FALSE
-GL_COND_OBJ_STDIO_CONSOLESAFE_TRUE
NEXT_AS_FIRST_DIRECTIVE_STDIO_H
NEXT_STDIO_H
GL_COND_OBJ_STAT_FALSE
@@ -2621,6 +2621,8 @@ HAVE_OFF64_T
WINDOWS_64_BIT_OFF_T
NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H
NEXT_SYS_TYPES_H
+GL_COND_OBJ_STRNCPY_FALSE
+GL_COND_OBJ_STRNCPY_TRUE
GL_COND_OBJ_STRNCAT_FALSE
GL_COND_OBJ_STRNCAT_TRUE
NEXT_AS_FIRST_DIRECTIVE_STRING_H
@@ -2657,6 +2659,7 @@ NEXT_SCHED_H
HAVE_SYS_CDEFS_H
REPLACE_SCHED_YIELD
HAVE_SCHED_YIELD
+LIBDL
reloc_final_prefix_c_make
reloc_final_prefix_c
RELOCATABLE
@@ -2797,6 +2800,7 @@ REPLACE_STRCASESTR
REPLACE_STRSTR
REPLACE_STRNLEN
REPLACE_STRNDUP
+REPLACE_STRNCPY
REPLACE_STRNCAT
REPLACE_STRDUP
REPLACE_STRCHRNUL
@@ -2863,6 +2867,7 @@ GL_GNULIB_MBSNLEN
GL_GNULIB_MBSLEN
GL_GNULIB_STR_ENDSWITH
GL_GNULIB_STR_STARTSWITH
+GL_GNULIB_STRNUL
GL_GNULIB_STRTOK_R
GL_GNULIB_STRCASESTR
GL_GNULIB_STRSTR
@@ -2870,6 +2875,7 @@ GL_GNULIB_STRSEP
GL_GNULIB_STRPBRK
GL_GNULIB_STRNLEN
GL_GNULIB_STRNDUP
+GL_GNULIB_STRNCPY
GL_GNULIB_STRNCAT
GL_GNULIB_STRINGEQ
GL_GNULIB_STRDUP
@@ -3121,6 +3127,7 @@ GL_GNULIB_SQRTF
GL_GNULIB_SINHF
GL_GNULIB_SINL
GL_GNULIB_SINF
+GL_GNULIB_SIGNBIT_NO_CXX
GL_GNULIB_SIGNBIT
GL_GNULIB_SETPAYLOADSIGL
GL_GNULIB_SETPAYLOADSIGF
@@ -3165,8 +3172,11 @@ GL_GNULIB_LDEXP
GL_GNULIB_ISNANL
GL_GNULIB_ISNAND
GL_GNULIB_ISNANF
+GL_GNULIB_ISNAN_NO_CXX
GL_GNULIB_ISNAN
+GL_GNULIB_ISINF_NO_CXX
GL_GNULIB_ISINF
+GL_GNULIB_ISFINITE_NO_CXX
GL_GNULIB_ISFINITE
GL_GNULIB_ILOGBL
GL_GNULIB_ILOGBF
@@ -3231,6 +3241,7 @@ REPLACE_TANHF
REPLACE_TANF
REPLACE_SQRTL
REPLACE_SQRTF
+REPLACE_SINL
REPLACE_SINHF
REPLACE_SINF
REPLACE_SIGNBIT_USING_BUILTINS
@@ -3518,6 +3529,7 @@ REPLACE_ABORT
REPLACE__EXIT
HAVE_DECL_UNSETENV
HAVE_UNLOCKPT
+HAVE_SYS_PROCESS_H
HAVE_SYS_LOADAVG_H
HAVE_STRUCT_RANDOM_DATA
HAVE_STRTOULL
@@ -3574,6 +3586,7 @@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H
NEXT_FLOAT_H
GL_GNULIB_MDA_OPEN
GL_GNULIB_MDA_CREAT
+GL_GNULIB_OPENAT2
GL_GNULIB_OPENAT
GL_GNULIB_OPEN
GL_GNULIB_NONBLOCKING
@@ -3585,6 +3598,7 @@ REPLACE_OPENAT
REPLACE_OPEN
REPLACE_FCNTL
REPLACE_CREAT
+HAVE_OPENAT2
HAVE_OPENAT
HAVE_FCNTL
GL_GENERATE_ERRNO_H_FALSE
@@ -5951,6 +5965,7 @@ as_fn_append ac_func_c_list " _set_invalid_parameter_handler HAVE__SET_INVALID_P
as_fn_append ac_header_c_list " error.h error_h HAVE_ERROR_H"
as_fn_append ac_func_c_list " fcntl HAVE_FCNTL"
as_fn_append ac_func_c_list " getdtablesize HAVE_GETDTABLESIZE"
+as_fn_append ac_header_c_list " sys/process.h sys_process_h HAVE_SYS_PROCESS_H"
as_fn_append ac_func_c_list " getexecname HAVE_GETEXECNAME"
as_fn_append ac_func_c_list " gettimeofday HAVE_GETTIMEOFDAY"
as_fn_append ac_header_c_list " netdb.h netdb_h HAVE_NETDB_H"
@@ -9864,8 +9879,8 @@ esac
# Code from module setsockopt-tests:
# Code from module signal-h:
# Code from module signal-h-tests:
- # Code from module signbit:
- # Code from module signbit-tests:
+ # Code from module signbit-no-c++:
+ # Code from module signbit-no-c++-tests:
# Code from module signed-nan:
# Code from module signed-snan:
# Code from module sigprocmask:
@@ -9902,6 +9917,7 @@ esac
# Code from module stdio-h-tests:
+ # Code from module stdio-windows:
# Code from module stdlib-h:
# Code from module stdlib-h-tests:
# Code from module stpcpy:
@@ -9909,7 +9925,7 @@ esac
# Code from module str_endswith-tests:
# Code from module str_startswith:
# Code from module str_startswith-tests:
- # Code from module streq:
+ # Code from module streq-opt:
# Code from module strerror:
# Code from module strerror-override:
# Code from module strerror-tests:
@@ -9924,6 +9940,8 @@ esac
# Code from module stringeq:
# Code from module strncat:
# Code from module strncat-tests:
+ # Code from module strncpy:
+ # Code from module strncpy-tests:
# Code from module strstr:
# Code from module strstr-simple:
# Code from module strstr-tests:
@@ -22771,6 +22789,7 @@ printf "%s\n" "#define HAVE___HEADER_INLINE 1" >>confdefs.h
HAVE_FCNTL=1;
HAVE_OPENAT=1;
+ HAVE_OPENAT2=0;
REPLACE_CREAT=0;
REPLACE_FCNTL=0;
REPLACE_OPEN=0;
@@ -23193,6 +23212,10 @@ printf "%s\n" "$gl_cv_next_fcntl_h" >&6; }
+ GL_GNULIB_OPENAT2=0
+
+
+
GL_GNULIB_MDA_CREAT=1
@@ -23488,6 +23511,7 @@ printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
HAVE_STRTOULL=1;
HAVE_STRUCT_RANDOM_DATA=1;
HAVE_SYS_LOADAVG_H=0;
+ HAVE_SYS_PROCESS_H=0;
HAVE_UNLOCKPT=1;
HAVE_DECL_UNSETENV=1;
REPLACE__EXIT=0;
@@ -23936,6 +23960,7 @@ printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
REPLACE_SIGNBIT_USING_BUILTINS=0;
REPLACE_SINF=0;
REPLACE_SINHF=0;
+ REPLACE_SINL=0;
REPLACE_SQRTF=0;
REPLACE_SQRTL=0;
REPLACE_TANF=0;
@@ -24201,14 +24226,26 @@ printf "%s\n" "#define HAVE_DECL_ALARM $ac_have_decl" >>confdefs.h
+ GL_GNULIB_ISFINITE_NO_CXX=0
+
+
+
GL_GNULIB_ISINF=0
+ GL_GNULIB_ISINF_NO_CXX=0
+
+
+
GL_GNULIB_ISNAN=0
+ GL_GNULIB_ISNAN_NO_CXX=0
+
+
+
GL_GNULIB_ISNANF=0
@@ -24385,6 +24422,10 @@ printf "%s\n" "#define HAVE_DECL_ALARM $ac_have_decl" >>confdefs.h
+ GL_GNULIB_SIGNBIT_NO_CXX=0
+
+
+
GL_GNULIB_SINF=0
@@ -24594,8 +24635,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
LIBS="$saved_LIBS"
test $gl_pthread_api = yes && break
done
- echo "$as_me:24597: gl_pthread_api=$gl_pthread_api" >&5
- echo "$as_me:24598: LIBPTHREAD=$LIBPTHREAD" >&5
+ echo "$as_me:24638: gl_pthread_api=$gl_pthread_api" >&5
+ echo "$as_me:24639: LIBPTHREAD=$LIBPTHREAD" >&5
gl_pthread_in_glibc=no
# On Linux with glibc >= 2.34, libc contains the fully functional
@@ -24624,7 +24665,7 @@ rm -rf conftest*
*) :
;;
esac
- echo "$as_me:24627: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
+ echo "$as_me:24668: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
# Test for libpthread by looking for pthread_kill.
if test $gl_pthread_api = yes && test -z "$LIBPTHREAD"
@@ -24876,7 +24917,7 @@ fi
fi
fi
- echo "$as_me:24879: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
+ echo "$as_me:24920: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5
@@ -25299,6 +25340,8 @@ then :
case "$host_os" in
cygwin*) # Guess no on Cygwin.
gl_cv_func_getlocalename_l_works="guessing no" ;;
+ haiku*) # Guess no on Haiku.
+ gl_cv_func_getlocalename_l_works="guessing no" ;;
*) # Guess yes otherwise.
gl_cv_func_getlocalename_l_works="guessing yes" ;;
esac
@@ -25311,8 +25354,21 @@ else case e in #(
#include <string.h>
int main ()
{
- const char *ret = getlocalename_l (LC_COLLATE, LC_GLOBAL_LOCALE);
- return strlen (ret) == 0;
+ int result = 0;
+ /* Check against the Cygwin bug. */
+ {
+ const char *ret = getlocalename_l (LC_COLLATE, LC_GLOBAL_LOCALE);
+ if (strlen (ret) == 0)
+ result |= 1;
+ }
+ /* Check against the Haiku oddity. */
+ {
+ const char *ret =
+ getlocalename_l (LC_COLLATE, newlocale (LC_ALL_MASK, "C", NULL));
+ if (strcmp (ret, "C") != 0)
+ result |= 2;
+ }
+ return result;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
@@ -30502,8 +30558,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
LIBS="$saved_LIBS"
test $gl_pthread_api = yes && break
done
- echo "$as_me:30505: gl_pthread_api=$gl_pthread_api" >&5
- echo "$as_me:30506: LIBPTHREAD=$LIBPTHREAD" >&5
+ echo "$as_me:30561: gl_pthread_api=$gl_pthread_api" >&5
+ echo "$as_me:30562: LIBPTHREAD=$LIBPTHREAD" >&5
gl_pthread_in_glibc=no
# On Linux with glibc >= 2.34, libc contains the fully functional
@@ -30532,7 +30588,7 @@ rm -rf conftest*
*) :
;;
esac
- echo "$as_me:30535: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
+ echo "$as_me:30591: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
# Test for libpthread by looking for pthread_kill.
if test $gl_pthread_api = yes && test -z "$LIBPTHREAD"
@@ -30784,7 +30840,7 @@ fi
fi
fi
- echo "$as_me:30787: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
+ echo "$as_me:30843: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5
@@ -31074,8 +31130,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \
LIBS="$saved_LIBS"
test $gl_pthread_api = yes && break
done
- echo "$as_me:31077: gl_pthread_api=$gl_pthread_api" >&5
- echo "$as_me:31078: LIBPTHREAD=$LIBPTHREAD" >&5
+ echo "$as_me:31133: gl_pthread_api=$gl_pthread_api" >&5
+ echo "$as_me:31134: LIBPTHREAD=$LIBPTHREAD" >&5
gl_pthread_in_glibc=no
# On Linux with glibc >= 2.34, libc contains the fully functional
@@ -31104,7 +31160,7 @@ rm -rf conftest*
*) :
;;
esac
- echo "$as_me:31107: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
+ echo "$as_me:31163: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
# Test for libpthread by looking for pthread_kill.
if test $gl_pthread_api = yes && test -z "$LIBPTHREAD"
@@ -31356,7 +31412,7 @@ fi
fi
fi
- echo "$as_me:31359: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
+ echo "$as_me:31415: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5
@@ -31775,14 +31831,14 @@ fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc set errno on failure" >&5
-printf %s "checking whether malloc, realloc, calloc set errno on failure... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc, calloc set errno on failure" >&5
+printf %s "checking whether malloc, calloc set errno on failure... " >&6; }
if test ${gl_cv_func_malloc_posix+y}
then :
printf %s "(cached) " >&6
else case e in #(
e)
- case "$host_os" in
+ case "$host_os" in
mingw* | windows*)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -31811,6 +31867,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
;;
solaris*)
+
gl_cv_func_malloc_posix=no ;;
*)
gl_cv_func_malloc_posix=yes ;;
@@ -32314,6 +32371,10 @@ printf "%s\n" "$gl_cv_header_math_huge_val_works" >&6; }
+ GL_GNULIB_STRNCPY=0
+
+
+
GL_GNULIB_STRNDUP=0
@@ -32342,6 +32403,10 @@ printf "%s\n" "$gl_cv_header_math_huge_val_works" >&6; }
+ GL_GNULIB_STRNUL=0
+
+
+
GL_GNULIB_STR_STARTSWITH=0
@@ -32493,6 +32558,7 @@ printf "%s\n" "$gl_cv_header_math_huge_val_works" >&6; }
REPLACE_STRCHRNUL=0;
REPLACE_STRDUP=0;
REPLACE_STRNCAT=0;
+ REPLACE_STRNCPY=0;
REPLACE_STRNDUP=0;
REPLACE_STRNLEN=0;
REPLACE_STRSTR=0;
@@ -33184,6 +33250,82 @@ printf "%s\n" "#define ENABLE_RELOCATABLE 1" >>confdefs.h
fi
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library needed for dlopen and dlsym" >&5
+printf %s "checking for library needed for dlopen and dlsym... " >&6; }
+if test ${gl_cv_lib_dl+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <dlfcn.h>
+
+int
+main (void)
+{
+return ! dlsym (RTLD_DEFAULT, "main");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ gl_cv_lib_dl=none
+else case e in #(
+ e) gl_cv_lib_dl=maybe ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+ if test $gl_cv_lib_dl = maybe; then
+ saved_LIBS="$LIBS"
+ LIBS="$LIBS -ldl"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <dlfcn.h>
+
+int
+main (void)
+{
+return ! dlsym (RTLD_DEFAULT, "main");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ gl_cv_lib_dl='-ldl'
+else case e in #(
+ e) gl_cv_lib_dl=none ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$saved_LIBS"
+ fi
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_lib_dl" >&5
+printf "%s\n" "$gl_cv_lib_dl" >&6; }
+ case "$gl_cv_lib_dl" in
+ none) LIBDL='' ;;
+ *) LIBDL="$gl_cv_lib_dl" ;;
+ esac
+
+
+ if test -z "$LIBDL"; then
+ ac_fn_c_check_func "$LINENO" "dladdr" "ac_cv_func_dladdr"
+if test "x$ac_cv_func_dladdr" = xyes
+then :
+
+printf "%s\n" "#define HAVE_DLADDR_IN_LIBC 1" >>confdefs.h
+
+
+fi
+
+ fi
+
HAVE_SCHED_YIELD=1;
REPLACE_SCHED_YIELD=0;
@@ -34067,6 +34209,116 @@ printf "%s\n" "$gl_cv_func_strncat_works" >&6; }
+
+
+
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strncpy works" >&5
+printf %s "checking whether strncpy works... " >&6; }
+if test ${gl_cv_func_strncpy_works+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e) if test "$cross_compiling" = yes
+then :
+
+ case "$host_os" in
+ # Guess no on FreeBSD.
+ freebsd* | dragonfly*) gl_cv_func_strncpy_works="guessing no" ;;
+ # Guess yes on native Windows.
+ mingw* | windows*) gl_cv_func_strncpy_works="guessing yes" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_strncpy_works="guessing yes" ;;
+ esac
+
+else case e in #(
+ e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <string.h>
+#if HAVE_SYS_MMAN_H
+# include <fcntl.h>
+# include <unistd.h>
+# include <sys/types.h>
+# include <sys/mman.h>
+#endif
+
+
+$gl_mda_defines
+
+int
+main (void)
+{
+
+ char *fence = NULL;
+#if HAVE_SYS_MMAN_H && HAVE_MPROTECT
+ {
+ long int pagesize = sysconf (_SC_PAGESIZE);
+ char *two_pages =
+ (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE,
+ MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
+ if (two_pages != (char *)(-1)
+ && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0)
+ fence = two_pages + pagesize;
+ }
+#endif
+ if (fence)
+ {
+ char dest[8];
+
+ dest[0] = 'a';
+ dest[1] = 'b';
+ dest[2] = 'c';
+ dest[3] = 'd';
+ dest[4] = 'e';
+ dest[5] = 'f';
+ dest[6] = 'g';
+
+ *(fence - 3) = '7';
+ *(fence - 2) = '2';
+ *(fence - 1) = '9';
+
+ if (strncpy (dest + 1, fence - 3, 3) != dest + 1)
+ return 1;
+ if (dest[0] != 'a')
+ return 2;
+ if (dest[1] != '7' || dest[2] != '2' || dest[3] != '9')
+ return 3;
+ if (dest[4] != 'e')
+ return 4;
+ }
+ return 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+ gl_cv_func_strncpy_works=yes
+else case e in #(
+ e) gl_cv_func_strncpy_works=no ;;
+esac
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
+fi
+
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strncpy_works" >&5
+printf "%s\n" "$gl_cv_func_strncpy_works" >&6; }
+ case "$gl_cv_func_strncpy_works" in
+ *yes) ;;
+ *) REPLACE_STRNCPY=1 ;;
+ esac
+
+
+
+
if test $REPLACE_MEMCHR = 1; then
REPLACE_STRSTR=1
else
@@ -40637,6 +40889,7 @@ printf "%s\n" "#define HAVE_DECL_GETDTABLESIZE $ac_have_decl" >>confdefs.h
+
HAVE_GETTIMEOFDAY=1;
HAVE_STRUCT_TIMEVAL=1;
HAVE_SYS_TIME_H=1;
@@ -43438,7 +43691,7 @@ printf "%s\n" "#define HAVE_DECL_UNSETENV $ac_have_decl" >>confdefs.h
-Wno-sign-conversion
-Wno-type-limits
#endif
- #if (__GNUC__ + (__GNUC_MINOR__ >= 4) > 4 && !defined __clang__) || (__clang_major__ + (__clang_minor__ >= 9) > 3)
+ #if (__GNUC__ + (__GNUC_MINOR__ >= 1) > 6 && !defined __clang__) || (__clang_major__ + (__clang_minor__ >= 9) > 3)
-Wno-unused-const-variable
#endif
#if (__GNUC__ + (__GNUC_MINOR__ >= 5) > 4 && !defined __clang__)
@@ -50699,13 +50952,13 @@ fi
- GL_GNULIB_SIGNBIT=1
+ GL_GNULIB_SIGNBIT_NO_CXX=1
-printf "%s\n" "#define GNULIB_TEST_SIGNBIT 1" >>confdefs.h
+printf "%s\n" "#define GNULIB_TEST_SIGNBIT_NO_CXX 1" >>confdefs.h
@@ -51126,6 +51379,52 @@ printf "%s\n" "#define GNULIB_TEST_STRNCAT 1" >>confdefs.h
+ if test $REPLACE_STRNCPY = 1; then
+ GL_COND_OBJ_STRNCPY_TRUE=
+ GL_COND_OBJ_STRNCPY_FALSE='#'
+else
+ GL_COND_OBJ_STRNCPY_TRUE='#'
+ GL_COND_OBJ_STRNCPY_FALSE=
+fi
+:
+ if test -z "${GL_COND_OBJ_STRNCPY_TRUE}" && test -z "${GL_COND_OBJ_STRNCPY_FALSE}"; then
+ GL_COND_OBJ_STRNCPY_TRUE='#'
+ GL_COND_OBJ_STRNCPY_FALSE='#'
+ fi
+
+ if test -z "$GL_COND_OBJ_STRNCPY_TRUE"; then :
+
+
+ :
+
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GL_GNULIB_STRNCPY=1
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_STRNCPY 1" >>confdefs.h
+
+
+
+
+
if test $REPLACE_STRSTR = 0; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strstr works in linear time" >&5
printf %s "checking whether strstr works in linear time... " >&6; }
@@ -75612,6 +75911,12 @@ printf "%s\n" "#define GNULIB_TEST_GETDTABLESIZE 1" >>confdefs.h
+ if test $ac_cv_header_sys_process_h = yes; then
+ HAVE_SYS_PROCESS_H=1
+ else
+ HAVE_SYS_PROCESS_H=0
+ fi
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getprogname" >&5
printf %s "checking for getprogname... " >&6; }
@@ -76110,7 +76415,7 @@ printf "%s\n" "#define HAVE_DUPLOCALE 1" >>confdefs.h
- HAVE_INET_PTON=1
+ HAVE_INET_PTON=1
INET_PTON_LIB=
@@ -76182,7 +76487,7 @@ return inet_pton ();
return 0;
}
_ACEOF
-for ac_lib in '' nsl resolv network
+for ac_lib in '' nsl resolv network socket
do
if test -z "$ac_lib"; then
ac_res="none required"
@@ -77598,6 +77903,46 @@ printf "%s\n" "#define HAVE_BUG_BIG_NANOSLEEP 1" >>confdefs.h
;;
esac
else
+ # Replace the static inline function on mingw which requires linking to
+ # libwinpthreads.
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for static inline nanosleep" >&5
+printf %s "checking for static inline nanosleep... " >&6; }
+if test ${gl_cv_static_inline_nanosleep+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <time.h>
+int
+main (void)
+{
+
+ static struct timespec ts1;
+ static struct timespec ts2;
+ return nanosleep (&ts1, &ts2);
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ gl_cv_static_inline_nanosleep=yes
+else case e in #(
+ e) gl_cv_static_inline_nanosleep=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_static_inline_nanosleep" >&5
+printf "%s\n" "$gl_cv_static_inline_nanosleep" >&6; }
+ if test $gl_cv_static_inline_nanosleep = yes; then
+ REPLACE_NANOSLEEP=1
+ fi
HAVE_NANOSLEEP=0
fi
LIBS=$gl_saved_LIBS
@@ -80094,13 +80439,75 @@ printf "%s\n" "#define GNULIB_TEST_RANDOM_R 1" >>confdefs.h
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether realloc sets errno on failure" >&5
+printf %s "checking whether realloc sets errno on failure... " >&6; }
+if test ${gl_cv_func_realloc_posix+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e)
+ case "$host_os" in
+ darwin* | freebsd* | dragonfly* | midnightbsd* | netbsd* | openbsd*)
+ if test "$cross_compiling" = yes
+then :
+ case "$host_os" in
+ freebsd*) gl_cv_func_realloc_posix="guessing no" ;;
+ *) gl_cv_func_realloc_posix="guessing yes" ;;
+ esac
+
+else case e in #(
+ e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <errno.h>
+ #include <stdlib.h>
+ int main (int argc, char **argv)
+ {
+ void *p;
+ errno = 1729;
+ p = realloc (malloc (1), (size_t)(-1) / 100 * 49);
+ return (!p && errno == 1729);
+ }
+
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+ gl_cv_func_realloc_posix=yes
+else case e in #(
+ e) gl_cv_func_realloc_posix=no ;;
+esac
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
+fi
+
+ ;;
+ *)
+ gl_cv_func_realloc_posix="$gl_cv_func_malloc_posix"
+ ;;
+ esac
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_realloc_posix" >&5
+printf "%s\n" "$gl_cv_func_realloc_posix" >&6; }
+ case "$gl_cv_func_realloc_posix" in
+ *yes)
+
+printf "%s\n" "#define HAVE_REALLOC_POSIX 1" >>confdefs.h
+
+ ;;
+ *)
+ REPLACE_REALLOC_FOR_REALLOC_POSIX=1
+ ;;
+ esac
+
if test "$gl_cv_func_realloc_sanitize" != no; then
REPLACE_REALLOC_FOR_REALLOC_POSIX=1
printf "%s\n" "#define NEED_SANITIZED_REALLOC 1" >>confdefs.h
- else
- REPLACE_REALLOC_FOR_REALLOC_POSIX=$REPLACE_MALLOC_FOR_MALLOC_POSIX
fi
@@ -81515,40 +81922,6 @@ fi
- USES_MSVCRT=0
- case "$host_os" in
- mingw* | windows*)
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
- #ifndef _UCRT
- Special
- #endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP_TRADITIONAL "Special" >/dev/null 2>&1
-then :
- USES_MSVCRT=1
-fi
-rm -rf conftest*
-
- ;;
- esac
-
- if test $USES_MSVCRT = 1; then
- GL_COND_OBJ_STDIO_CONSOLESAFE_TRUE=
- GL_COND_OBJ_STDIO_CONSOLESAFE_FALSE='#'
-else
- GL_COND_OBJ_STDIO_CONSOLESAFE_TRUE='#'
- GL_COND_OBJ_STDIO_CONSOLESAFE_FALSE=
-fi
-:
- if test -z "${GL_COND_OBJ_STDIO_CONSOLESAFE_TRUE}" && test -z "${GL_COND_OBJ_STDIO_CONSOLESAFE_FALSE}"; then
- GL_COND_OBJ_STDIO_CONSOLESAFE_TRUE='#'
- GL_COND_OBJ_STDIO_CONSOLESAFE_FALSE='#'
- fi
-
if test $REPLACE_STDIO_READ_FUNCS = 1; then
GL_COND_OBJ_STDIO_READ_TRUE=
@@ -82014,6 +82387,48 @@ printf "%s\n" "#define GNULIB_TEST_FWRITE 1" >>confdefs.h
+ USES_MSVCRT=0
+ case "$host_os" in
+ mingw* | windows*)
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #ifndef _UCRT
+ Special
+ #endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP_TRADITIONAL "Special" >/dev/null 2>&1
+then :
+ USES_MSVCRT=1
+fi
+rm -rf conftest*
+
+ ;;
+ esac
+
+ if test $USES_MSVCRT = 1; then
+ GL_COND_OBJ_STDIO_CONSOLESAFE_TRUE=
+ GL_COND_OBJ_STDIO_CONSOLESAFE_FALSE='#'
+else
+ GL_COND_OBJ_STDIO_CONSOLESAFE_TRUE='#'
+ GL_COND_OBJ_STDIO_CONSOLESAFE_FALSE=
+fi
+:
+ if test -z "${GL_COND_OBJ_STDIO_CONSOLESAFE_TRUE}" && test -z "${GL_COND_OBJ_STDIO_CONSOLESAFE_FALSE}"; then
+ GL_COND_OBJ_STDIO_CONSOLESAFE_TRUE='#'
+ GL_COND_OBJ_STDIO_CONSOLESAFE_FALSE='#'
+ fi
+
+ ac_fn_c_check_func "$LINENO" "vasprintf" "ac_cv_func_vasprintf"
+if test "x$ac_cv_func_vasprintf" = xyes
+then :
+ printf "%s\n" "#define HAVE_VASPRINTF 1" >>confdefs.h
+
+fi
+
+
@@ -82524,6 +82939,9 @@ printf "%s\n" "#define GNULIB_STRERROR_R_POSIX $gl_module_indicator_condition" >
+
+
+
if test $ac_cv_func_symlink = no; then
HAVE_SYMLINK=0
else
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 2bd1784c..1578c95f 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -168,6 +168,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 \
@@ -268,6 +269,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 \
@@ -657,13 +659,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@
@@ -811,6 +816,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@
@@ -892,6 +898,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@
@@ -919,8 +926,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@
@@ -1435,6 +1444,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@
@@ -1592,6 +1602,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@
@@ -1692,6 +1703,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@
@@ -2143,6 +2155,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@
@@ -2162,6 +2175,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@
diff --git a/doc/libunistring_1.html b/doc/libunistring_1.html
index ac13156f..3c482ce1 100644
--- a/doc/libunistring_1.html
+++ b/doc/libunistring_1.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -491,7 +491,7 @@ zero-valued unit used as &ldquo;end marker&rdquo;.
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_10.html b/doc/libunistring_10.html
index 429a774b..b0837ff7 100644
--- a/doc/libunistring_10.html
+++ b/doc/libunistring_10.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -298,7 +298,7 @@ Use <code>uc_grapheme_breaks</code> for such cases.
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_11.html b/doc/libunistring_11.html
index 9e92ef0d..11dd16d8 100644
--- a/doc/libunistring_11.html
+++ b/doc/libunistring_11.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -210,7 +210,7 @@ may be added in the future.
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_12.html b/doc/libunistring_12.html
index 6524aee8..bf56e98a 100644
--- a/doc/libunistring_12.html
+++ b/doc/libunistring_12.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -202,7 +202,7 @@ that a line break <em>should</em> be inserted.
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_13.html b/doc/libunistring_13.html
index a2bb00a6..b091bf5d 100644
--- a/doc/libunistring_13.html
+++ b/doc/libunistring_13.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -509,7 +509,7 @@ then closes and frees the filter.
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_14.html b/doc/libunistring_14.html
index 937f72b0..278531e9 100644
--- a/doc/libunistring_14.html
+++ b/doc/libunistring_14.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -632,7 +632,7 @@ characters. Upon failure, returns -1 with <code>errno</code> set.
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_15.html b/doc/libunistring_15.html
index 5c412b95..abf8b781 100644
--- a/doc/libunistring_15.html
+++ b/doc/libunistring_15.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -78,7 +78,7 @@ ul.toc {list-style: none}
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_16.html b/doc/libunistring_16.html
index b423796e..6baf4e37 100644
--- a/doc/libunistring_16.html
+++ b/doc/libunistring_16.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -237,7 +237,7 @@ a description of the options that you passed to the &lsquo;<samp>configure</samp
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_17.html b/doc/libunistring_17.html
index 05928928..09c3eff3 100644
--- a/doc/libunistring_17.html
+++ b/doc/libunistring_17.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -84,7 +84,7 @@ ul.toc {list-style: none}
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_18.html b/doc/libunistring_18.html
index 0e681cb6..06c29cf7 100644
--- a/doc/libunistring_18.html
+++ b/doc/libunistring_18.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -125,7 +125,7 @@ the program to produce garbage or abort.
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_19.html b/doc/libunistring_19.html
index c70629f5..745103c0 100644
--- a/doc/libunistring_19.html
+++ b/doc/libunistring_19.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -122,7 +122,7 @@ encoding may be different from the <code>wchar_t</code> encoding.
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_2.html b/doc/libunistring_2.html
index 07dabc17..f6bc68cc 100644
--- a/doc/libunistring_2.html
+++ b/doc/libunistring_2.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -153,7 +153,7 @@ Finally, do memory management. You know that the result was
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_20.html b/doc/libunistring_20.html
index 8ad45214..b5813861 100644
--- a/doc/libunistring_20.html
+++ b/doc/libunistring_20.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -1535,7 +1535,7 @@ to permit their use in free software.
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_21.html b/doc/libunistring_21.html
index 3807a99f..f87248f2 100644
--- a/doc/libunistring_21.html
+++ b/doc/libunistring_21.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -303,7 +303,7 @@ ul.toc {list-style: none}
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_22.html b/doc/libunistring_22.html
index 281561b9..319ac7a7 100644
--- a/doc/libunistring_22.html
+++ b/doc/libunistring_22.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -690,7 +690,7 @@ ul.toc {list-style: none}
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_23.html b/doc/libunistring_23.html
index 180bee22..b516de66 100644
--- a/doc/libunistring_23.html
+++ b/doc/libunistring_23.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -181,7 +181,7 @@ ul.toc {list-style: none}
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_3.html b/doc/libunistring_3.html
index 50cd5d6d..98ab334c 100644
--- a/doc/libunistring_3.html
+++ b/doc/libunistring_3.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -110,7 +110,7 @@ declared to take <code>ucs4_t</code> arguments will not perform such a range-che
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_4.html b/doc/libunistring_4.html
index 761cf862..c51a8d37 100644
--- a/doc/libunistring_4.html
+++ b/doc/libunistring_4.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -963,7 +963,7 @@ that it operates on Unicode strings. Its interface is actually more similar to
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_5.html b/doc/libunistring_5.html
index c8f2f561..d7701be5 100644
--- a/doc/libunistring_5.html
+++ b/doc/libunistring_5.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -296,7 +296,7 @@ strings in locale encoding and NUL terminated Unicode strings.
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_6.html b/doc/libunistring_6.html
index 78314173..61bf2de1 100644
--- a/doc/libunistring_6.html
+++ b/doc/libunistring_6.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -444,7 +444,7 @@ locale encoding to a <code>FILE</code> stream.
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_7.html b/doc/libunistring_7.html
index 545557d7..77a9c13e 100644
--- a/doc/libunistring_7.html
+++ b/doc/libunistring_7.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -117,7 +117,7 @@ Returns the character if found, or <code>UNINAME_INVALID</code> if not found.
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_8.html b/doc/libunistring_8.html
index 9ac991d4..96fce582 100644
--- a/doc/libunistring_8.html
+++ b/doc/libunistring_8.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -2837,7 +2837,7 @@ a locale-specific set of characters for which <code>uc_is_alnum</code> is false.
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_9.html b/doc/libunistring_9.html
index 8b4b07db..0cebacb6 100644
--- a/doc/libunistring_9.html
+++ b/doc/libunistring_9.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -132,7 +132,7 @@ This function ignores control characters in the string.
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_abt.html b/doc/libunistring_abt.html
index 74e82bd1..23ae2f42 100644
--- a/doc/libunistring_abt.html
+++ b/doc/libunistring_abt.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -50,7 +50,7 @@ ul.toc {list-style: none}
</tr></table>
<h1>About This Document</h1>
<p>
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</p>
<p>
The buttons in the navigation panels have the following meaning:
@@ -158,7 +158,7 @@ ul.toc {list-style: none}
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_fot.html b/doc/libunistring_fot.html
index c95bec93..e6fa2fe8 100644
--- a/doc/libunistring_fot.html
+++ b/doc/libunistring_fot.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -63,7 +63,7 @@ regular units; they are not interpreted as terminators.
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/libunistring_toc.html b/doc/libunistring_toc.html
index eee23c36..59f197de 100644
--- a/doc/libunistring_toc.html
+++ b/doc/libunistring_toc.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
<html>
-<!-- Created on October, 5 2025 by texi2html 1.78a -->
+<!-- Created on February, 23 2026 by texi2html 1.78a -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -189,7 +189,7 @@ ul.toc {list-style: none}
</tr></table>
<p>
<font size="-1">
- This document was generated by <em>Bruno Haible</em> on <em>October, 5 2025</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ This document was generated by <em>Bruno Haible</em> on <em>February, 23 2026</em> using <a href="https://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
</font>
<br>
diff --git a/doc/stamp-vti b/doc/stamp-vti
index fe10d2cd..108e4916 100644
--- a/doc/stamp-vti
+++ b/doc/stamp-vti
@@ -1,4 +1,4 @@
@set UPDATED 9 February 2025
@set UPDATED-MONTH February 2025
-@set EDITION 1.4.1
-@set VERSION 1.4.1
+@set EDITION 1.4.2
+@set VERSION 1.4.2
diff --git a/doc/version.texi b/doc/version.texi
index fe10d2cd..108e4916 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,4 +1,4 @@
@set UPDATED 9 February 2025
@set UPDATED-MONTH February 2025
-@set EDITION 1.4.1
-@set VERSION 1.4.1
+@set EDITION 1.4.2
+@set VERSION 1.4.2
diff --git a/gnulib-local/Makefile.in b/gnulib-local/Makefile.in
index 76278e5e..ec70122c 100644
--- a/gnulib-local/Makefile.in
+++ b/gnulib-local/Makefile.in
@@ -168,6 +168,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 \
@@ -268,6 +269,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 \
@@ -584,13 +586,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@
@@ -738,6 +743,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@
@@ -819,6 +825,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@
@@ -846,8 +853,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@
@@ -1362,6 +1371,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@
@@ -1519,6 +1529,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@
@@ -1619,6 +1630,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@
@@ -2064,6 +2076,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@
@@ -2083,6 +2096,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@
diff --git a/gnulib-m4/00gnulib.m4 b/gnulib-m4/00gnulib.m4
index 2b205b35..a4b32403 100644
--- a/gnulib-m4/00gnulib.m4
+++ b/gnulib-m4/00gnulib.m4
@@ -1,6 +1,6 @@
# 00gnulib.m4
# serial 9
-dnl Copyright (C) 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/__inline.m4 b/gnulib-m4/__inline.m4
index d1b8257b..4dedc0d4 100644
--- a/gnulib-m4/__inline.m4
+++ b/gnulib-m4/__inline.m4
@@ -1,6 +1,6 @@
# __inline.m4
# serial 1
-dnl Copyright 2017-2025 Free Software Foundation, Inc.
+dnl Copyright 2017-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/absolute-header.m4 b/gnulib-m4/absolute-header.m4
index 5501b07b..94ecc510 100644
--- a/gnulib-m4/absolute-header.m4
+++ b/gnulib-m4/absolute-header.m4
@@ -1,6 +1,6 @@
# absolute-header.m4
# serial 18
-dnl Copyright (C) 2006-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/alloca.m4 b/gnulib-m4/alloca.m4
index 68fc6211..ff0c59dd 100644
--- a/gnulib-m4/alloca.m4
+++ b/gnulib-m4/alloca.m4
@@ -1,6 +1,6 @@
# alloca.m4
# serial 21
-dnl Copyright (C) 2002-2004, 2006-2007, 2009-2025 Free Software Foundation,
+dnl Copyright (C) 2002-2004, 2006-2007, 2009-2026 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/arpa_inet_h.m4 b/gnulib-m4/arpa_inet_h.m4
index 5dae6f72..63634c30 100644
--- a/gnulib-m4/arpa_inet_h.m4
+++ b/gnulib-m4/arpa_inet_h.m4
@@ -1,6 +1,6 @@
# arpa_inet_h.m4
# serial 18
-dnl Copyright (C) 2006, 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/assert_h.m4 b/gnulib-m4/assert_h.m4
index b02cbd68..d9433ef7 100644
--- a/gnulib-m4/assert_h.m4
+++ b/gnulib-m4/assert_h.m4
@@ -1,6 +1,6 @@
# assert_h.m4
# serial 6
-dnl Copyright (C) 2011-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/btowc.m4 b/gnulib-m4/btowc.m4
index d224b156..93c9d769 100644
--- a/gnulib-m4/btowc.m4
+++ b/gnulib-m4/btowc.m4
@@ -1,6 +1,6 @@
# btowc.m4
# serial 16
-dnl Copyright (C) 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/build-to-host.m4 b/gnulib-m4/build-to-host.m4
index 01bff8f3..d3b93ce1 100644
--- a/gnulib-m4/build-to-host.m4
+++ b/gnulib-m4/build-to-host.m4
@@ -1,6 +1,6 @@
# build-to-host.m4
# serial 5
-dnl Copyright (C) 2023-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2023-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/builtin-expect.m4 b/gnulib-m4/builtin-expect.m4
index 76d32867..cf96977e 100644
--- a/gnulib-m4/builtin-expect.m4
+++ b/gnulib-m4/builtin-expect.m4
@@ -1,6 +1,6 @@
# builtin-expect.m4
# serial 3
-dnl Copyright 2016-2025 Free Software Foundation, Inc.
+dnl Copyright 2016-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/c-bool.m4 b/gnulib-m4/c-bool.m4
index 8fa8bfc8..f04041a4 100644
--- a/gnulib-m4/c-bool.m4
+++ b/gnulib-m4/c-bool.m4
@@ -1,6 +1,6 @@
# c-bool.m4
# serial 3
-dnl Copyright 2022-2025 Free Software Foundation, Inc.
+dnl Copyright 2022-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/c32rtomb.m4 b/gnulib-m4/c32rtomb.m4
index ce26a31e..b7a0d44c 100644
--- a/gnulib-m4/c32rtomb.m4
+++ b/gnulib-m4/c32rtomb.m4
@@ -1,6 +1,6 @@
# c32rtomb.m4
# serial 8
-dnl Copyright (C) 2020-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2020-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/calloc.m4 b/gnulib-m4/calloc.m4
index ac7d08d4..2ed64332 100644
--- a/gnulib-m4/calloc.m4
+++ b/gnulib-m4/calloc.m4
@@ -1,6 +1,6 @@
# calloc.m4
# serial 36
-dnl Copyright (C) 2004-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2004-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/close.m4 b/gnulib-m4/close.m4
index 314e321e..9b498643 100644
--- a/gnulib-m4/close.m4
+++ b/gnulib-m4/close.m4
@@ -1,6 +1,6 @@
# close.m4
# serial 10
-dnl Copyright (C) 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/codeset.m4 b/gnulib-m4/codeset.m4
index 6bed9dee..4ab542f4 100644
--- a/gnulib-m4/codeset.m4
+++ b/gnulib-m4/codeset.m4
@@ -1,6 +1,6 @@
# codeset.m4
# serial 5 (gettext-0.18.2)
-dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016, 2019-2025 Free Software
+dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016, 2019-2026 Free Software
dnl Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/ctype_h.m4 b/gnulib-m4/ctype_h.m4
index fec7c458..b6414d37 100644
--- a/gnulib-m4/ctype_h.m4
+++ b/gnulib-m4/ctype_h.m4
@@ -1,6 +1,6 @@
# ctype_h.m4
# serial 23
-dnl Copyright (C) 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/double-slash-root.m4 b/gnulib-m4/double-slash-root.m4
index 5c40b73c..957adca6 100644
--- a/gnulib-m4/double-slash-root.m4
+++ b/gnulib-m4/double-slash-root.m4
@@ -1,6 +1,6 @@
# double-slash-root.m4
# serial 4 -*- Autoconf -*-
-dnl Copyright (C) 2006, 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/dup2.m4 b/gnulib-m4/dup2.m4
index 5da3a0b9..e1d51898 100644
--- a/gnulib-m4/dup2.m4
+++ b/gnulib-m4/dup2.m4
@@ -1,6 +1,6 @@
# dup2.m4
# serial 28
-dnl Copyright (C) 2002, 2005, 2007, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2005, 2007, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/environ.m4 b/gnulib-m4/environ.m4
index e0690e54..5c0644ab 100644
--- a/gnulib-m4/environ.m4
+++ b/gnulib-m4/environ.m4
@@ -1,6 +1,6 @@
# environ.m4
# serial 8
-dnl Copyright (C) 2001-2004, 2006-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2004, 2006-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/errno_h.m4 b/gnulib-m4/errno_h.m4
index 623cb7b2..ade19b6f 100644
--- a/gnulib-m4/errno_h.m4
+++ b/gnulib-m4/errno_h.m4
@@ -1,6 +1,6 @@
# errno_h.m4
# serial 19
-dnl Copyright (C) 2004, 2006, 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2004, 2006, 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/error.m4 b/gnulib-m4/error.m4
index 1572250a..f14b9ceb 100644
--- a/gnulib-m4/error.m4
+++ b/gnulib-m4/error.m4
@@ -1,6 +1,6 @@
# error.m4
# serial 16
-dnl Copyright (C) 1996-1998, 2001-2004, 2009-2025 Free Software Foundation,
+dnl Copyright (C) 1996-1998, 2001-2004, 2009-2026 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/error_h.m4 b/gnulib-m4/error_h.m4
index 4ef5cbff..73e96943 100644
--- a/gnulib-m4/error_h.m4
+++ b/gnulib-m4/error_h.m4
@@ -1,6 +1,6 @@
# error_h.m4
# serial 5
-dnl Copyright (C) 1996-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 1996-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/exponentd.m4 b/gnulib-m4/exponentd.m4
index 08e93397..bff98570 100644
--- a/gnulib-m4/exponentd.m4
+++ b/gnulib-m4/exponentd.m4
@@ -1,6 +1,6 @@
# exponentd.m4
# serial 5
-dnl Copyright (C) 2007-2008, 2010-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2008, 2010-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/exponentf.m4 b/gnulib-m4/exponentf.m4
index be2deb5c..aab59669 100644
--- a/gnulib-m4/exponentf.m4
+++ b/gnulib-m4/exponentf.m4
@@ -1,6 +1,6 @@
# exponentf.m4
# serial 3
-dnl Copyright (C) 2007-2008, 2010-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2008, 2010-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/exponentl.m4 b/gnulib-m4/exponentl.m4
index f4d0923e..af36db3e 100644
--- a/gnulib-m4/exponentl.m4
+++ b/gnulib-m4/exponentl.m4
@@ -1,6 +1,6 @@
# exponentl.m4
# serial 8
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/extensions-aix.m4 b/gnulib-m4/extensions-aix.m4
index 08b703b4..9036d7bb 100644
--- a/gnulib-m4/extensions-aix.m4
+++ b/gnulib-m4/extensions-aix.m4
@@ -1,6 +1,6 @@
# extensions-aix.m4
# serial 1
-dnl Copyright (C) 2024-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2024-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/extensions.m4 b/gnulib-m4/extensions.m4
index 76516bce..01a8e5f9 100644
--- a/gnulib-m4/extensions.m4
+++ b/gnulib-m4/extensions.m4
@@ -1,6 +1,6 @@
# extensions.m4
# serial 25 -*- Autoconf -*-
-dnl Copyright (C) 2003, 2006-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2006-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/extern-inline.m4 b/gnulib-m4/extern-inline.m4
index 820fbda5..4ccc4a95 100644
--- a/gnulib-m4/extern-inline.m4
+++ b/gnulib-m4/extern-inline.m4
@@ -1,6 +1,6 @@
# extern-inline.m4
# serial 2
-dnl Copyright 2012-2025 Free Software Foundation, Inc.
+dnl Copyright 2012-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -44,7 +44,7 @@ AC_DEFUN([gl_EXTERN_INLINE],
if isdigit is mistakenly implemented via a static inline function,
a program containing an extern inline function that calls isdigit
may not work since C99 through C23 prohibit extern inline functions
- from calling static functions (ISO C 23 section 6.7.5.(2)).
+ from calling static functions (ISO C 23 § 6.7.5 ¶ 3)).
Although a future C standard will likely relax this restriction
<https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3622.txt>,
respect it for now. This bug is known to occur on:
diff --git a/gnulib-m4/fcntl-o.m4 b/gnulib-m4/fcntl-o.m4
index 8020c481..a94fc557 100644
--- a/gnulib-m4/fcntl-o.m4
+++ b/gnulib-m4/fcntl-o.m4
@@ -1,6 +1,6 @@
# fcntl-o.m4
# serial 12
-dnl Copyright (C) 2006, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/fcntl.m4 b/gnulib-m4/fcntl.m4
index 08ab936f..69ac76f9 100644
--- a/gnulib-m4/fcntl.m4
+++ b/gnulib-m4/fcntl.m4
@@ -1,6 +1,6 @@
# fcntl.m4
# serial 12
-dnl Copyright (C) 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/fcntl_h.m4 b/gnulib-m4/fcntl_h.m4
index 1c9f9cce..946a0bd6 100644
--- a/gnulib-m4/fcntl_h.m4
+++ b/gnulib-m4/fcntl_h.m4
@@ -1,6 +1,6 @@
# fcntl_h.m4
-# serial 20
-dnl Copyright (C) 2006-2007, 2009-2025 Free Software Foundation, Inc.
+# serial 21
+dnl Copyright (C) 2006-2007, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -26,7 +26,7 @@ AC_DEFUN_ONCE([gl_FCNTL_H],
dnl corresponding gnulib module is not in use, if it is not common
dnl enough to be declared everywhere.
gl_WARN_ON_USE_PREPARE([[#include <fcntl.h>
- ]], [fcntl openat])
+ ]], [fcntl openat openat2])
])
# gl_FCNTL_MODULE_INDICATOR([modulename])
@@ -53,6 +53,7 @@ AC_DEFUN([gl_FCNTL_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NONBLOCKING])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPEN])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPENAT])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPENAT2])
dnl Support Microsoft deprecated alias function names by default.
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CREAT], [1])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_OPEN], [1])
@@ -66,6 +67,7 @@ AC_DEFUN([gl_FCNTL_H_DEFAULTS],
dnl Assume proper GNU behavior unless another module says otherwise.
HAVE_FCNTL=1; AC_SUBST([HAVE_FCNTL])
HAVE_OPENAT=1; AC_SUBST([HAVE_OPENAT])
+ HAVE_OPENAT2=0; AC_SUBST([HAVE_OPENAT2])
REPLACE_CREAT=0; AC_SUBST([REPLACE_CREAT])
REPLACE_FCNTL=0; AC_SUBST([REPLACE_FCNTL])
REPLACE_OPEN=0; AC_SUBST([REPLACE_OPEN])
diff --git a/gnulib-m4/fdopen.m4 b/gnulib-m4/fdopen.m4
index 2ef37adf..8c3752b1 100644
--- a/gnulib-m4/fdopen.m4
+++ b/gnulib-m4/fdopen.m4
@@ -1,6 +1,6 @@
# fdopen.m4
# serial 6
-dnl Copyright (C) 2011-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/flexmember.m4 b/gnulib-m4/flexmember.m4
index 3e097a66..b2d9994c 100644
--- a/gnulib-m4/flexmember.m4
+++ b/gnulib-m4/flexmember.m4
@@ -1,6 +1,6 @@
# flexmember.m4
# serial 5
-dnl Copyright (C) 2006, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/float_h.m4 b/gnulib-m4/float_h.m4
index a3d37a81..8af5bbff 100644
--- a/gnulib-m4/float_h.m4
+++ b/gnulib-m4/float_h.m4
@@ -1,6 +1,6 @@
# float_h.m4
# serial 16
-dnl Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/fpieee.m4 b/gnulib-m4/fpieee.m4
index ccece005..3fe97042 100644
--- a/gnulib-m4/fpieee.m4
+++ b/gnulib-m4/fpieee.m4
@@ -1,6 +1,6 @@
# fpieee.m4
# serial 2
-dnl Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/free.m4 b/gnulib-m4/free.m4
index bf03a7d1..c7a134ba 100644
--- a/gnulib-m4/free.m4
+++ b/gnulib-m4/free.m4
@@ -1,6 +1,6 @@
# free.m4
# serial 6
-dnl Copyright (C) 2003-2005, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2003-2005, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/frexp.m4 b/gnulib-m4/frexp.m4
index 003dd790..5d8cc2e4 100644
--- a/gnulib-m4/frexp.m4
+++ b/gnulib-m4/frexp.m4
@@ -1,6 +1,6 @@
# frexp.m4
# serial 21
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/frexpl.m4 b/gnulib-m4/frexpl.m4
index 06895eb6..a519a42e 100644
--- a/gnulib-m4/frexpl.m4
+++ b/gnulib-m4/frexpl.m4
@@ -1,6 +1,6 @@
# frexpl.m4
# serial 25
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/fseterr.m4 b/gnulib-m4/fseterr.m4
index 3a94c288..e5ad635b 100644
--- a/gnulib-m4/fseterr.m4
+++ b/gnulib-m4/fseterr.m4
@@ -1,6 +1,6 @@
# fseterr.m4
# serial 2
-dnl Copyright (C) 2012-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/fstat.m4 b/gnulib-m4/fstat.m4
index e89bbc32..7db4e346 100644
--- a/gnulib-m4/fstat.m4
+++ b/gnulib-m4/fstat.m4
@@ -1,6 +1,6 @@
# fstat.m4
# serial 10
-dnl Copyright (C) 2011-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/ftruncate.m4 b/gnulib-m4/ftruncate.m4
index aa149c37..17bae949 100644
--- a/gnulib-m4/ftruncate.m4
+++ b/gnulib-m4/ftruncate.m4
@@ -1,6 +1,6 @@
# ftruncate.m4
# serial 24
-dnl Copyright (C) 2000-2001, 2003-2007, 2009-2025 Free Software Foundation,
+dnl Copyright (C) 2000-2001, 2003-2007, 2009-2026 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/getcwd.m4 b/gnulib-m4/getcwd.m4
index b5b35b11..28189485 100644
--- a/gnulib-m4/getcwd.m4
+++ b/gnulib-m4/getcwd.m4
@@ -1,6 +1,6 @@
# getcwd.m4
# serial 22
-dnl Copyright (C) 2001, 2003-2007, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2001, 2003-2007, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/getdtablesize.m4 b/gnulib-m4/getdtablesize.m4
index 112c1c4d..0b780110 100644
--- a/gnulib-m4/getdtablesize.m4
+++ b/gnulib-m4/getdtablesize.m4
@@ -1,6 +1,6 @@
# getdtablesize.m4
# serial 8
-dnl Copyright (C) 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/getlocalename_l.m4 b/gnulib-m4/getlocalename_l.m4
index 629e510b..2b648ee4 100644
--- a/gnulib-m4/getlocalename_l.m4
+++ b/gnulib-m4/getlocalename_l.m4
@@ -1,6 +1,6 @@
# getlocalename_l.m4
-# serial 4
-dnl Copyright (C) 2025 Free Software Foundation, Inc.
+# serial 5
+dnl Copyright (C) 2025-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -30,6 +30,8 @@ AC_DEFUN_ONCE([gl_FUNC_GETLOCALENAME_L_UNSAFE],
if test $ac_cv_func_getlocalename_l = yes; then
dnl Check against the Cygwin 3.6.0 bug: It returns an invalid pointer when
dnl the second argument is LC_GLOBAL_LOCALE.
+ dnl Check against a Haiku >= hrev59293 oddity: It returns "POSIX" instead
+ dnl of "C". We prefer "C".
AC_REQUIRE([AC_CANONICAL_HOST])
AC_CACHE_CHECK([whether getlocalename_l works],
[gl_cv_func_getlocalename_l_works],
@@ -39,14 +41,29 @@ AC_DEFUN_ONCE([gl_FUNC_GETLOCALENAME_L_UNSAFE],
#include <string.h>
int main ()
{
- const char *ret = getlocalename_l (LC_COLLATE, LC_GLOBAL_LOCALE);
- return strlen (ret) == 0;
+ int result = 0;
+ /* Check against the Cygwin bug. */
+ {
+ const char *ret = getlocalename_l (LC_COLLATE, LC_GLOBAL_LOCALE);
+ if (strlen (ret) == 0)
+ result |= 1;
+ }
+ /* Check against the Haiku oddity. */
+ {
+ const char *ret =
+ getlocalename_l (LC_COLLATE, newlocale (LC_ALL_MASK, "C", NULL));
+ if (strcmp (ret, "C") != 0)
+ result |= 2;
+ }
+ return result;
}]])],
[gl_cv_func_getlocalename_l_works=yes],
[gl_cv_func_getlocalename_l_works=no],
[case "$host_os" in
cygwin*) # Guess no on Cygwin.
gl_cv_func_getlocalename_l_works="guessing no" ;;
+ haiku*) # Guess no on Haiku.
+ gl_cv_func_getlocalename_l_works="guessing no" ;;
*) # Guess yes otherwise.
gl_cv_func_getlocalename_l_works="guessing yes" ;;
esac
diff --git a/gnulib-m4/getprogname.m4 b/gnulib-m4/getprogname.m4
index 90f34c74..d60f3efb 100644
--- a/gnulib-m4/getprogname.m4
+++ b/gnulib-m4/getprogname.m4
@@ -1,6 +1,6 @@
# getprogname.m4
-# serial 8
-dnl Copyright (C) 2016-2025 Free Software Foundation, Inc.
+# serial 9
+dnl Copyright (C) 2016-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -12,6 +12,12 @@ AC_DEFUN([gl_FUNC_GETPROGNAME],
[
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_HEADERS_ONCE([sys/process.h])
+ if test $ac_cv_header_sys_process_h = yes; then
+ HAVE_SYS_PROCESS_H=1
+ else
+ HAVE_SYS_PROCESS_H=0
+ fi
gl_CHECK_FUNCS_ANDROID([getprogname], [[#include <stdlib.h>]])
if test $ac_cv_func_getprogname = no; then
HAVE_GETPROGNAME=0
diff --git a/gnulib-m4/gettext_h.m4 b/gnulib-m4/gettext_h.m4
index b4b1995c..7ef89541 100644
--- a/gnulib-m4/gettext_h.m4
+++ b/gnulib-m4/gettext_h.m4
@@ -1,6 +1,6 @@
# gettext_h.m4
# serial 1
-dnl Copyright (C) 2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2025-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/gettimeofday.m4 b/gnulib-m4/gettimeofday.m4
index 5cd84cc9..3728c13e 100644
--- a/gnulib-m4/gettimeofday.m4
+++ b/gnulib-m4/gettimeofday.m4
@@ -1,6 +1,6 @@
# gettimeofday.m4
# serial 30
-dnl Copyright (C) 2001-2003, 2005, 2007, 2009-2025 Free Software Foundation,
+dnl Copyright (C) 2001-2003, 2005, 2007, 2009-2026 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/gnulib-cache.m4 b/gnulib-m4/gnulib-cache.m4
index 74292d64..9441c414 100644
--- a/gnulib-m4/gnulib-cache.m4
+++ b/gnulib-m4/gnulib-cache.m4
@@ -1,4 +1,4 @@
-# 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
diff --git a/gnulib-m4/gnulib-common.m4 b/gnulib-m4/gnulib-common.m4
index 134bfba2..26eef771 100644
--- a/gnulib-m4/gnulib-common.m4
+++ b/gnulib-m4/gnulib-common.m4
@@ -1,6 +1,6 @@
# gnulib-common.m4
-# serial 113
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+# serial 115
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -414,22 +414,25 @@ AC_DEFUN([gl_COMMON_BODY], [
#endif
/* _GL_ATTRIBUTE_CONST declares:
- 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 _GL_ATTRIBUTE_PURE because the
- function cannot observe state. It is stricter than
- _GL_ATTRIBUTE_UNSEQUENCED because the function must return exactly
- once and cannot depend on state addressed by its arguments.) */
+ 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. */
#ifndef _GL_ATTRIBUTE_CONST
# if _GL_HAS_ATTRIBUTE (const)
# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
# else
-# define _GL_ATTRIBUTE_CONST _GL_ATTRIBUTE_UNSEQUENCED
+# define _GL_ATTRIBUTE_CONST
# endif
#endif
@@ -590,7 +593,9 @@ AC_DEFUN([gl_COMMON_BODY], [
/* _GL_ATTRIBUTE_MAYBE_UNUSED declares that it is not a programming mistake if
the entity is not used. The compiler should not warn if the entity is not
- used. */
+ used. However, 'int _GL_UNNAMED (i)' is preferable to
+ '_GL_ATTRIBUTE_MAYBE_UNUSED int i' when parameter I is unused
+ regardless of preprocessor macro settings. */
/* Applies to:
- function, variable,
- struct, union, struct/union member,
@@ -744,39 +749,40 @@ AC_DEFUN([gl_COMMON_BODY], [
#endif
/* _GL_ATTRIBUTE_PURE declares:
- 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.
+ 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. It is stricter than
- _GL_ATTRIBUTE_REPRODUCIBLE because the function must return exactly
- once and cannot affect state addressed by its arguments.) */
+ 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. */
#ifndef _GL_ATTRIBUTE_PURE
# if _GL_HAS_ATTRIBUTE (pure)
# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
# else
-# define _GL_ATTRIBUTE_PURE _GL_ATTRIBUTE_REPRODUCIBLE
+# define _GL_ATTRIBUTE_PURE
# endif
#endif
/* _GL_ATTRIBUTE_REPRODUCIBLE declares:
- 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.
+ 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 and idempotent. It is looser
- than _GL_ATTRIBUTE_PURE because the function need not return
- exactly once and can affect state addressed by its arguments.)
+ the function need not be stateless or independent.
+ Unlike _GL_ATTRIBUTE_PURE the function need not return exactly once
+ and can change state addressed by its pointer arguments, but the
+ function cannot return a pointer to storage whose contents change later.)
See also <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2956.htm> and
- <https://stackoverflow.com/questions/76847905/>.
- ATTENTION! Efforts are underway to change the meaning of this attribute.
- See <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3424.htm>. */
+ <https://stackoverflow.com/questions/76847905/>. */
/* Applies to: functions, pointer to functions, function types. */
#ifndef _GL_ATTRIBUTE_REPRODUCIBLE
/* This may be revisited when gcc and clang support [[reproducible]] or possibly
@@ -816,20 +822,22 @@ AC_DEFUN([gl_COMMON_BODY], [
#endif
/* _GL_ATTRIBUTE_UNSEQUENCED declares:
- 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 _GL_ATTRIBUTE_REPRODUCIBLE because
- the function must be stateless and independent. It is looser than
- _GL_ATTRIBUTE_CONST because the function need not return exactly
- once and can depend on state addressed by its arguments.)
+ the function must be stateless and independent. Unlike
+ _GL_ATTRIBUTE_CONST the function need not return exactly once, and
+ can depend on state accessed via its pointer arguments or that
+ happens to have the same value for all calls to the function, but
+ the function cannot return a pointer to storage whose contents
+ change later.)
See also <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2956.htm> and
- <https://stackoverflow.com/questions/76847905/>.
- ATTENTION! Efforts are underway to change the meaning of this attribute.
- See <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3424.htm>. */
+ <https://stackoverflow.com/questions/76847905/>. */
/* Applies to: functions, pointer to functions, function types. */
#ifndef _GL_ATTRIBUTE_UNSEQUENCED
/* This may be revisited when gcc and clang support [[unsequenced]] or possibly
@@ -869,6 +877,21 @@ AC_DEFUN([gl_COMMON_BODY], [
# endif
#endif
+/* _GL_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. */
+#ifndef _GL_UNNAMED
+# if ((defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 202311 \
+ && !defined __cplusplus)
+# define _GL_UNNAMED(id) unnamed_##id _GL_ATTRIBUTE_UNUSED
+# else
+# define _GL_UNNAMED(id)
+# endif
+#endif
+
/* The following attributes enable detection of multithread-safety problems
and resource leaks at compile-time, by clang ≥ 15, when the warning option
-Wthread-safety is enabled. For usage, see
@@ -1406,7 +1429,7 @@ AC_DEFUN([gl_CC_GNULIB_WARNINGS],
dnl -Wno-type-limits >= 4.3 >= 3.9
dnl -Wno-undef >= 3 >= 3.9
dnl -Wno-unsuffixed-float-constants >= 4.5
- dnl -Wno-unused-const-variable >= 4.4 >= 3.9
+ dnl -Wno-unused-const-variable >= 6.1 >= 3.9
dnl -Wno-unused-function >= 3 >= 3.9
dnl -Wno-unused-parameter >= 3 >= 3.9
dnl
@@ -1436,7 +1459,7 @@ AC_DEFUN([gl_CC_GNULIB_WARNINGS],
-Wno-sign-conversion
-Wno-type-limits
#endif
- #if (__GNUC__ + (__GNUC_MINOR__ >= 4) > 4 && !defined __clang__) || (__clang_major__ + (__clang_minor__ >= 9) > 3)
+ #if (__GNUC__ + (__GNUC_MINOR__ >= 1) > 6 && !defined __clang__) || (__clang_major__ + (__clang_minor__ >= 9) > 3)
-Wno-unused-const-variable
#endif
#if (__GNUC__ + (__GNUC_MINOR__ >= 5) > 4 && !defined __clang__)
diff --git a/gnulib-m4/gnulib-comp.m4 b/gnulib-m4/gnulib-comp.m4
index 3f238a2a..6ae83ecd 100644
--- a/gnulib-m4/gnulib-comp.m4
+++ b/gnulib-m4/gnulib-comp.m4
@@ -1,5 +1,5 @@
# DO NOT EDIT! GENERATED AUTOMATICALLY!
-# 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
@@ -346,8 +346,8 @@ AC_DEFUN([gl_EARLY],
# Code from module setsockopt-tests:
# Code from module signal-h:
# Code from module signal-h-tests:
- # Code from module signbit:
- # Code from module signbit-tests:
+ # Code from module signbit-no-c++:
+ # Code from module signbit-no-c++-tests:
# Code from module signed-nan:
# Code from module signed-snan:
# Code from module sigprocmask:
@@ -380,6 +380,7 @@ AC_DEFUN([gl_EARLY],
# Code from module stdio-h:
gl_STDIO_H_EARLY
# Code from module stdio-h-tests:
+ # Code from module stdio-windows:
# Code from module stdlib-h:
# Code from module stdlib-h-tests:
# Code from module stpcpy:
@@ -387,7 +388,7 @@ AC_DEFUN([gl_EARLY],
# Code from module str_endswith-tests:
# Code from module str_startswith:
# Code from module str_startswith-tests:
- # Code from module streq:
+ # Code from module streq-opt:
# Code from module strerror:
# Code from module strerror-override:
# Code from module strerror-tests:
@@ -402,6 +403,8 @@ AC_DEFUN([gl_EARLY],
# Code from module stringeq:
# Code from module strncat:
# Code from module strncat-tests:
+ # Code from module strncpy:
+ # Code from module strncpy-tests:
# Code from module strstr:
# Code from module strstr-simple:
# Code from module strstr-tests:
@@ -1803,7 +1806,7 @@ AC_DEFUN([gl_INIT],
gl_LOCALE_MODULE_INDICATOR([setlocale_null])
gl_SIGNBIT
gl_CONDITIONAL([GL_COND_OBJ_SIGNBIT3], [test $REPLACE_SIGNBIT = 1])
- gl_MATH_MODULE_INDICATOR([signbit])
+ gl_MATH_MODULE_INDICATOR([signbit-no-cxx])
gl_SIZE_MAX
gt_TYPE_SSIZE_T
gl_STDCKDINT_H
@@ -1837,6 +1840,12 @@ AC_DEFUN([gl_INIT],
gl_PREREQ_STRNCAT
])
gl_STRING_MODULE_INDICATOR([strncat])
+ gl_FUNC_STRNCPY
+ gl_CONDITIONAL([GL_COND_OBJ_STRNCPY], [test $REPLACE_STRNCPY = 1])
+ AM_COND_IF([GL_COND_OBJ_STRNCPY], [
+ gl_PREREQ_STRNCPY
+ ])
+ gl_STRING_MODULE_INDICATOR([strncpy])
gl_FUNC_STRSTR
if test $REPLACE_STRSTR = 1; then
AC_LIBOBJ([strstr])
@@ -3340,18 +3349,6 @@ changequote([, ])dnl
gl_STDIO_H
gl_STDIO_H_REQUIRE_DEFAULTS
AC_PROG_MKDIR_P
- USES_MSVCRT=0
- case "$host_os" in
- mingw* | windows*)
- AC_EGREP_CPP([Special], [
- #ifndef _UCRT
- Special
- #endif
- ],
- [USES_MSVCRT=1])
- ;;
- esac
- gl_CONDITIONAL([GL_COND_OBJ_STDIO_CONSOLESAFE], [test $USES_MSVCRT = 1])
gl_CONDITIONAL([GL_COND_OBJ_STDIO_READ], [test $REPLACE_STDIO_READ_FUNCS = 1])
gl_CONDITIONAL([GL_COND_OBJ_STDIO_WRITE], [test $REPLACE_STDIO_WRITE_FUNCS = 1])
dnl No need to create extra modules for these functions. Everyone who uses
@@ -3378,6 +3375,20 @@ changequote([, ])dnl
gl_STDIO_MODULE_INDICATOR([puts])
gl_STDIO_MODULE_INDICATOR([fwrite])
gl_DOUBLE_EXPONENT_LOCATION
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ USES_MSVCRT=0
+ case "$host_os" in
+ mingw* | windows*)
+ AC_EGREP_CPP([Special], [
+ #ifndef _UCRT
+ Special
+ #endif
+ ],
+ [USES_MSVCRT=1])
+ ;;
+ esac
+ gl_CONDITIONAL([GL_COND_OBJ_STDIO_CONSOLESAFE], [test $USES_MSVCRT = 1])
+ AC_CHECK_FUNCS([vasprintf])
gl_FUNC_STPCPY
gl_CONDITIONAL([GL_COND_OBJ_STPCPY],
[test $HAVE_STPCPY = 0 || test $REPLACE_STPCPY = 1])
@@ -3409,6 +3420,9 @@ changequote([, ])dnl
gl_FUNC_MMAP_ANON
AC_CHECK_HEADERS_ONCE([sys/mman.h])
AC_CHECK_FUNCS_ONCE([mprotect])
+ gl_FUNC_MMAP_ANON
+ AC_CHECK_HEADERS_ONCE([sys/mman.h])
+ AC_CHECK_FUNCS_ONCE([mprotect])
AC_CHECK_DECLS_ONCE([alarm])
gl_FUNC_MMAP_ANON
AC_CHECK_HEADERS_ONCE([sys/mman.h])
@@ -3854,7 +3868,7 @@ AC_DEFUN([gl_FILE_LIST], [
lib/stdlib.c
lib/stdlib.in.h
lib/str-two-way.h
- lib/streq.h
+ lib/streq-opt.h
lib/striconveh.c
lib/striconveh.h
lib/striconveha.c
@@ -3862,6 +3876,7 @@ AC_DEFUN([gl_FILE_LIST], [
lib/string.c
lib/string.in.h
lib/strncat.c
+ lib/strncpy.c
lib/strstr.c
lib/struniq.h
lib/sys_types.in.h
@@ -4779,6 +4794,7 @@ AC_DEFUN([gl_FILE_LIST], [
m4/lib-ld.m4
m4/lib-link.m4
m4/lib-prefix.m4
+ m4/libdl.m4
m4/libunistring-base.m4
m4/limits-h.m4
m4/localcharset.m4
@@ -4881,6 +4897,7 @@ AC_DEFUN([gl_FILE_LIST], [
m4/string_h.m4
m4/stringeq.m4
m4/strncat.m4
+ m4/strncpy.m4
m4/strstr.m4
m4/symlink.m4
m4/sys_cdefs_h.m4
@@ -5172,6 +5189,7 @@ AC_DEFUN([gl_FILE_LIST], [
tests/test-striconveha.c
tests/test-string-h.c
tests/test-strncat.c
+ tests/test-strncpy.c
tests/test-strstr.c
tests/test-symlink.c
tests/test-symlink.h
diff --git a/gnulib-m4/gnulib-i18n.m4 b/gnulib-m4/gnulib-i18n.m4
index 868043e7..9a389187 100644
--- a/gnulib-m4/gnulib-i18n.m4
+++ b/gnulib-m4/gnulib-i18n.m4
@@ -1,6 +1,6 @@
# gnulib-i18n.m4
# serial 1
-dnl Copyright (C) 2005-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/host-cpu-c-abi.m4 b/gnulib-m4/host-cpu-c-abi.m4
index 6ca7721a..23661f4f 100644
--- a/gnulib-m4/host-cpu-c-abi.m4
+++ b/gnulib-m4/host-cpu-c-abi.m4
@@ -1,6 +1,6 @@
# host-cpu-c-abi.m4
# serial 20
-dnl Copyright (C) 2002-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/iconv.m4 b/gnulib-m4/iconv.m4
index f2b0c37d..7f14fc3e 100644
--- a/gnulib-m4/iconv.m4
+++ b/gnulib-m4/iconv.m4
@@ -1,6 +1,6 @@
# iconv.m4
# serial 32
-dnl Copyright (C) 2000-2002, 2007-2014, 2016-2025 Free Software Foundation,
+dnl Copyright (C) 2000-2002, 2007-2014, 2016-2026 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/iconv_h.m4 b/gnulib-m4/iconv_h.m4
index 2128564a..506ad2bc 100644
--- a/gnulib-m4/iconv_h.m4
+++ b/gnulib-m4/iconv_h.m4
@@ -1,6 +1,6 @@
# iconv_h.m4
# serial 16
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/iconv_open.m4 b/gnulib-m4/iconv_open.m4
index 3fe509f2..bebf94d0 100644
--- a/gnulib-m4/iconv_open.m4
+++ b/gnulib-m4/iconv_open.m4
@@ -1,6 +1,6 @@
# iconv_open.m4
# serial 19
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/include_next.m4 b/gnulib-m4/include_next.m4
index 80de991e..a19f2dfd 100644
--- a/gnulib-m4/include_next.m4
+++ b/gnulib-m4/include_next.m4
@@ -1,6 +1,6 @@
# include_next.m4
# serial 27
-dnl Copyright (C) 2006-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/inet_pton.m4 b/gnulib-m4/inet_pton.m4
index b6e59a25..150c3a07 100644
--- a/gnulib-m4/inet_pton.m4
+++ b/gnulib-m4/inet_pton.m4
@@ -1,6 +1,6 @@
# inet_pton.m4
-# serial 20
-dnl Copyright (C) 2006, 2008-2025 Free Software Foundation, Inc.
+# serial 21
+dnl Copyright (C) 2006, 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -19,6 +19,7 @@ AC_DEFUN([gl_FUNC_INET_PTON],
dnl Solaris 8..10 provide inet_pton in libnsl instead.
dnl Solaris 2.6..7 provide inet_pton in libresolv instead.
dnl Haiku provides it in -lnetwork.
+ dnl QNX provides it in -lsocket.
dnl Native Windows provides it in -lws2_32 instead, with a declaration in
dnl <ws2tcpip.h>, and it uses stdcall calling convention, not cdecl
dnl (hence we cannot use AC_CHECK_FUNCS, AC_SEARCH_LIBS to find it).
@@ -39,7 +40,7 @@ AC_DEFUN([gl_FUNC_INET_PTON],
fi
else
gl_saved_LIBS=$LIBS
- AC_SEARCH_LIBS([inet_pton], [nsl resolv network], [],
+ AC_SEARCH_LIBS([inet_pton], [nsl resolv network socket], [],
[AC_CHECK_FUNCS([inet_pton])
if test $ac_cv_func_inet_pton = no; then
HAVE_INET_PTON=0
diff --git a/gnulib-m4/init-package-version.m4 b/gnulib-m4/init-package-version.m4
index a95b804c..ca6d3cd9 100644
--- a/gnulib-m4/init-package-version.m4
+++ b/gnulib-m4/init-package-version.m4
@@ -1,6 +1,6 @@
# init-package-version.m4
# serial 7
-dnl Copyright (C) 1992-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 1992-2026 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
diff --git a/gnulib-m4/inline.m4 b/gnulib-m4/inline.m4
index 5a272425..df4402b2 100644
--- a/gnulib-m4/inline.m4
+++ b/gnulib-m4/inline.m4
@@ -1,6 +1,6 @@
# inline.m4
# serial 5
-dnl Copyright (C) 2006, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/intl-thread-locale.m4 b/gnulib-m4/intl-thread-locale.m4
index ec8a5125..7d030abe 100644
--- a/gnulib-m4/intl-thread-locale.m4
+++ b/gnulib-m4/intl-thread-locale.m4
@@ -1,6 +1,6 @@
# intl-thread-locale.m4
# serial 16
-dnl Copyright (C) 2015-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2015-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/intlmacosx.m4 b/gnulib-m4/intlmacosx.m4
index f0920d0f..d28df608 100644
--- a/gnulib-m4/intlmacosx.m4
+++ b/gnulib-m4/intlmacosx.m4
@@ -1,6 +1,6 @@
# intlmacosx.m4
# serial 10 (gettext-0.23)
-dnl Copyright (C) 2004-2014, 2016, 2019-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2004-2014, 2016, 2019-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/intmax_t.m4 b/gnulib-m4/intmax_t.m4
index c1df7b27..ad79536c 100644
--- a/gnulib-m4/intmax_t.m4
+++ b/gnulib-m4/intmax_t.m4
@@ -1,6 +1,6 @@
# intmax_t.m4
# serial 9
-dnl Copyright (C) 1997-2004, 2006-2007, 2009-2025 Free Software Foundation,
+dnl Copyright (C) 1997-2004, 2006-2007, 2009-2026 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/inttypes.m4 b/gnulib-m4/inttypes.m4
index 63c82c61..ec17c237 100644
--- a/gnulib-m4/inttypes.m4
+++ b/gnulib-m4/inttypes.m4
@@ -1,6 +1,6 @@
# inttypes.m4
# serial 37
-dnl Copyright (C) 2006-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/inttypes_h.m4 b/gnulib-m4/inttypes_h.m4
index ad939a53..ed9e7033 100644
--- a/gnulib-m4/inttypes_h.m4
+++ b/gnulib-m4/inttypes_h.m4
@@ -1,6 +1,6 @@
# inttypes_h.m4
# serial 10
-dnl Copyright (C) 1997-2004, 2006, 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2004, 2006, 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/ioctl.m4 b/gnulib-m4/ioctl.m4
index 12a1379d..4a79aecd 100644
--- a/gnulib-m4/ioctl.m4
+++ b/gnulib-m4/ioctl.m4
@@ -1,6 +1,6 @@
# ioctl.m4
# serial 6
-dnl Copyright (C) 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/isblank.m4 b/gnulib-m4/isblank.m4
index 6aaf6071..f3af7cc1 100644
--- a/gnulib-m4/isblank.m4
+++ b/gnulib-m4/isblank.m4
@@ -1,6 +1,6 @@
# isblank.m4
# serial 3
-dnl Copyright (C) 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/isnand.m4 b/gnulib-m4/isnand.m4
index 16562866..962cf9d4 100644
--- a/gnulib-m4/isnand.m4
+++ b/gnulib-m4/isnand.m4
@@ -1,6 +1,6 @@
# isnand.m4
# serial 15
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/isnanf.m4 b/gnulib-m4/isnanf.m4
index a23b22b1..ab89e287 100644
--- a/gnulib-m4/isnanf.m4
+++ b/gnulib-m4/isnanf.m4
@@ -1,6 +1,6 @@
# isnanf.m4
# serial 22
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/isnanl.m4 b/gnulib-m4/isnanl.m4
index 01b2928a..495a959a 100644
--- a/gnulib-m4/isnanl.m4
+++ b/gnulib-m4/isnanl.m4
@@ -1,6 +1,6 @@
# isnanl.m4
# serial 27
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/iswblank.m4 b/gnulib-m4/iswblank.m4
index d06b16a2..2c301a97 100644
--- a/gnulib-m4/iswblank.m4
+++ b/gnulib-m4/iswblank.m4
@@ -1,6 +1,6 @@
# iswblank.m4
# serial 7
-dnl Copyright (C) 2011-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/iswdigit.m4 b/gnulib-m4/iswdigit.m4
index 4582f598..7fca8167 100644
--- a/gnulib-m4/iswdigit.m4
+++ b/gnulib-m4/iswdigit.m4
@@ -1,6 +1,6 @@
# iswdigit.m4
# serial 9
-dnl Copyright (C) 2020-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2020-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/iswpunct.m4 b/gnulib-m4/iswpunct.m4
index d8e8d712..be312d6c 100644
--- a/gnulib-m4/iswpunct.m4
+++ b/gnulib-m4/iswpunct.m4
@@ -1,6 +1,6 @@
# iswpunct.m4
# serial 2
-dnl Copyright (C) 2023-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2023-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/iswxdigit.m4 b/gnulib-m4/iswxdigit.m4
index 95226fc4..2cb8e873 100644
--- a/gnulib-m4/iswxdigit.m4
+++ b/gnulib-m4/iswxdigit.m4
@@ -1,6 +1,6 @@
# iswxdigit.m4
# serial 9
-dnl Copyright (C) 2020-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2020-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/largefile.m4 b/gnulib-m4/largefile.m4
index 6aa07078..3134f336 100644
--- a/gnulib-m4/largefile.m4
+++ b/gnulib-m4/largefile.m4
@@ -1,6 +1,6 @@
# largefile.m4
# serial 4
-dnl Copyright 1992-1996, 1998-2025 Free Software Foundation, Inc.
+dnl Copyright 1992-1996, 1998-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/lcmessage.m4 b/gnulib-m4/lcmessage.m4
index e83f1fa4..1c7e45f7 100644
--- a/gnulib-m4/lcmessage.m4
+++ b/gnulib-m4/lcmessage.m4
@@ -1,6 +1,6 @@
# lcmessage.m4
# serial 8
-dnl Copyright (C) 1995-2002, 2004-2005, 2008-2014, 2016, 2019-2025 Free
+dnl Copyright (C) 1995-2002, 2004-2005, 2008-2014, 2016, 2019-2026 Free
dnl Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/ldexpl.m4 b/gnulib-m4/ldexpl.m4
index 5288d72f..c2b17684 100644
--- a/gnulib-m4/ldexpl.m4
+++ b/gnulib-m4/ldexpl.m4
@@ -1,6 +1,6 @@
# ldexpl.m4
# serial 19
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/lib-ld.m4 b/gnulib-m4/lib-ld.m4
index 3714b9ce..f32028c0 100644
--- a/gnulib-m4/lib-ld.m4
+++ b/gnulib-m4/lib-ld.m4
@@ -1,6 +1,6 @@
# lib-ld.m4
# serial 13
-dnl Copyright (C) 1996-2003, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 1996-2003, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/lib-link.m4 b/gnulib-m4/lib-link.m4
index 1863f4e1..6be17b14 100644
--- a/gnulib-m4/lib-link.m4
+++ b/gnulib-m4/lib-link.m4
@@ -1,6 +1,6 @@
# lib-link.m4
# serial 35
-dnl Copyright (C) 2001-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/lib-prefix.m4 b/gnulib-m4/lib-prefix.m4
index 29283534..9e4326e9 100644
--- a/gnulib-m4/lib-prefix.m4
+++ b/gnulib-m4/lib-prefix.m4
@@ -1,6 +1,6 @@
# lib-prefix.m4
# serial 23
-dnl Copyright (C) 2001-2005, 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2005, 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/libdl.m4 b/gnulib-m4/libdl.m4
new file mode 100644
index 00000000..79d69063
--- /dev/null
+++ b/gnulib-m4/libdl.m4
@@ -0,0 +1,46 @@
+# libdl.m4
+# serial 3
+dnl Copyright (C) 2024-2026 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl This file is offered as-is, without any warranty.
+
+dnl From Bruno Haible.
+
+dnl Set LIBDL to '-ldl' if it is needed to use the functions declared
+dnl in <dlfcn.h> (dlopen, dlsym, etc.), or to empty otherwise.
+AC_DEFUN([gl_LIBDL],
+[
+ dnl dlopen, dlsym are
+ dnl - in libc on glibc >= 2.34, musl libc, macOS, FreeBSD, NetBSD, OpenBSD,
+ dnl AIX, Solaris, Cygwin, Haiku,
+ dnl - in a separate libdl on glibc < 2.34, uClibc, Android.
+ AC_CACHE_CHECK([for library needed for dlopen and dlsym],
+ [gl_cv_lib_dl],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <dlfcn.h>
+ ]],
+ [[return ! dlsym (RTLD_DEFAULT, "main");]])],
+ [gl_cv_lib_dl=none],
+ [gl_cv_lib_dl=maybe])
+ if test $gl_cv_lib_dl = maybe; then
+ saved_LIBS="$LIBS"
+ LIBS="$LIBS -ldl"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <dlfcn.h>
+ ]],
+ [[return ! dlsym (RTLD_DEFAULT, "main");]])],
+ [gl_cv_lib_dl='-ldl'],
+ [gl_cv_lib_dl=none])
+ LIBS="$saved_LIBS"
+ fi
+ ])
+ case "$gl_cv_lib_dl" in
+ none) LIBDL='' ;;
+ *) LIBDL="$gl_cv_lib_dl" ;;
+ esac
+ AC_SUBST([LIBDL])
+])
diff --git a/gnulib-m4/libunistring-base.m4 b/gnulib-m4/libunistring-base.m4
index 9b5795ed..f2f144ac 100644
--- a/gnulib-m4/libunistring-base.m4
+++ b/gnulib-m4/libunistring-base.m4
@@ -1,6 +1,6 @@
# libunistring-base.m4
# serial 10
-dnl Copyright (C) 2010-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2010-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/limits-h.m4 b/gnulib-m4/limits-h.m4
index 202df492..048c8fab 100644
--- a/gnulib-m4/limits-h.m4
+++ b/gnulib-m4/limits-h.m4
@@ -1,6 +1,6 @@
# limits-h.m4
# serial 1
-dnl Copyright 2016-2025 Free Software Foundation, Inc.
+dnl Copyright 2016-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/localcharset.m4 b/gnulib-m4/localcharset.m4
index 374a48f1..8e2c2755 100644
--- a/gnulib-m4/localcharset.m4
+++ b/gnulib-m4/localcharset.m4
@@ -1,6 +1,6 @@
# localcharset.m4
# serial 8
-dnl Copyright (C) 2002, 2004, 2006, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2004, 2006, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/locale-ar.m4 b/gnulib-m4/locale-ar.m4
index d5fa9561..b0b4d8e9 100644
--- a/gnulib-m4/locale-ar.m4
+++ b/gnulib-m4/locale-ar.m4
@@ -1,6 +1,6 @@
# locale-ar.m4
# serial 12
-dnl Copyright (C) 2003, 2005-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2005-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/locale-en.m4 b/gnulib-m4/locale-en.m4
index 4151428a..f5e035f3 100644
--- a/gnulib-m4/locale-en.m4
+++ b/gnulib-m4/locale-en.m4
@@ -1,6 +1,6 @@
# locale-en.m4
# serial 1
-dnl Copyright (C) 2003-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2003-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -19,7 +19,7 @@ AC_DEFUN_ONCE([gt_LOCALE_EN_UTF8],
*-musl* | midipix*)
dnl On musl libc, all kinds of ll_CC.UTF-8 locales exist, even without
dnl any locale file on disk. But they are effectively equivalent to the
- dnl C.UTF-8 locale, except for locale categories (such as LC_MESSSAGES)
+ dnl C.UTF-8 locale, except for locale categories (such as LC_MESSAGES)
dnl for which localizations (.mo files) have been installed.
gt_cv_locale_en_utf8=en_US.UTF-8
;;
diff --git a/gnulib-m4/locale-fr.m4 b/gnulib-m4/locale-fr.m4
index 31c3bf33..097cefa6 100644
--- a/gnulib-m4/locale-fr.m4
+++ b/gnulib-m4/locale-fr.m4
@@ -1,6 +1,6 @@
# locale-fr.m4
# serial 25
-dnl Copyright (C) 2003, 2005-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2005-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -156,7 +156,7 @@ AC_DEFUN_ONCE([gt_LOCALE_FR_UTF8],
*-musl* | midipix*)
dnl On musl libc, all kinds of ll_CC.UTF-8 locales exist, even without
dnl any locale file on disk. But they are effectively equivalent to the
- dnl C.UTF-8 locale, except for locale categories (such as LC_MESSSAGES)
+ dnl C.UTF-8 locale, except for locale categories (such as LC_MESSAGES)
dnl for which localizations (.mo files) have been installed.
gt_cv_locale_fr_utf8=fr_FR.UTF-8
;;
diff --git a/gnulib-m4/locale-ja.m4 b/gnulib-m4/locale-ja.m4
index 4b256859..ee4309ed 100644
--- a/gnulib-m4/locale-ja.m4
+++ b/gnulib-m4/locale-ja.m4
@@ -1,6 +1,6 @@
# locale-ja.m4
# serial 21
-dnl Copyright (C) 2003, 2005-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2005-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/locale-tr.m4 b/gnulib-m4/locale-tr.m4
index 7983fd63..34f28a9c 100644
--- a/gnulib-m4/locale-tr.m4
+++ b/gnulib-m4/locale-tr.m4
@@ -1,6 +1,6 @@
# locale-tr.m4
# serial 16
-dnl Copyright (C) 2003, 2005-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2005-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/locale-zh.m4 b/gnulib-m4/locale-zh.m4
index 6f9374d2..98975bdd 100644
--- a/gnulib-m4/locale-zh.m4
+++ b/gnulib-m4/locale-zh.m4
@@ -1,6 +1,6 @@
# locale-zh.m4
# serial 20
-dnl Copyright (C) 2003, 2005-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2005-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/locale_h.m4 b/gnulib-m4/locale_h.m4
index ae01b4ff..aeda9f9d 100644
--- a/gnulib-m4/locale_h.m4
+++ b/gnulib-m4/locale_h.m4
@@ -1,6 +1,6 @@
# locale_h.m4
# serial 39
-dnl Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/localeconv.m4 b/gnulib-m4/localeconv.m4
index 55a669d0..9fa31de8 100644
--- a/gnulib-m4/localeconv.m4
+++ b/gnulib-m4/localeconv.m4
@@ -1,6 +1,6 @@
# localeconv.m4
# serial 3
-dnl Copyright (C) 2012-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/localename.m4 b/gnulib-m4/localename.m4
index 5cb26481..18387d08 100644
--- a/gnulib-m4/localename.m4
+++ b/gnulib-m4/localename.m4
@@ -1,6 +1,6 @@
# localename.m4
# serial 15
-dnl Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/lock.m4 b/gnulib-m4/lock.m4
index d085f442..7058fb30 100644
--- a/gnulib-m4/lock.m4
+++ b/gnulib-m4/lock.m4
@@ -1,6 +1,6 @@
# lock.m4
# serial 15
-dnl Copyright (C) 2005-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/lstat.m4 b/gnulib-m4/lstat.m4
index efae2485..57df6fd9 100644
--- a/gnulib-m4/lstat.m4
+++ b/gnulib-m4/lstat.m4
@@ -1,6 +1,6 @@
# lstat.m4
# serial 36
-dnl Copyright (C) 1997-2001, 2003-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2001, 2003-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/malloc.m4 b/gnulib-m4/malloc.m4
index 688594fe..a95e33db 100644
--- a/gnulib-m4/malloc.m4
+++ b/gnulib-m4/malloc.m4
@@ -1,6 +1,6 @@
# malloc.m4
-# serial 44
-dnl Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+# serial 46
+dnl Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -99,7 +99,7 @@ AC_DEFUN([gl_FUNC_MALLOC_PTRDIFF],
[REPLACE_MALLOC_FOR_MALLOC_POSIX=1])
])
-# Test whether malloc, realloc, calloc refuse to create objects
+# Test whether malloc, calloc refuse to create objects
# larger than what can be expressed in ptrdiff_t.
# Set gl_cv_func_malloc_gnu.
AC_DEFUN([gl_CHECK_MALLOC_PTRDIFF],
@@ -148,7 +148,7 @@ AC_DEFUN([gl_FUNC_MALLOC_POSIX],
case "$gl_cv_func_malloc_posix" in
*yes)
AC_DEFINE([HAVE_MALLOC_POSIX], [1],
- [Define if malloc, realloc, and calloc set errno on allocation failure.])
+ [Define if malloc and calloc set errno on allocation failure.])
;;
*)
REPLACE_MALLOC_FOR_MALLOC_POSIX=1
@@ -156,19 +156,20 @@ AC_DEFUN([gl_FUNC_MALLOC_POSIX],
esac
])
-# Test whether malloc, realloc, calloc set errno to ENOMEM on failure.
+# Test whether malloc, calloc set errno to ENOMEM on failure.
# Set gl_cv_func_malloc_posix to *yes or *no accordingly.
AC_DEFUN([gl_CHECK_MALLOC_POSIX],
[
AC_REQUIRE([AC_CANONICAL_HOST])
- AC_CACHE_CHECK([whether malloc, realloc, calloc set errno on failure],
+ AC_CACHE_CHECK([whether malloc, calloc set errno on failure],
[gl_cv_func_malloc_posix],
[
dnl It is too dangerous to try to allocate a large amount of memory:
dnl some systems go to their knees when you do that. So assume that
dnl all Unix implementations of the function set errno on failure,
dnl except on those platforms where we have seen 'test-malloc-gnu',
- dnl 'test-realloc-posix', 'test-calloc-gnu' fail.
+ dnl 'test-realloc-posix', 'test-calloc-gnu' fail. For platforms
+ dnl where only 'test-realloc-posix', see realloc.m4.
case "$host_os" in
mingw* | windows*)
dnl Old MSVCRT from 2001 did not set errno=ENOMEM when malloc failed.
@@ -187,37 +188,41 @@ AC_DEFUN([gl_CHECK_MALLOC_POSIX],
[gl_cv_func_malloc_posix="guessing no"])
;;
solaris*)
- dnl On Solaris 11.3, the three functions return NULL with errno set
+ dnl On Solaris 11.3, the three functions might fail with errno set
dnl to EAGAIN, not ENOMEM, when the argument is larger than
- dnl PTRDIFF_MAX.
+ dnl PTRDIFF_MAX. See:
+ dnl https://lists.gnu.org/r/bug-gnulib/2021-05/msg00052.html
dnl Here is a test program:
+
m4_divert_push([KILL])
#include <errno.h>
+#include <stddef.h>
#include <stdio.h>
+#include <stdint.h>
#include <stdlib.h>
-#define ptrdiff_t long
-#ifndef PTRDIFF_MAX
-# define PTRDIFF_MAX ((ptrdiff_t) ((1UL << (8 * sizeof (ptrdiff_t) - 1)) - 1))
-#endif
-int main ()
+#define TEST_CALL(call) \
+ do { \
+ void *p = call; \
+ if (p) \
+ fprintf (stderr, "returned %p (incorrect success)\n", p); \
+ else if (errno == ENOMEM) \
+ perror ("correct failure"); \
+ else \
+ perror ("incorrect failure (wrong errno)"); \
+ free (p); \
+ } while (0)
+
+int
+main ()
{
- void *p;
-
- fprintf (stderr, "PTRDIFF_MAX = %lu\n", (unsigned long) PTRDIFF_MAX);
-
- errno = 0;
- p = malloc ((unsigned long) PTRDIFF_MAX + 1);
- fprintf (stderr, "p=%p errno=%d\n", p, errno);
-
- errno = 0;
- p = calloc (PTRDIFF_MAX / 2 + 1, 2);
- fprintf (stderr, "p=%p errno=%d\n", p, errno);
-
- errno = 0;
- p = realloc (NULL, (unsigned long) PTRDIFF_MAX + 1);
- fprintf (stderr, "p=%p errno=%d\n", p, errno);
-
+ size_t big = PTRDIFF_MAX;
+ TEST_CALL (malloc (big + 1));
+ TEST_CALL (calloc (big / 2 + 1, 2));
+ TEST_CALL (realloc (NULL, big + 1));
+ void *small = malloc (1);
+ TEST_CALL (realloc (small, big + 1));
+ free (small);
return 0;
}
m4_divert_pop([KILL])
diff --git a/gnulib-m4/malloca.m4 b/gnulib-m4/malloca.m4
index cabe5fe7..2c0ed8ea 100644
--- a/gnulib-m4/malloca.m4
+++ b/gnulib-m4/malloca.m4
@@ -1,6 +1,6 @@
# malloca.m4
# serial 3
-dnl Copyright (C) 2003-2004, 2006-2007, 2009-2025 Free Software Foundation,
+dnl Copyright (C) 2003-2004, 2006-2007, 2009-2026 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/math_h.m4 b/gnulib-m4/math_h.m4
index fa2ace3f..4cf59671 100644
--- a/gnulib-m4/math_h.m4
+++ b/gnulib-m4/math_h.m4
@@ -1,6 +1,6 @@
# math_h.m4
-# serial 141
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+# serial 146
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -131,8 +131,11 @@ AC_DEFUN([gl_MATH_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ILOGBF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ILOGBL])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISFINITE])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISFINITE_NO_CXX])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISINF])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISINF_NO_CXX])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISNAN])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISNAN_NO_CXX])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISNANF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISNAND])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISNANL])
@@ -177,6 +180,7 @@ AC_DEFUN([gl_MATH_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETPAYLOADSIGF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETPAYLOADSIGL])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGNBIT])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGNBIT_NO_CXX])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SINF])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SINL])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SINHF])
@@ -396,6 +400,7 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
REPLACE_SIGNBIT_USING_BUILTINS=0; AC_SUBST([REPLACE_SIGNBIT_USING_BUILTINS])
REPLACE_SINF=0; AC_SUBST([REPLACE_SINF])
REPLACE_SINHF=0; AC_SUBST([REPLACE_SINHF])
+ REPLACE_SINL=0; AC_SUBST([REPLACE_SINL])
REPLACE_SQRTF=0; AC_SUBST([REPLACE_SQRTF])
REPLACE_SQRTL=0; AC_SUBST([REPLACE_SQRTL])
REPLACE_TANF=0; AC_SUBST([REPLACE_TANF])
diff --git a/gnulib-m4/mbchar.m4 b/gnulib-m4/mbchar.m4
index b76f1d7b..4251a84c 100644
--- a/gnulib-m4/mbchar.m4
+++ b/gnulib-m4/mbchar.m4
@@ -1,6 +1,6 @@
# mbchar.m4
# serial 9
-dnl Copyright (C) 2005-2007, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2007, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/mbiter.m4 b/gnulib-m4/mbiter.m4
index b51242e6..927876bc 100644
--- a/gnulib-m4/mbiter.m4
+++ b/gnulib-m4/mbiter.m4
@@ -1,6 +1,6 @@
# mbiter.m4
# serial 7
-dnl Copyright (C) 2005, 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/mbrtoc32.m4 b/gnulib-m4/mbrtoc32.m4
index 1991529c..d1690fb4 100644
--- a/gnulib-m4/mbrtoc32.m4
+++ b/gnulib-m4/mbrtoc32.m4
@@ -1,6 +1,6 @@
# mbrtoc32.m4
# serial 21
-dnl Copyright (C) 2014-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2014-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/mbrtowc.m4 b/gnulib-m4/mbrtowc.m4
index 4ed9510f..a49872fa 100644
--- a/gnulib-m4/mbrtowc.m4
+++ b/gnulib-m4/mbrtowc.m4
@@ -1,6 +1,6 @@
# mbrtowc.m4
# serial 47
-dnl Copyright (C) 2001-2002, 2004-2005, 2008-2025 Free Software Foundation,
+dnl Copyright (C) 2001-2002, 2004-2005, 2008-2026 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/mbsinit.m4 b/gnulib-m4/mbsinit.m4
index 69cfa574..757f2360 100644
--- a/gnulib-m4/mbsinit.m4
+++ b/gnulib-m4/mbsinit.m4
@@ -1,6 +1,6 @@
# mbsinit.m4
# serial 10
-dnl Copyright (C) 2008, 2010-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2008, 2010-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/mbstate_t.m4 b/gnulib-m4/mbstate_t.m4
index 59df1e2e..88307d7a 100644
--- a/gnulib-m4/mbstate_t.m4
+++ b/gnulib-m4/mbstate_t.m4
@@ -1,6 +1,6 @@
# mbstate_t.m4
# serial 14
-dnl Copyright (C) 2000-2002, 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2000-2002, 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/mbtowc.m4 b/gnulib-m4/mbtowc.m4
index 3e3f6ce0..9c5887d3 100644
--- a/gnulib-m4/mbtowc.m4
+++ b/gnulib-m4/mbtowc.m4
@@ -1,6 +1,6 @@
# mbtowc.m4
# serial 5
-dnl Copyright (C) 2011-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/memchr.m4 b/gnulib-m4/memchr.m4
index 9647b20e..c5c74682 100644
--- a/gnulib-m4/memchr.m4
+++ b/gnulib-m4/memchr.m4
@@ -1,6 +1,6 @@
# memchr.m4
# serial 21
-dnl Copyright (C) 2002-2004, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2004, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/minmax.m4 b/gnulib-m4/minmax.m4
index 69c8a89f..3344e3f7 100644
--- a/gnulib-m4/minmax.m4
+++ b/gnulib-m4/minmax.m4
@@ -1,6 +1,6 @@
# minmax.m4
# serial 4
-dnl Copyright (C) 2005, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/mkfifo.m4 b/gnulib-m4/mkfifo.m4
index 9e85a89f..b155c872 100644
--- a/gnulib-m4/mkfifo.m4
+++ b/gnulib-m4/mkfifo.m4
@@ -1,6 +1,6 @@
# mkfifo.m4
# serial 9
-dnl Copyright (C) 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/mmap-anon.m4 b/gnulib-m4/mmap-anon.m4
index abf6194a..b5e323d4 100644
--- a/gnulib-m4/mmap-anon.m4
+++ b/gnulib-m4/mmap-anon.m4
@@ -1,6 +1,6 @@
# mmap-anon.m4
# serial 15
-dnl Copyright (C) 2005, 2007, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2007, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/mode_t.m4 b/gnulib-m4/mode_t.m4
index 7dae201b..4621813d 100644
--- a/gnulib-m4/mode_t.m4
+++ b/gnulib-m4/mode_t.m4
@@ -1,6 +1,6 @@
# mode_t.m4
# serial 2
-dnl Copyright (C) 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/msvc-inval.m4 b/gnulib-m4/msvc-inval.m4
index bfbb983b..565c0d3a 100644
--- a/gnulib-m4/msvc-inval.m4
+++ b/gnulib-m4/msvc-inval.m4
@@ -1,6 +1,6 @@
# msvc-inval.m4
# serial 1
-dnl Copyright (C) 2011-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/msvc-nothrow.m4 b/gnulib-m4/msvc-nothrow.m4
index 6a470971..1c2b491e 100644
--- a/gnulib-m4/msvc-nothrow.m4
+++ b/gnulib-m4/msvc-nothrow.m4
@@ -1,6 +1,6 @@
# msvc-nothrow.m4
# serial 1
-dnl Copyright (C) 2011-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/multiarch.m4 b/gnulib-m4/multiarch.m4
index 817f01f1..4fb642b7 100644
--- a/gnulib-m4/multiarch.m4
+++ b/gnulib-m4/multiarch.m4
@@ -1,6 +1,6 @@
# multiarch.m4
# serial 9
-dnl Copyright (C) 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/musl.m4 b/gnulib-m4/musl.m4
index 6ff778cb..15b34466 100644
--- a/gnulib-m4/musl.m4
+++ b/gnulib-m4/musl.m4
@@ -1,6 +1,6 @@
# musl.m4
# serial 4
-dnl Copyright (C) 2019-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2019-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/nan-mips.m4 b/gnulib-m4/nan-mips.m4
index 144c2de8..da807c66 100644
--- a/gnulib-m4/nan-mips.m4
+++ b/gnulib-m4/nan-mips.m4
@@ -1,6 +1,6 @@
# nan-mips.m4
# serial 1
-dnl Copyright (C) 2023-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2023-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/nanosleep.m4 b/gnulib-m4/nanosleep.m4
index 81c45d8a..3a9967c8 100644
--- a/gnulib-m4/nanosleep.m4
+++ b/gnulib-m4/nanosleep.m4
@@ -1,6 +1,6 @@
# nanosleep.m4
-# serial 47
-dnl Copyright (C) 1999-2001, 2003-2025 Free Software Foundation, Inc.
+# serial 48
+dnl Copyright (C) 1999-2001, 2003-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -144,6 +144,25 @@ AC_DEFUN([gl_FUNC_NANOSLEEP],
;;
esac
else
+ # Replace the static inline function on mingw which requires linking to
+ # libwinpthreads.
+ AC_CACHE_CHECK([for static inline nanosleep],
+ [gl_cv_static_inline_nanosleep],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <time.h>]],
+ [[
+ static struct timespec ts1;
+ static struct timespec ts2;
+ return nanosleep (&ts1, &ts2);
+ ]])
+ ],
+ [gl_cv_static_inline_nanosleep=yes],
+ [gl_cv_static_inline_nanosleep=no])
+ ])
+ if test $gl_cv_static_inline_nanosleep = yes; then
+ REPLACE_NANOSLEEP=1
+ fi
HAVE_NANOSLEEP=0
fi
LIBS=$gl_saved_LIBS
diff --git a/gnulib-m4/netinet_in_h.m4 b/gnulib-m4/netinet_in_h.m4
index b56e354c..6d9eaf97 100644
--- a/gnulib-m4/netinet_in_h.m4
+++ b/gnulib-m4/netinet_in_h.m4
@@ -1,6 +1,6 @@
# netinet_in_h.m4
# serial 6
-dnl Copyright (C) 2006-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/nocrash.m4 b/gnulib-m4/nocrash.m4
index 662fb049..5c1af8c7 100644
--- a/gnulib-m4/nocrash.m4
+++ b/gnulib-m4/nocrash.m4
@@ -1,6 +1,6 @@
# nocrash.m4
# serial 5
-dnl Copyright (C) 2005, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/off64_t.m4 b/gnulib-m4/off64_t.m4
index 963d53e9..93d9e37b 100644
--- a/gnulib-m4/off64_t.m4
+++ b/gnulib-m4/off64_t.m4
@@ -1,6 +1,6 @@
# off64_t.m4
# serial 1
-dnl Copyright (C) 2024-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2024-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/off_t.m4 b/gnulib-m4/off_t.m4
index f4f4bbf6..d7d6aa0c 100644
--- a/gnulib-m4/off_t.m4
+++ b/gnulib-m4/off_t.m4
@@ -1,6 +1,6 @@
# off_t.m4
# serial 1
-dnl Copyright (C) 2012-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/once.m4 b/gnulib-m4/once.m4
index 7876a8fe..a478d81a 100644
--- a/gnulib-m4/once.m4
+++ b/gnulib-m4/once.m4
@@ -1,6 +1,6 @@
# once.m4
# serial 1
-dnl Copyright (C) 2024-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2024-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/open-cloexec.m4 b/gnulib-m4/open-cloexec.m4
index 860541b0..9c9aef23 100644
--- a/gnulib-m4/open-cloexec.m4
+++ b/gnulib-m4/open-cloexec.m4
@@ -1,6 +1,6 @@
# open-cloexec.m4
# serial 1
-dnl Copyright 2017-2025 Free Software Foundation, Inc.
+dnl Copyright 2017-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/open-slash.m4 b/gnulib-m4/open-slash.m4
index 2cba48fe..c36bdced 100644
--- a/gnulib-m4/open-slash.m4
+++ b/gnulib-m4/open-slash.m4
@@ -1,6 +1,6 @@
# open-slash.m4
# serial 2
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/open.m4 b/gnulib-m4/open.m4
index dd3a805f..f5b2a91c 100644
--- a/gnulib-m4/open.m4
+++ b/gnulib-m4/open.m4
@@ -1,6 +1,6 @@
# open.m4
# serial 17
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/pathmax.m4 b/gnulib-m4/pathmax.m4
index 0c3925df..d6bdf43e 100644
--- a/gnulib-m4/pathmax.m4
+++ b/gnulib-m4/pathmax.m4
@@ -1,6 +1,6 @@
# pathmax.m4
# serial 11
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2025 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2026 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/perror.m4 b/gnulib-m4/perror.m4
index 62b75d09..4052ab4a 100644
--- a/gnulib-m4/perror.m4
+++ b/gnulib-m4/perror.m4
@@ -1,6 +1,6 @@
# perror.m4
# serial 13
-dnl Copyright (C) 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/pipe.m4 b/gnulib-m4/pipe.m4
index a1709842..41fed87b 100644
--- a/gnulib-m4/pipe.m4
+++ b/gnulib-m4/pipe.m4
@@ -1,6 +1,6 @@
# pipe.m4
# serial 2
-dnl Copyright (C) 2010-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2010-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/printf-frexp.m4 b/gnulib-m4/printf-frexp.m4
index 3e9737fa..e1d1f4b0 100644
--- a/gnulib-m4/printf-frexp.m4
+++ b/gnulib-m4/printf-frexp.m4
@@ -1,6 +1,6 @@
# printf-frexp.m4
# serial 5
-dnl Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/printf-frexpl.m4 b/gnulib-m4/printf-frexpl.m4
index e7e23eb7..22e69639 100644
--- a/gnulib-m4/printf-frexpl.m4
+++ b/gnulib-m4/printf-frexpl.m4
@@ -1,6 +1,6 @@
# printf-frexpl.m4
# serial 10
-dnl Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/printf.m4 b/gnulib-m4/printf.m4
index 3aadf99c..0de493b6 100644
--- a/gnulib-m4/printf.m4
+++ b/gnulib-m4/printf.m4
@@ -1,6 +1,6 @@
# printf.m4
# serial 98
-dnl Copyright (C) 2003, 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -937,7 +937,7 @@ int main ()
_CrtSetReportMode (_CRT_ASSERT, 0);
#endif
signal (SIGABRT, abort_handler);
- /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2)
+ /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE >= 2)
support %n in format strings in read-only memory but not in writable
memory. */
strcpy (fmtstring, "%d %n");
@@ -1849,7 +1849,7 @@ int main ()
{
int count = -1;
signal (SIGABRT, abort_handler);
- /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2)
+ /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE >= 2)
support %n in format strings in read-only memory but not in writable
memory. */
strcpy (fmtstring, "%d %n");
diff --git a/gnulib-m4/pselect.m4 b/gnulib-m4/pselect.m4
index 06df1b9a..829910b8 100644
--- a/gnulib-m4/pselect.m4
+++ b/gnulib-m4/pselect.m4
@@ -1,6 +1,6 @@
# pselect.m4
# serial 11
-dnl Copyright (C) 2011-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/pthread-cond.m4 b/gnulib-m4/pthread-cond.m4
index 5c78f6ef..02d6efc2 100644
--- a/gnulib-m4/pthread-cond.m4
+++ b/gnulib-m4/pthread-cond.m4
@@ -1,6 +1,6 @@
# pthread-cond.m4
# serial 3
-dnl Copyright (C) 2019-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2019-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/pthread-mutex.m4 b/gnulib-m4/pthread-mutex.m4
index ae3acf4d..38c525da 100644
--- a/gnulib-m4/pthread-mutex.m4
+++ b/gnulib-m4/pthread-mutex.m4
@@ -1,6 +1,6 @@
# pthread-mutex.m4
# serial 4
-dnl Copyright (C) 2019-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2019-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/pthread-once.m4 b/gnulib-m4/pthread-once.m4
index 85549254..9080363d 100644
--- a/gnulib-m4/pthread-once.m4
+++ b/gnulib-m4/pthread-once.m4
@@ -1,6 +1,6 @@
# pthread-once.m4
# serial 6
-dnl Copyright (C) 2019-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2019-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/pthread-rwlock.m4 b/gnulib-m4/pthread-rwlock.m4
index 877da63f..ace80721 100644
--- a/gnulib-m4/pthread-rwlock.m4
+++ b/gnulib-m4/pthread-rwlock.m4
@@ -1,6 +1,6 @@
# pthread-rwlock.m4
# serial 9
-dnl Copyright (C) 2019-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2019-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/pthread-spin.m4 b/gnulib-m4/pthread-spin.m4
index aae2fb3b..17fa3b5e 100644
--- a/gnulib-m4/pthread-spin.m4
+++ b/gnulib-m4/pthread-spin.m4
@@ -1,6 +1,6 @@
# pthread-spin.m4
# serial 8
-dnl Copyright (C) 2019-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2019-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/pthread-thread.m4 b/gnulib-m4/pthread-thread.m4
index ba430e5f..35929600 100644
--- a/gnulib-m4/pthread-thread.m4
+++ b/gnulib-m4/pthread-thread.m4
@@ -1,6 +1,6 @@
# pthread-thread.m4
# serial 3
-dnl Copyright (C) 2019-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2019-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/pthread_h.m4 b/gnulib-m4/pthread_h.m4
index bb921386..f01dc3d3 100644
--- a/gnulib-m4/pthread_h.m4
+++ b/gnulib-m4/pthread_h.m4
@@ -1,6 +1,6 @@
# pthread_h.m4
# serial 11
-dnl Copyright (C) 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/pthread_mutex_timedlock.m4 b/gnulib-m4/pthread_mutex_timedlock.m4
index 9cb25e87..48375e88 100644
--- a/gnulib-m4/pthread_mutex_timedlock.m4
+++ b/gnulib-m4/pthread_mutex_timedlock.m4
@@ -1,6 +1,6 @@
# pthread_mutex_timedlock.m4
# serial 6
-dnl Copyright (C) 2019-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2019-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/pthread_rwlock_rdlock.m4 b/gnulib-m4/pthread_rwlock_rdlock.m4
index 260bc287..c16c781d 100644
--- a/gnulib-m4/pthread_rwlock_rdlock.m4
+++ b/gnulib-m4/pthread_rwlock_rdlock.m4
@@ -1,6 +1,6 @@
# pthread_rwlock_rdlock.m4
# serial 8
-dnl Copyright (C) 2017-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2017-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/pthread_sigmask.m4 b/gnulib-m4/pthread_sigmask.m4
index 77991d4f..2984dcdc 100644
--- a/gnulib-m4/pthread_sigmask.m4
+++ b/gnulib-m4/pthread_sigmask.m4
@@ -1,6 +1,6 @@
# pthread_sigmask.m4
# serial 24
-dnl Copyright (C) 2011-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/putenv.m4 b/gnulib-m4/putenv.m4
index 26caf9fb..207f5003 100644
--- a/gnulib-m4/putenv.m4
+++ b/gnulib-m4/putenv.m4
@@ -1,6 +1,6 @@
# putenv.m4
# serial 28
-dnl Copyright (C) 2002-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/raise.m4 b/gnulib-m4/raise.m4
index 0add3f2e..be6021ab 100644
--- a/gnulib-m4/raise.m4
+++ b/gnulib-m4/raise.m4
@@ -1,6 +1,6 @@
# raise.m4
# serial 4
-dnl Copyright (C) 2011-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/random.m4 b/gnulib-m4/random.m4
index 360e56b0..9a646f3b 100644
--- a/gnulib-m4/random.m4
+++ b/gnulib-m4/random.m4
@@ -1,6 +1,6 @@
# random.m4
# serial 8
-dnl Copyright (C) 2012-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/random_r.m4 b/gnulib-m4/random_r.m4
index e4c36c4c..2ee52f9d 100644
--- a/gnulib-m4/random_r.m4
+++ b/gnulib-m4/random_r.m4
@@ -1,6 +1,6 @@
# random_r.m4
# serial 6
-dnl Copyright (C) 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/realloc.m4 b/gnulib-m4/realloc.m4
index 0242abdc..8938db92 100644
--- a/gnulib-m4/realloc.m4
+++ b/gnulib-m4/realloc.m4
@@ -1,6 +1,6 @@
# realloc.m4
-# serial 39
-dnl Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+# serial 40
+dnl Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -27,13 +27,54 @@ AC_DEFUN([gl_FUNC_REALLOC_POSIX],
[
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
AC_REQUIRE([gl_FUNC_MALLOC_POSIX])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_CACHE_CHECK([whether realloc sets errno on failure],
+ [gl_cv_func_realloc_posix],
+ [
+ dnl FreeBSD 15.0 realloc() does not set errno when asked for more than
+ dnl 0x7000000000000000 bytes.
+ case "$host_os" in
+ darwin* | freebsd* | dragonfly* | midnightbsd* | netbsd* | openbsd*)
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#include <errno.h>
+ #include <stdlib.h>
+ int main (int argc, char **argv)
+ {
+ void *p;
+ errno = 1729;
+ p = realloc (malloc (1), (size_t)(-1) / 100 * 49);
+ return (!p && errno == 1729);
+ }
+ ]])
+ ],
+ [gl_cv_func_realloc_posix=yes],
+ [gl_cv_func_realloc_posix=no],
+ [case "$host_os" in
+ freebsd*) gl_cv_func_realloc_posix="guessing no" ;;
+ *) gl_cv_func_realloc_posix="guessing yes" ;;
+ esac
+ ])
+ ;;
+ *)
+ gl_cv_func_realloc_posix="$gl_cv_func_malloc_posix"
+ ;;
+ esac
+ ])
+ case "$gl_cv_func_realloc_posix" in
+ *yes)
+ AC_DEFINE([HAVE_REALLOC_POSIX], [1],
+ [Define if realloc sets errno on allocation failure.])
+ ;;
+ *)
+ REPLACE_REALLOC_FOR_REALLOC_POSIX=1
+ ;;
+ esac
AC_REQUIRE([gl_FUNC_REALLOC_SANITIZED])
if test "$gl_cv_func_realloc_sanitize" != no; then
REPLACE_REALLOC_FOR_REALLOC_POSIX=1
AC_DEFINE([NEED_SANITIZED_REALLOC], [1],
[Define to 1 if realloc should abort upon undefined behaviour.])
- else
- REPLACE_REALLOC_FOR_REALLOC_POSIX=$REPLACE_MALLOC_FOR_MALLOC_POSIX
fi
])
diff --git a/gnulib-m4/reallocarray.m4 b/gnulib-m4/reallocarray.m4
index 3970d9e1..e789967c 100644
--- a/gnulib-m4/reallocarray.m4
+++ b/gnulib-m4/reallocarray.m4
@@ -1,6 +1,6 @@
# reallocarray.m4
# serial 7
-dnl Copyright (C) 2017-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2017-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/relocatable-lib.m4 b/gnulib-m4/relocatable-lib.m4
index 5efed521..d270ad97 100644
--- a/gnulib-m4/relocatable-lib.m4
+++ b/gnulib-m4/relocatable-lib.m4
@@ -1,6 +1,6 @@
# relocatable-lib.m4
-# serial 8
-dnl Copyright (C) 2003, 2005-2007, 2009-2025 Free Software Foundation, Inc.
+# serial 9
+dnl Copyright (C) 2003, 2005-2007, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -31,6 +31,14 @@ AC_DEFUN([gl_RELOCATABLE_LIBRARY_BODY],
[Define to 1 if the package shall run at any location in the file
system.])
fi
+ dnl Determine whether dladdr() exists in libc.
+ gl_LIBDL
+ if test -z "$LIBDL"; then
+ AC_CHECK_FUNC([dladdr],
+ [AC_DEFINE([HAVE_DLADDR_IN_LIBC], [1],
+ [Define to 1 if dladdr exists and is defined in libc.])
+ ])
+ fi
])
dnl Support for relocatable packages for which it is a nop.
diff --git a/gnulib-m4/sched_h.m4 b/gnulib-m4/sched_h.m4
index 1ffd465f..92ebe1b7 100644
--- a/gnulib-m4/sched_h.m4
+++ b/gnulib-m4/sched_h.m4
@@ -1,6 +1,6 @@
# sched_h.m4
# serial 16
-dnl Copyright (C) 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/sched_yield.m4 b/gnulib-m4/sched_yield.m4
index 2aaaf1cc..3c23d768 100644
--- a/gnulib-m4/sched_yield.m4
+++ b/gnulib-m4/sched_yield.m4
@@ -1,6 +1,6 @@
# sched_yield.m4
# serial 3
-dnl Copyright (C) 2019-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2019-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/select.m4 b/gnulib-m4/select.m4
index 88909788..1e4a0344 100644
--- a/gnulib-m4/select.m4
+++ b/gnulib-m4/select.m4
@@ -1,6 +1,6 @@
# select.m4
# serial 16
-dnl Copyright (C) 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/semaphore.m4 b/gnulib-m4/semaphore.m4
index a5d278f6..1091550e 100644
--- a/gnulib-m4/semaphore.m4
+++ b/gnulib-m4/semaphore.m4
@@ -1,6 +1,6 @@
# semaphore.m4
# serial 4
-dnl Copyright (C) 2019-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2019-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/setenv.m4 b/gnulib-m4/setenv.m4
index 39612750..5faf28d2 100644
--- a/gnulib-m4/setenv.m4
+++ b/gnulib-m4/setenv.m4
@@ -1,6 +1,6 @@
# setenv.m4
# serial 36
-dnl Copyright (C) 2001-2004, 2006-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2004, 2006-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/setlocale.m4 b/gnulib-m4/setlocale.m4
index 16413cec..8a8841b8 100644
--- a/gnulib-m4/setlocale.m4
+++ b/gnulib-m4/setlocale.m4
@@ -1,6 +1,6 @@
# setlocale.m4
# serial 11
-dnl Copyright (C) 2011-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/setlocale_null.m4 b/gnulib-m4/setlocale_null.m4
index bf2cf589..b6727245 100644
--- a/gnulib-m4/setlocale_null.m4
+++ b/gnulib-m4/setlocale_null.m4
@@ -1,6 +1,6 @@
# setlocale_null.m4
# serial 11
-dnl Copyright (C) 2019-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2019-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/signal_h.m4 b/gnulib-m4/signal_h.m4
index 10343bbf..7c12652b 100644
--- a/gnulib-m4/signal_h.m4
+++ b/gnulib-m4/signal_h.m4
@@ -1,6 +1,6 @@
# signal_h.m4
# serial 23
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/signalblocking.m4 b/gnulib-m4/signalblocking.m4
index 23dad848..55a1495f 100644
--- a/gnulib-m4/signalblocking.m4
+++ b/gnulib-m4/signalblocking.m4
@@ -1,6 +1,6 @@
# signalblocking.m4
# serial 17
-dnl Copyright (C) 2001-2002, 2006-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2002, 2006-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/signbit.m4 b/gnulib-m4/signbit.m4
index 4cb1ac4b..8124cc81 100644
--- a/gnulib-m4/signbit.m4
+++ b/gnulib-m4/signbit.m4
@@ -1,6 +1,6 @@
# signbit.m4
# serial 23
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/size_max.m4 b/gnulib-m4/size_max.m4
index b0460d45..b7a5153a 100644
--- a/gnulib-m4/size_max.m4
+++ b/gnulib-m4/size_max.m4
@@ -1,6 +1,6 @@
# size_max.m4
# serial 12
-dnl Copyright (C) 2003, 2005-2006, 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2005-2006, 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/sleep.m4 b/gnulib-m4/sleep.m4
index c5da022d..6416cd5f 100644
--- a/gnulib-m4/sleep.m4
+++ b/gnulib-m4/sleep.m4
@@ -1,6 +1,6 @@
# sleep.m4
# serial 14
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/snan.m4 b/gnulib-m4/snan.m4
index 7fa869c9..64d20a82 100644
--- a/gnulib-m4/snan.m4
+++ b/gnulib-m4/snan.m4
@@ -1,6 +1,6 @@
# snan.m4
# serial 3
-dnl Copyright (C) 2023-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2023-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/socketlib.m4 b/gnulib-m4/socketlib.m4
index e3509f81..f62ffcfd 100644
--- a/gnulib-m4/socketlib.m4
+++ b/gnulib-m4/socketlib.m4
@@ -1,6 +1,6 @@
# socketlib.m4
# serial 4
-dnl Copyright (C) 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/sockets.m4 b/gnulib-m4/sockets.m4
index 54f4dc79..95800d2e 100644
--- a/gnulib-m4/sockets.m4
+++ b/gnulib-m4/sockets.m4
@@ -1,6 +1,6 @@
# sockets.m4
# serial 7
-dnl Copyright (C) 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/socklen.m4 b/gnulib-m4/socklen.m4
index a4d49bfd..e5156511 100644
--- a/gnulib-m4/socklen.m4
+++ b/gnulib-m4/socklen.m4
@@ -1,6 +1,6 @@
# socklen.m4
# serial 13
-dnl Copyright (C) 2005-2007, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2007, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/sockpfaf.m4 b/gnulib-m4/sockpfaf.m4
index 08ce843d..6379766d 100644
--- a/gnulib-m4/sockpfaf.m4
+++ b/gnulib-m4/sockpfaf.m4
@@ -1,6 +1,6 @@
# sockpfaf.m4
# serial 11
-dnl Copyright (C) 2004, 2006, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2004, 2006, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/ssize_t.m4 b/gnulib-m4/ssize_t.m4
index a2ffd6fc..8710cb72 100644
--- a/gnulib-m4/ssize_t.m4
+++ b/gnulib-m4/ssize_t.m4
@@ -1,6 +1,6 @@
# ssize_t.m4
# serial 6
-dnl Copyright (C) 2001-2003, 2006, 2010-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2003, 2006, 2010-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/stat-time.m4 b/gnulib-m4/stat-time.m4
index 4aa24e7f..10eb1dfa 100644
--- a/gnulib-m4/stat-time.m4
+++ b/gnulib-m4/stat-time.m4
@@ -1,6 +1,6 @@
# stat-time.m4
# serial 1
-dnl Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2025 Free Software
+dnl Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2026 Free Software
dnl Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/stat.m4 b/gnulib-m4/stat.m4
index 66876305..3764ec0b 100644
--- a/gnulib-m4/stat.m4
+++ b/gnulib-m4/stat.m4
@@ -1,6 +1,6 @@
# stat.m4
# serial 21
-dnl Copyright (C) 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/stdalign.m4 b/gnulib-m4/stdalign.m4
index d22360e1..7177d034 100644
--- a/gnulib-m4/stdalign.m4
+++ b/gnulib-m4/stdalign.m4
@@ -1,6 +1,6 @@
# stdalign.m4
# serial 3
-dnl Copyright 2011-2025 Free Software Foundation, Inc.
+dnl Copyright 2011-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -82,8 +82,8 @@ AC_DEFUN([gl_ALIGNASOF],
References:
ISO C23 (latest free draft
- <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf>)
- sections 6.5.3.4, 6.7.5, 7.15.
+ <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf>)
+ sections 6.2.8, 6.7.6.
C++11 (latest free draft
<https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf>)
section 18.10. */
diff --git a/gnulib-m4/stdckdint_h.m4 b/gnulib-m4/stdckdint_h.m4
index d269faa5..eb8c858a 100644
--- a/gnulib-m4/stdckdint_h.m4
+++ b/gnulib-m4/stdckdint_h.m4
@@ -1,6 +1,6 @@
# stdckdint_h.m4
# serial 1
-dnl Copyright 2025 Free Software Foundation, Inc.
+dnl Copyright 2025-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/stddef_h.m4 b/gnulib-m4/stddef_h.m4
index d52d5494..299472b1 100644
--- a/gnulib-m4/stddef_h.m4
+++ b/gnulib-m4/stddef_h.m4
@@ -1,6 +1,6 @@
# stddef_h.m4
# serial 23
-dnl Copyright (C) 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/stdint.m4 b/gnulib-m4/stdint.m4
index 5a289e6d..410da153 100644
--- a/gnulib-m4/stdint.m4
+++ b/gnulib-m4/stdint.m4
@@ -1,6 +1,6 @@
# stdint.m4
# serial 65
-dnl Copyright (C) 2001-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/stdint_h.m4 b/gnulib-m4/stdint_h.m4
index d4f1acdd..7f60af20 100644
--- a/gnulib-m4/stdint_h.m4
+++ b/gnulib-m4/stdint_h.m4
@@ -1,6 +1,6 @@
# stdint_h.m4
# serial 9
-dnl Copyright (C) 1997-2004, 2006, 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2004, 2006, 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/stdio_h.m4 b/gnulib-m4/stdio_h.m4
index 71d86180..9d4126f5 100644
--- a/gnulib-m4/stdio_h.m4
+++ b/gnulib-m4/stdio_h.m4
@@ -1,6 +1,6 @@
# stdio_h.m4
# serial 75
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/stdlib_h.m4 b/gnulib-m4/stdlib_h.m4
index ab2e8701..f35d6611 100644
--- a/gnulib-m4/stdlib_h.m4
+++ b/gnulib-m4/stdlib_h.m4
@@ -1,6 +1,6 @@
# stdlib_h.m4
-# serial 85
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+# serial 86
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -223,6 +223,7 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL])
HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA])
HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H])
+ HAVE_SYS_PROCESS_H=0; AC_SUBST([HAVE_SYS_PROCESS_H])
HAVE_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT])
HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV])
REPLACE__EXIT=0; AC_SUBST([REPLACE__EXIT])
diff --git a/gnulib-m4/stpcpy.m4 b/gnulib-m4/stpcpy.m4
index 0c84d6d6..4b9e774b 100644
--- a/gnulib-m4/stpcpy.m4
+++ b/gnulib-m4/stpcpy.m4
@@ -1,6 +1,6 @@
# stpcpy.m4
# serial 11
-dnl Copyright (C) 2002, 2007, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2007, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/strerror.m4 b/gnulib-m4/strerror.m4
index c8b3b207..9bb60c3f 100644
--- a/gnulib-m4/strerror.m4
+++ b/gnulib-m4/strerror.m4
@@ -1,6 +1,6 @@
# strerror.m4
# serial 25
-dnl Copyright (C) 2002, 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/strerror_r.m4 b/gnulib-m4/strerror_r.m4
index 4bbb8a0f..9b056c0f 100644
--- a/gnulib-m4/strerror_r.m4
+++ b/gnulib-m4/strerror_r.m4
@@ -1,6 +1,6 @@
# strerror_r.m4
# serial 29
-dnl Copyright (C) 2002, 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/string_h.m4 b/gnulib-m4/string_h.m4
index b5324e3a..93a5d354 100644
--- a/gnulib-m4/string_h.m4
+++ b/gnulib-m4/string_h.m4
@@ -1,6 +1,6 @@
# string_h.m4
-# serial 45
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+# serial 47
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -24,7 +24,7 @@ AC_DEFUN_ONCE([gl_STRING_H],
]],
[explicit_bzero ffsl ffsll memmem mempcpy memrchr memset_explicit
rawmemchr stpcpy stpncpy strchrnul
- strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r
+ strdup strncat strncpy strndup strnlen strpbrk strsep strcasestr strtok_r
strerror_l strerror_r strerrorname_np
sigabbrev_np sigdescr_np strsignal strverscmp])
@@ -65,6 +65,7 @@ AC_DEFUN([gl_STRING_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRDUP])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRINGEQ])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNCAT])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNCPY])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNDUP])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNLEN])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRPBRK])
@@ -72,6 +73,7 @@ AC_DEFUN([gl_STRING_H_REQUIRE_DEFAULTS],
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSTR])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRCASESTR])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOK_R])
+ gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNUL])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STR_STARTSWITH])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STR_ENDSWITH])
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSLEN])
@@ -149,6 +151,7 @@ AC_DEFUN([gl_STRING_H_DEFAULTS],
REPLACE_STRCHRNUL=0; AC_SUBST([REPLACE_STRCHRNUL])
REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP])
REPLACE_STRNCAT=0; AC_SUBST([REPLACE_STRNCAT])
+ REPLACE_STRNCPY=0; AC_SUBST([REPLACE_STRNCPY])
REPLACE_STRNDUP=0; AC_SUBST([REPLACE_STRNDUP])
REPLACE_STRNLEN=0; AC_SUBST([REPLACE_STRNLEN])
REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR])
diff --git a/gnulib-m4/stringeq.m4 b/gnulib-m4/stringeq.m4
index de6d66c1..ffea8afc 100644
--- a/gnulib-m4/stringeq.m4
+++ b/gnulib-m4/stringeq.m4
@@ -1,6 +1,6 @@
# stringeq.m4
# serial 1
-dnl Copyright (C) 2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2025-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/strncat.m4 b/gnulib-m4/strncat.m4
index 81a0ce6a..8af276fc 100644
--- a/gnulib-m4/strncat.m4
+++ b/gnulib-m4/strncat.m4
@@ -1,6 +1,6 @@
# strncat.m4
# serial 10
-dnl Copyright (C) 2002-2004, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2004, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/strncpy.m4 b/gnulib-m4/strncpy.m4
new file mode 100644
index 00000000..b94abede
--- /dev/null
+++ b/gnulib-m4/strncpy.m4
@@ -0,0 +1,94 @@
+# strncpy.m4
+# serial 1
+dnl Copyright (C) 2002-2004, 2009-2026 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl This file is offered as-is, without any warranty.
+
+AC_DEFUN_ONCE([gl_FUNC_STRNCPY],
+[
+ AC_REQUIRE([gl_STRING_H_DEFAULTS])
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ dnl Check for prerequisites for memory fence checks.
+ gl_FUNC_MMAP_ANON
+ AC_CHECK_HEADERS_ONCE([sys/mman.h])
+ AC_CHECK_FUNCS_ONCE([mprotect])
+
+ dnl Detect bug in FreeBSD 15.0 on x86_64:
+ dnl strncpy should not dereference more than n bytes, but always dereferences
+ dnl n+1 bytes if the first n bytes don't contain a NUL byte.
+ dnl Assume that strncpy works on platforms that lack mprotect.
+ AC_CACHE_CHECK([whether strncpy works], [gl_cv_func_strncpy_works],
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <string.h>
+#if HAVE_SYS_MMAN_H
+# include <fcntl.h>
+# include <unistd.h>
+# include <sys/types.h>
+# include <sys/mman.h>
+#endif
+]GL_MDA_DEFINES],
+[[
+ char *fence = NULL;
+#if HAVE_SYS_MMAN_H && HAVE_MPROTECT
+ {
+ long int pagesize = sysconf (_SC_PAGESIZE);
+ char *two_pages =
+ (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE,
+ MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
+ if (two_pages != (char *)(-1)
+ && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0)
+ fence = two_pages + pagesize;
+ }
+#endif
+ if (fence)
+ {
+ char dest[8];
+
+ dest[0] = 'a';
+ dest[1] = 'b';
+ dest[2] = 'c';
+ dest[3] = 'd';
+ dest[4] = 'e';
+ dest[5] = 'f';
+ dest[6] = 'g';
+
+ *(fence - 3) = '7';
+ *(fence - 2) = '2';
+ *(fence - 1) = '9';
+
+ if (strncpy (dest + 1, fence - 3, 3) != dest + 1)
+ return 1;
+ if (dest[0] != 'a')
+ return 2;
+ if (dest[1] != '7' || dest[2] != '2' || dest[3] != '9')
+ return 3;
+ if (dest[4] != 'e')
+ return 4;
+ }
+ return 0;
+]])], [gl_cv_func_strncpy_works=yes], [gl_cv_func_strncpy_works=no],
+ [
+ case "$host_os" in
+ # Guess no on FreeBSD.
+ freebsd* | dragonfly*) gl_cv_func_strncpy_works="guessing no" ;;
+ # Guess yes on native Windows.
+ mingw* | windows*) gl_cv_func_strncpy_works="guessing yes" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_strncpy_works="guessing yes" ;;
+ esac
+ ])
+ ])
+ case "$gl_cv_func_strncpy_works" in
+ *yes) ;;
+ *) REPLACE_STRNCPY=1 ;;
+ esac
+])
+
+# Prerequisites of lib/strncpy.c.
+AC_DEFUN([gl_PREREQ_STRNCPY], [
+ :
+])
diff --git a/gnulib-m4/strstr.m4 b/gnulib-m4/strstr.m4
index 1be2721c..3a9e9c60 100644
--- a/gnulib-m4/strstr.m4
+++ b/gnulib-m4/strstr.m4
@@ -1,6 +1,6 @@
# strstr.m4
# serial 25
-dnl Copyright (C) 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/symlink.m4 b/gnulib-m4/symlink.m4
index 74e46936..f6b59f25 100644
--- a/gnulib-m4/symlink.m4
+++ b/gnulib-m4/symlink.m4
@@ -1,6 +1,6 @@
# symlink.m4
# serial 10
-dnl Copyright (C) 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/sys_cdefs_h.m4 b/gnulib-m4/sys_cdefs_h.m4
index d72796ca..a1398a29 100644
--- a/gnulib-m4/sys_cdefs_h.m4
+++ b/gnulib-m4/sys_cdefs_h.m4
@@ -1,6 +1,6 @@
# sys_cdefs_h.m4 - Is <sys/cdefs.h> compatible enough with glibc?
# serial 2
-dnl Copyright 2024-2025 Free Software Foundation, Inc.
+dnl Copyright 2024-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/sys_ioctl_h.m4 b/gnulib-m4/sys_ioctl_h.m4
index 533ed92e..8fa69913 100644
--- a/gnulib-m4/sys_ioctl_h.m4
+++ b/gnulib-m4/sys_ioctl_h.m4
@@ -1,6 +1,6 @@
# sys_ioctl_h.m4
# serial 15
-dnl Copyright (C) 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/sys_select_h.m4 b/gnulib-m4/sys_select_h.m4
index f154bc5f..ac9fc535 100644
--- a/gnulib-m4/sys_select_h.m4
+++ b/gnulib-m4/sys_select_h.m4
@@ -1,6 +1,6 @@
# sys_select_h.m4
# serial 24
-dnl Copyright (C) 2006-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/sys_socket_h.m4 b/gnulib-m4/sys_socket_h.m4
index da3c6804..cdc374e4 100644
--- a/gnulib-m4/sys_socket_h.m4
+++ b/gnulib-m4/sys_socket_h.m4
@@ -1,6 +1,6 @@
# sys_socket_h.m4
# serial 32
-dnl Copyright (C) 2005-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/sys_stat_h.m4 b/gnulib-m4/sys_stat_h.m4
index 10636923..04dfce7e 100644
--- a/gnulib-m4/sys_stat_h.m4
+++ b/gnulib-m4/sys_stat_h.m4
@@ -1,6 +1,6 @@
# sys_stat_h.m4
# serial 44 -*- Autoconf -*-
-dnl Copyright (C) 2006-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/sys_time_h.m4 b/gnulib-m4/sys_time_h.m4
index a33b97d8..6e48cddb 100644
--- a/gnulib-m4/sys_time_h.m4
+++ b/gnulib-m4/sys_time_h.m4
@@ -1,6 +1,6 @@
# sys_time_h.m4
# serial 12
-dnl Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/sys_types_h.m4 b/gnulib-m4/sys_types_h.m4
index e99fdcc6..b284e08e 100644
--- a/gnulib-m4/sys_types_h.m4
+++ b/gnulib-m4/sys_types_h.m4
@@ -1,6 +1,6 @@
# sys_types_h.m4
# serial 15
-dnl Copyright (C) 2011-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/sys_uio_h.m4 b/gnulib-m4/sys_uio_h.m4
index eb0e8424..59496e01 100644
--- a/gnulib-m4/sys_uio_h.m4
+++ b/gnulib-m4/sys_uio_h.m4
@@ -1,6 +1,6 @@
# sys_uio_h.m4
# serial 3
-dnl Copyright (C) 2011-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/thread.m4 b/gnulib-m4/thread.m4
index d7be2811..91f73666 100644
--- a/gnulib-m4/thread.m4
+++ b/gnulib-m4/thread.m4
@@ -1,6 +1,6 @@
# thread.m4
# serial 5
-dnl Copyright (C) 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/threadlib.m4 b/gnulib-m4/threadlib.m4
index a93aa5c1..bdea4b97 100644
--- a/gnulib-m4/threadlib.m4
+++ b/gnulib-m4/threadlib.m4
@@ -1,6 +1,6 @@
# threadlib.m4
# serial 49
-dnl Copyright (C) 2005-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/time.m4 b/gnulib-m4/time.m4
index 8c3ec944..5cacb701 100644
--- a/gnulib-m4/time.m4
+++ b/gnulib-m4/time.m4
@@ -1,6 +1,6 @@
# time.m4
# serial 6
-dnl Copyright (C) 2023-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2023-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/time_h.m4 b/gnulib-m4/time_h.m4
index f4d8e20f..8d896ea5 100644
--- a/gnulib-m4/time_h.m4
+++ b/gnulib-m4/time_h.m4
@@ -1,6 +1,6 @@
# time_h.m4
# serial 27
-dnl Copyright (C) 2000-2001, 2003-2007, 2009-2025 Free Software Foundation,
+dnl Copyright (C) 2000-2001, 2003-2007, 2009-2026 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/gnulib-m4/uchar_h.m4 b/gnulib-m4/uchar_h.m4
index b2309385..20b63b6c 100644
--- a/gnulib-m4/uchar_h.m4
+++ b/gnulib-m4/uchar_h.m4
@@ -1,6 +1,6 @@
# uchar_h.m4
# serial 32
-dnl Copyright (C) 2019-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2019-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/unicase_h.m4 b/gnulib-m4/unicase_h.m4
index bf5d4c2e..71dccf06 100644
--- a/gnulib-m4/unicase_h.m4
+++ b/gnulib-m4/unicase_h.m4
@@ -1,6 +1,6 @@
# unicase_h.m4
# serial 1
-dnl Copyright (C) 2023-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2023-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/unictype_h.m4 b/gnulib-m4/unictype_h.m4
index 68ddaf6c..ba5a3688 100644
--- a/gnulib-m4/unictype_h.m4
+++ b/gnulib-m4/unictype_h.m4
@@ -1,6 +1,6 @@
# unictype_h.m4
# serial 4
-dnl Copyright (C) 2023-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2023-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/unimetadata_h.m4 b/gnulib-m4/unimetadata_h.m4
index 1a98b7c3..9530ef44 100644
--- a/gnulib-m4/unimetadata_h.m4
+++ b/gnulib-m4/unimetadata_h.m4
@@ -1,6 +1,6 @@
# unimetadata_h.m4
# serial 1
-dnl Copyright (C) 2024-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2024-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/uninorm_h.m4 b/gnulib-m4/uninorm_h.m4
index d416f73b..5ec9ea67 100644
--- a/gnulib-m4/uninorm_h.m4
+++ b/gnulib-m4/uninorm_h.m4
@@ -1,6 +1,6 @@
# uninorm_h.m4
# serial 1
-dnl Copyright (C) 2023-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2023-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/unistd_h.m4 b/gnulib-m4/unistd_h.m4
index 6ec16286..8000e888 100644
--- a/gnulib-m4/unistd_h.m4
+++ b/gnulib-m4/unistd_h.m4
@@ -1,6 +1,6 @@
# unistd_h.m4
# serial 97
-dnl Copyright (C) 2006-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/unitypes_h.m4 b/gnulib-m4/unitypes_h.m4
index 264e61be..733b9ee2 100644
--- a/gnulib-m4/unitypes_h.m4
+++ b/gnulib-m4/unitypes_h.m4
@@ -1,6 +1,6 @@
# unitypes_h.m4
# serial 1
-dnl Copyright (C) 2021-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2021-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/usleep.m4 b/gnulib-m4/usleep.m4
index fc4438c4..74a34198 100644
--- a/gnulib-m4/usleep.m4
+++ b/gnulib-m4/usleep.m4
@@ -1,6 +1,6 @@
# usleep.m4
# serial 9
-dnl Copyright (C) 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/vasnprintf.m4 b/gnulib-m4/vasnprintf.m4
index 1d040d6e..4e01fbc9 100644
--- a/gnulib-m4/vasnprintf.m4
+++ b/gnulib-m4/vasnprintf.m4
@@ -1,6 +1,6 @@
# vasnprintf.m4
# serial 56
-dnl Copyright (C) 2002-2004, 2006-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2004, 2006-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/visibility.m4 b/gnulib-m4/visibility.m4
index c2cd38d0..55ceb672 100644
--- a/gnulib-m4/visibility.m4
+++ b/gnulib-m4/visibility.m4
@@ -1,6 +1,6 @@
# visibility.m4
# serial 9
-dnl Copyright (C) 2005, 2008, 2010-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2008, 2010-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/warn-on-use.m4 b/gnulib-m4/warn-on-use.m4
index 73cf16fb..3765368c 100644
--- a/gnulib-m4/warn-on-use.m4
+++ b/gnulib-m4/warn-on-use.m4
@@ -1,6 +1,6 @@
# warn-on-use.m4
# serial 11
-dnl Copyright (C) 2010-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2010-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/wchar_h.m4 b/gnulib-m4/wchar_h.m4
index 70e9e33d..42338a00 100644
--- a/gnulib-m4/wchar_h.m4
+++ b/gnulib-m4/wchar_h.m4
@@ -1,6 +1,6 @@
# wchar_h.m4
# serial 66
-dnl Copyright (C) 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/wcrtomb.m4 b/gnulib-m4/wcrtomb.m4
index 4d8dd19e..a69f17c4 100644
--- a/gnulib-m4/wcrtomb.m4
+++ b/gnulib-m4/wcrtomb.m4
@@ -1,6 +1,6 @@
# wcrtomb.m4
# serial 22
-dnl Copyright (C) 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/wctob.m4 b/gnulib-m4/wctob.m4
index 6506b0da..76acd289 100644
--- a/gnulib-m4/wctob.m4
+++ b/gnulib-m4/wctob.m4
@@ -1,6 +1,6 @@
# wctob.m4
# serial 15
-dnl Copyright (C) 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/wctomb.m4 b/gnulib-m4/wctomb.m4
index f01a6898..6b8884fd 100644
--- a/gnulib-m4/wctomb.m4
+++ b/gnulib-m4/wctomb.m4
@@ -1,6 +1,6 @@
# wctomb.m4
# serial 2
-dnl Copyright (C) 2011-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/wctype_h.m4 b/gnulib-m4/wctype_h.m4
index 8e54678d..12b4c618 100644
--- a/gnulib-m4/wctype_h.m4
+++ b/gnulib-m4/wctype_h.m4
@@ -3,7 +3,7 @@
dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it.
-dnl Copyright (C) 2006-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/wcwidth.m4 b/gnulib-m4/wcwidth.m4
index cb2cca97..515076ba 100644
--- a/gnulib-m4/wcwidth.m4
+++ b/gnulib-m4/wcwidth.m4
@@ -1,6 +1,6 @@
# wcwidth.m4
# serial 39
-dnl Copyright (C) 2006-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/windows-rc.m4 b/gnulib-m4/windows-rc.m4
index 7787bfa1..808b64df 100644
--- a/gnulib-m4/windows-rc.m4
+++ b/gnulib-m4/windows-rc.m4
@@ -1,6 +1,6 @@
# windows-rc.m4
# serial 1
-dnl Copyright (C) 2024-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2024-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/wint_t.m4 b/gnulib-m4/wint_t.m4
index 8a3c7944..384462d2 100644
--- a/gnulib-m4/wint_t.m4
+++ b/gnulib-m4/wint_t.m4
@@ -1,6 +1,6 @@
# wint_t.m4
# serial 11
-dnl Copyright (C) 2003, 2007-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2007-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/xalloc.m4 b/gnulib-m4/xalloc.m4
index c10c4189..a0d0f060 100644
--- a/gnulib-m4/xalloc.m4
+++ b/gnulib-m4/xalloc.m4
@@ -1,6 +1,6 @@
# xalloc.m4
# serial 18
-dnl Copyright (C) 2002-2006, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/xgetcwd.m4 b/gnulib-m4/xgetcwd.m4
index c214e2cb..8e514a25 100644
--- a/gnulib-m4/xgetcwd.m4
+++ b/gnulib-m4/xgetcwd.m4
@@ -1,6 +1,6 @@
# xgetcwd.m4
# serial 8
-dnl Copyright (C) 2002-2006, 2009-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/xsize.m4 b/gnulib-m4/xsize.m4
index 157d635c..4e35a5fe 100644
--- a/gnulib-m4/xsize.m4
+++ b/gnulib-m4/xsize.m4
@@ -1,6 +1,6 @@
# xsize.m4
# serial 5
-dnl Copyright (C) 2003-2004, 2008-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2003-2004, 2008-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/yield.m4 b/gnulib-m4/yield.m4
index ce322046..850d8848 100644
--- a/gnulib-m4/yield.m4
+++ b/gnulib-m4/yield.m4
@@ -1,6 +1,6 @@
# yield.m4
# serial 5
-dnl Copyright (C) 2005-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/zzgnulib.m4 b/gnulib-m4/zzgnulib.m4
index 343bda5c..fed091ca 100644
--- a/gnulib-m4/zzgnulib.m4
+++ b/gnulib-m4/zzgnulib.m4
@@ -1,6 +1,6 @@
# zzgnulib.m4
# serial 1
-dnl Copyright (C) 2020-2025 Free Software Foundation, Inc.
+dnl Copyright (C) 2020-2026 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/install-tests/Makefile.in b/install-tests/Makefile.in
index 44c7195f..672ed180 100644
--- a/install-tests/Makefile.in
+++ b/install-tests/Makefile.in
@@ -168,6 +168,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 \
@@ -268,6 +269,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 \
@@ -584,13 +586,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@
@@ -738,6 +743,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@
@@ -819,6 +825,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@
@@ -846,8 +853,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@
@@ -1362,6 +1371,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@
@@ -1519,6 +1529,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@
@@ -1619,6 +1630,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@
@@ -2064,6 +2076,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@
@@ -2083,6 +2096,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@
diff --git a/lib/Makefile.am b/lib/Makefile.am
index f1445800..c3ff1564 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -73,6 +73,9 @@ unistring/stdint.h : $(STDINT_H) stdint.mini.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
echo '#include <stddef.h>'; \
+ echo '#if __cplusplus >= 201103'; \
+ echo '#include <cstdint>'; \
+ echo '#else'; \
echo '#if __GLIBC__ >= 2'; \
echo '#include <stdint.h>'; \
echo '#else'; \
@@ -103,6 +106,7 @@ unistring/stdint.h : $(STDINT_H) stdint.mini.h
-e 's/@''HAVE_SYS_BITYPES_H''@/0/g' \
< $(srcdir)/stdint.mini.h; \
echo '#endif'; \
+ echo '#endif'; \
} > $@-t
mv $@-t $@
BUILT_SOURCES += unistring/stdint.h
diff --git a/lib/Makefile.gnulib b/lib/Makefile.gnulib
index a9fe4815..3cd77269 100644
--- a/lib/Makefile.gnulib
+++ b/lib/Makefile.gnulib
@@ -1,6 +1,6 @@
## DO NOT EDIT! GENERATED AUTOMATICALLY!
## Process this file with automake to produce Makefile.in.
-# Copyright (C) 2002-2025 Free Software Foundation, Inc.
+# Copyright (C) 2002-2026 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -687,10 +687,12 @@ fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
-e 's/@''GNULIB_NONBLOCKING''@/$(GL_GNULIB_NONBLOCKING)/g' \
-e 's/@''GNULIB_OPEN''@/$(GL_GNULIB_OPEN)/g' \
-e 's/@''GNULIB_OPENAT''@/$(GL_GNULIB_OPENAT)/g' \
+ -e 's/@''GNULIB_OPENAT2''@/$(GL_GNULIB_OPENAT2)/g' \
-e 's/@''GNULIB_MDA_CREAT''@/$(GL_GNULIB_MDA_CREAT)/g' \
-e 's/@''GNULIB_MDA_OPEN''@/$(GL_GNULIB_MDA_OPEN)/g' \
-e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \
-e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \
+ -e 's|@''HAVE_OPENAT2''@|$(HAVE_OPENAT2)|g' \
-e 's|@''REPLACE_CREAT''@|$(REPLACE_CREAT)|g' \
-e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \
-e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \
@@ -1265,8 +1267,11 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
-e 's/@''GNULIB_ILOGBF''@/$(GL_GNULIB_ILOGBF)/g' \
-e 's/@''GNULIB_ILOGBL''@/$(GL_GNULIB_ILOGBL)/g' \
-e 's/@''GNULIB_ISFINITE''@/$(GL_GNULIB_ISFINITE)/g' \
+ -e 's/@''GNULIB_ISFINITE_NO_CXX''@/$(GL_GNULIB_ISFINITE_NO_CXX)/g' \
-e 's/@''GNULIB_ISINF''@/$(GL_GNULIB_ISINF)/g' \
+ -e 's/@''GNULIB_ISINF_NO_CXX''@/$(GL_GNULIB_ISINF_NO_CXX)/g' \
-e 's/@''GNULIB_ISNAN''@/$(GL_GNULIB_ISNAN)/g' \
+ -e 's/@''GNULIB_ISNAN_NO_CXX''@/$(GL_GNULIB_ISNAN_NO_CXX)/g' \
-e 's/@''GNULIB_ISNANF''@/$(GL_GNULIB_ISNANF)/g' \
-e 's/@''GNULIB_ISNAND''@/$(GL_GNULIB_ISNAND)/g' \
-e 's/@''GNULIB_ISNANL''@/$(GL_GNULIB_ISNANL)/g' \
@@ -1311,6 +1316,7 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
-e 's/@''GNULIB_SETPAYLOADSIGF''@/$(GL_GNULIB_SETPAYLOADSIGF)/g' \
-e 's/@''GNULIB_SETPAYLOADSIGL''@/$(GL_GNULIB_SETPAYLOADSIGL)/g' \
-e 's/@''GNULIB_SIGNBIT''@/$(GL_GNULIB_SIGNBIT)/g' \
+ -e 's/@''GNULIB_SIGNBIT_NO_CXX''@/$(GL_GNULIB_SIGNBIT_NO_CXX)/g' \
-e 's/@''GNULIB_SINF''@/$(GL_GNULIB_SINF)/g' \
-e 's/@''GNULIB_SINL''@/$(GL_GNULIB_SINL)/g' \
-e 's/@''GNULIB_SINHF''@/$(GL_GNULIB_SINHF)/g' \
@@ -1530,6 +1536,7 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
-e 's|@''REPLACE_SIGNBIT_USING_BUILTINS''@|$(REPLACE_SIGNBIT_USING_BUILTINS)|g' \
-e 's|@''REPLACE_SINF''@|$(REPLACE_SINF)|g' \
-e 's|@''REPLACE_SINHF''@|$(REPLACE_SINHF)|g' \
+ -e 's|@''REPLACE_SINL''@|$(REPLACE_SINL)|g' \
-e 's|@''REPLACE_SQRTF''@|$(REPLACE_SQRTF)|g' \
-e 's|@''REPLACE_SQRTL''@|$(REPLACE_SQRTL)|g' \
-e 's|@''REPLACE_TANF''@|$(REPLACE_TANF)|g' \
@@ -1886,7 +1893,7 @@ EXTRA_DIST += setlocale_null.h
## end gnulib module setlocale-null-unlocked
-## begin gnulib module signbit
+## begin gnulib module signbit-no-c++
if GL_COND_OBJ_SIGNBIT3
libunistring_la_SOURCES += signbitf.c signbitd.c signbitl.c
@@ -1894,7 +1901,7 @@ endif
EXTRA_DIST += float+.h
-## end gnulib module signbit
+## end gnulib module signbit-no-c++
## begin gnulib module size_max
@@ -2170,6 +2177,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
-e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \
-e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \
-e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \
+ -e 's|@''HAVE_SYS_PROCESS_H''@|$(HAVE_SYS_PROCESS_H)|g' \
-e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \
-e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \
< $@-t1 > $@-t2
@@ -2230,12 +2238,12 @@ EXTRA_DIST += stdlib.in.h
## end gnulib module stdlib-h
-## begin gnulib module streq
+## begin gnulib module streq-opt
-EXTRA_DIST += streq.h
+EXTRA_DIST += streq-opt.h
-## end gnulib module streq
+## end gnulib module streq-opt
## begin gnulib module striconveh
@@ -2296,8 +2304,10 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
-e 's/@''GNULIB_STRDUP''@/$(GL_GNULIB_STRDUP)/g' \
-e 's/@''GNULIB_STRINGEQ''@/$(GL_GNULIB_STRINGEQ)/g' \
-e 's/@''GNULIB_STRNCAT''@/$(GL_GNULIB_STRNCAT)/g' \
+ -e 's/@''GNULIB_STRNCPY''@/$(GL_GNULIB_STRNCPY)/g' \
-e 's/@''GNULIB_STRNDUP''@/$(GL_GNULIB_STRNDUP)/g' \
-e 's/@''GNULIB_STRNLEN''@/$(GL_GNULIB_STRNLEN)/g' \
+ -e 's/@''GNULIB_STRNUL''@/$(GL_GNULIB_STRNUL)/g' \
-e 's/@''GNULIB_STRPBRK''@/$(GL_GNULIB_STRPBRK)/g' \
-e 's/@''GNULIB_STRSEP''@/$(GL_GNULIB_STRSEP)/g' \
-e 's/@''GNULIB_STRSTR''@/$(GL_GNULIB_STRSTR)/g' \
@@ -2357,6 +2367,7 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
-e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \
-e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
-e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \
+ -e 's|@''REPLACE_STRNCPY''@|$(REPLACE_STRNCPY)|g' \
-e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \
-e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \
-e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
@@ -2395,6 +2406,14 @@ endif
## end gnulib module strncat
+## begin gnulib module strncpy
+
+if GL_COND_OBJ_STRNCPY
+libunistring_la_SOURCES += strncpy.c
+endif
+
+## end gnulib module strncpy
+
## begin gnulib module strstr
diff --git a/lib/Makefile.in b/lib/Makefile.in
index a4a32d9d..4802478c 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -14,7 +14,7 @@
@SET_MAKE@
-# Copyright (C) 2002-2025 Free Software Foundation, Inc.
+# Copyright (C) 2002-2026 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -519,297 +519,298 @@ host_triplet = @host@
@GL_COND_OBJ_SETLOCALE_LOCK_TRUE@am__append_22 = setlocale-lock.c
@GL_COND_OBJ_SIGNBIT3_TRUE@am__append_23 = signbitf.c signbitd.c signbitl.c
@GL_COND_OBJ_STRNCAT_TRUE@am__append_24 = strncat.c
-@LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT_TRUE@am__append_25 = unicase/empty-prefix-context.c
-@LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT_TRUE@am__append_26 = unicase/empty-suffix-context.c
-@LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE_TRUE@am__append_27 = unicase/locale-language.c
-@LIBUNISTRING_COMPILE_UNICASE_TOLOWER_TRUE@am__append_28 = unicase/tolower.c
-@LIBUNISTRING_COMPILE_UNICASE_TOTITLE_TRUE@am__append_29 = unicase/totitle.c
-@LIBUNISTRING_COMPILE_UNICASE_TOUPPER_TRUE@am__append_30 = unicase/toupper.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP_TRUE@am__append_31 = unicase/u16-casecmp.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL_TRUE@am__append_32 = unicase/u16-casecoll.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD_TRUE@am__append_33 = unicase/u16-casefold.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM_TRUE@am__append_34 = unicase/u16-casexfrm.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD_TRUE@am__append_35 = unicase/u16-ct-casefold.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER_TRUE@am__append_36 = unicase/u16-ct-tolower.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE_TRUE@am__append_37 = unicase/u16-ct-totitle.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER_TRUE@am__append_38 = unicase/u16-ct-toupper.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED_TRUE@am__append_39 = unicase/u16-is-cased.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED_TRUE@am__append_40 = unicase/u16-is-casefolded.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE_TRUE@am__append_41 = unicase/u16-is-lowercase.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE_TRUE@am__append_42 = unicase/u16-is-titlecase.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE_TRUE@am__append_43 = unicase/u16-is-uppercase.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_PREFIX_CONTEXT_TRUE@am__append_44 = unicase/u16-prefix-context.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_SUFFIX_CONTEXT_TRUE@am__append_45 = unicase/u16-suffix-context.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER_TRUE@am__append_46 = unicase/u16-tolower.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE_TRUE@am__append_47 = unicase/u16-totitle.c
-@LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER_TRUE@am__append_48 = unicase/u16-toupper.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP_TRUE@am__append_49 = unicase/u32-casecmp.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL_TRUE@am__append_50 = unicase/u32-casecoll.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD_TRUE@am__append_51 = unicase/u32-casefold.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM_TRUE@am__append_52 = unicase/u32-casexfrm.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD_TRUE@am__append_53 = unicase/u32-ct-casefold.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER_TRUE@am__append_54 = unicase/u32-ct-tolower.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE_TRUE@am__append_55 = unicase/u32-ct-totitle.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER_TRUE@am__append_56 = unicase/u32-ct-toupper.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED_TRUE@am__append_57 = unicase/u32-is-cased.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED_TRUE@am__append_58 = unicase/u32-is-casefolded.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE_TRUE@am__append_59 = unicase/u32-is-lowercase.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE_TRUE@am__append_60 = unicase/u32-is-titlecase.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE_TRUE@am__append_61 = unicase/u32-is-uppercase.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_PREFIX_CONTEXT_TRUE@am__append_62 = unicase/u32-prefix-context.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_SUFFIX_CONTEXT_TRUE@am__append_63 = unicase/u32-suffix-context.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER_TRUE@am__append_64 = unicase/u32-tolower.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE_TRUE@am__append_65 = unicase/u32-totitle.c
-@LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER_TRUE@am__append_66 = unicase/u32-toupper.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP_TRUE@am__append_67 = unicase/u8-casecmp.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL_TRUE@am__append_68 = unicase/u8-casecoll.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD_TRUE@am__append_69 = unicase/u8-casefold.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM_TRUE@am__append_70 = unicase/u8-casexfrm.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD_TRUE@am__append_71 = unicase/u8-ct-casefold.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER_TRUE@am__append_72 = unicase/u8-ct-tolower.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE_TRUE@am__append_73 = unicase/u8-ct-totitle.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER_TRUE@am__append_74 = unicase/u8-ct-toupper.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED_TRUE@am__append_75 = unicase/u8-is-cased.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED_TRUE@am__append_76 = unicase/u8-is-casefolded.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE_TRUE@am__append_77 = unicase/u8-is-lowercase.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE_TRUE@am__append_78 = unicase/u8-is-titlecase.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE_TRUE@am__append_79 = unicase/u8-is-uppercase.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_PREFIX_CONTEXT_TRUE@am__append_80 = unicase/u8-prefix-context.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_SUFFIX_CONTEXT_TRUE@am__append_81 = unicase/u8-suffix-context.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER_TRUE@am__append_82 = unicase/u8-tolower.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE_TRUE@am__append_83 = unicase/u8-totitle.c
-@LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER_TRUE@am__append_84 = unicase/u8-toupper.c
-@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP_TRUE@am__append_85 = unicase/ulc-casecmp.c
-@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL_TRUE@am__append_86 = unicase/ulc-casecoll.c
-@LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM_TRUE@am__append_87 = unicase/ulc-casexfrm.c
-@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC_TRUE@am__append_88 = uniconv/u16-conv-from-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC_TRUE@am__append_89 = uniconv/u16-conv-to-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC_TRUE@am__append_90 = uniconv/u16-strconv-from-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE_TRUE@am__append_91 = uniconv/u16-strconv-from-locale.c
-@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC_TRUE@am__append_92 = uniconv/u16-strconv-to-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE_TRUE@am__append_93 = uniconv/u16-strconv-to-locale.c
-@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC_TRUE@am__append_94 = uniconv/u32-conv-from-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC_TRUE@am__append_95 = uniconv/u32-conv-to-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC_TRUE@am__append_96 = uniconv/u32-strconv-from-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE_TRUE@am__append_97 = uniconv/u32-strconv-from-locale.c
-@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC_TRUE@am__append_98 = uniconv/u32-strconv-to-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE_TRUE@am__append_99 = uniconv/u32-strconv-to-locale.c
-@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE@am__append_100 = uniconv/u8-conv-from-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC_TRUE@am__append_101 = uniconv/u8-conv-to-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC_TRUE@am__append_102 = uniconv/u8-strconv-from-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE_TRUE@am__append_103 = uniconv/u8-strconv-from-locale.c
-@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC_TRUE@am__append_104 = uniconv/u8-strconv-to-enc.c
-@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE_TRUE@am__append_105 = uniconv/u8-strconv-to-locale.c
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME_TRUE@am__append_106 = unictype/bidi_byname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME_TRUE@am__append_107 = unictype/bidi_longname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME_TRUE@am__append_108 = unictype/bidi_name.c
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF_TRUE@am__append_109 = unictype/bidi_of.c
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST_TRUE@am__append_110 = unictype/bidi_test.c
-@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST_TRUE@am__append_111 = unictype/blocks.c
-@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST_TRUE@am__append_112 = unictype/block_test.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C_TRUE@am__append_113 = unictype/categ_C.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC_TRUE@am__append_114 = unictype/categ_Cc.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF_TRUE@am__append_115 = unictype/categ_Cf.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN_TRUE@am__append_116 = unictype/categ_Cn.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO_TRUE@am__append_117 = unictype/categ_Co.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS_TRUE@am__append_118 = unictype/categ_Cs.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L_TRUE@am__append_119 = unictype/categ_L.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC_TRUE@am__append_120 = unictype/categ_LC.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL_TRUE@am__append_121 = unictype/categ_Ll.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM_TRUE@am__append_122 = unictype/categ_Lm.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO_TRUE@am__append_123 = unictype/categ_Lo.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT_TRUE@am__append_124 = unictype/categ_Lt.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU_TRUE@am__append_125 = unictype/categ_Lu.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M_TRUE@am__append_126 = unictype/categ_M.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC_TRUE@am__append_127 = unictype/categ_Mc.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME_TRUE@am__append_128 = unictype/categ_Me.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN_TRUE@am__append_129 = unictype/categ_Mn.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N_TRUE@am__append_130 = unictype/categ_N.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND_TRUE@am__append_131 = unictype/categ_Nd.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL_TRUE@am__append_132 = unictype/categ_Nl.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO_TRUE@am__append_133 = unictype/categ_No.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P_TRUE@am__append_134 = unictype/categ_P.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC_TRUE@am__append_135 = unictype/categ_Pc.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD_TRUE@am__append_136 = unictype/categ_Pd.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE_TRUE@am__append_137 = unictype/categ_Pe.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF_TRUE@am__append_138 = unictype/categ_Pf.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI_TRUE@am__append_139 = unictype/categ_Pi.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO_TRUE@am__append_140 = unictype/categ_Po.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS_TRUE@am__append_141 = unictype/categ_Ps.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S_TRUE@am__append_142 = unictype/categ_S.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC_TRUE@am__append_143 = unictype/categ_Sc.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK_TRUE@am__append_144 = unictype/categ_Sk.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM_TRUE@am__append_145 = unictype/categ_Sm.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO_TRUE@am__append_146 = unictype/categ_So.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z_TRUE@am__append_147 = unictype/categ_Z.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL_TRUE@am__append_148 = unictype/categ_Zl.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP_TRUE@am__append_149 = unictype/categ_Zp.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS_TRUE@am__append_150 = unictype/categ_Zs.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_TRUE@am__append_151 = unictype/categ_and.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT_TRUE@am__append_152 = unictype/categ_and_not.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME_TRUE@am__append_153 = unictype/categ_byname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME_TRUE@am__append_154 = unictype/categ_longname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME_TRUE@am__append_155 = unictype/categ_name.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF_TRUE@am__append_156 = unictype/categ_of.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR_TRUE@am__append_157 = unictype/categ_or.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST_TRUE@am__append_158 = unictype/categ_test.c
-@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_TRUE@am__append_159 = unictype/combiningclass.c
-@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME_TRUE@am__append_160 = unictype/combiningclass_byname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME_TRUE@am__append_161 = unictype/combiningclass_longname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME_TRUE@am__append_162 = unictype/combiningclass_name.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM_TRUE@am__append_163 = unictype/ctype_alnum.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA_TRUE@am__append_164 = unictype/ctype_alpha.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK_TRUE@am__append_165 = unictype/ctype_blank.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL_TRUE@am__append_166 = unictype/ctype_cntrl.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT_TRUE@am__append_167 = unictype/ctype_digit.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH_TRUE@am__append_168 = unictype/ctype_graph.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER_TRUE@am__append_169 = unictype/ctype_lower.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT_TRUE@am__append_170 = unictype/ctype_print.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT_TRUE@am__append_171 = unictype/ctype_punct.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE_TRUE@am__append_172 = unictype/ctype_space.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER_TRUE@am__append_173 = unictype/ctype_upper.c
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT_TRUE@am__append_174 = unictype/ctype_xdigit.c
-@LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT_TRUE@am__append_175 = unictype/decdigit.c
-@LIBUNISTRING_COMPILE_UNICTYPE_DIGIT_TRUE@am__append_176 = unictype/digit.c
-@LIBUNISTRING_COMPILE_UNICTYPE_INCB_BYNAME_TRUE@am__append_177 = unictype/incb_byname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_INCB_NAME_TRUE@am__append_178 = unictype/incb_name.c
-@LIBUNISTRING_COMPILE_UNICTYPE_INCB_OF_TRUE@am__append_179 = unictype/incb_of.c
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME_TRUE@am__append_180 = unictype/joininggroup_byname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME_TRUE@am__append_181 = unictype/joininggroup_name.c
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF_TRUE@am__append_182 = unictype/joininggroup_of.c
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME_TRUE@am__append_183 = unictype/joiningtype_byname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME_TRUE@am__append_184 = unictype/joiningtype_longname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME_TRUE@am__append_185 = unictype/joiningtype_name.c
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF_TRUE@am__append_186 = unictype/joiningtype_of.c
-@LIBUNISTRING_COMPILE_UNICTYPE_MIRROR_TRUE@am__append_187 = unictype/mirror.c
-@LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC_TRUE@am__append_188 = unictype/numeric.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC_TRUE@am__append_189 = unictype/pr_alphabetic.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_TRUE@am__append_190 = unictype/pr_ascii_hex_digit.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_TRUE@am__append_191 = unictype/pr_bidi_arabic_digit.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_TRUE@am__append_192 = unictype/pr_bidi_arabic_right_to_left.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_TRUE@am__append_193 = unictype/pr_bidi_block_separator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_TRUE@am__append_194 = unictype/pr_bidi_boundary_neutral.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_TRUE@am__append_195 = unictype/pr_bidi_common_separator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL_TRUE@am__append_196 = unictype/pr_bidi_control.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_TRUE@am__append_197 = unictype/pr_bidi_embedding_or_override.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_TRUE@am__append_198 = unictype/pr_bidi_eur_num_separator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_TRUE@am__append_199 = unictype/pr_bidi_eur_num_terminator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_TRUE@am__append_200 = unictype/pr_bidi_european_digit.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_TRUE@am__append_201 = unictype/pr_bidi_hebrew_right_to_left.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_TRUE@am__append_202 = unictype/pr_bidi_left_to_right.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_TRUE@am__append_203 = unictype/pr_bidi_non_spacing_mark.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_TRUE@am__append_204 = unictype/pr_bidi_other_neutral.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF_TRUE@am__append_205 = unictype/pr_bidi_pdf.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_TRUE@am__append_206 = unictype/pr_bidi_segment_separator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE_TRUE@am__append_207 = unictype/pr_bidi_whitespace.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME_TRUE@am__append_208 = unictype/pr_byname.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE_TRUE@am__append_209 = unictype/pr_case_ignorable.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED_TRUE@am__append_210 = unictype/pr_cased.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_TRUE@am__append_211 = unictype/pr_changes_when_casefolded.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_TRUE@am__append_212 = unictype/pr_changes_when_casemapped.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_TRUE@am__append_213 = unictype/pr_changes_when_lowercased.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_TRUE@am__append_214 = unictype/pr_changes_when_titlecased.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_TRUE@am__append_215 = unictype/pr_changes_when_uppercased.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING_TRUE@am__append_216 = unictype/pr_combining.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE_TRUE@am__append_217 = unictype/pr_composite.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_TRUE@am__append_218 = unictype/pr_currency_symbol.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH_TRUE@am__append_219 = unictype/pr_dash.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT_TRUE@am__append_220 = unictype/pr_decimal_digit.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__append_221 = unictype/pr_default_ignorable_code_point.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED_TRUE@am__append_222 = unictype/pr_deprecated.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC_TRUE@am__append_223 = unictype/pr_diacritic.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_TRUE@am__append_224 = unictype/pr_emoji.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_COMPONENT_TRUE@am__append_225 = unictype/pr_emoji_component.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_MODIFIER_TRUE@am__append_226 = unictype/pr_emoji_modifier.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_MODIFIER_BASE_TRUE@am__append_227 = unictype/pr_emoji_modifier_base.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_PRESENTATION_TRUE@am__append_228 = unictype/pr_emoji_presentation.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDED_PICTOGRAPHIC_TRUE@am__append_229 = unictype/pr_extended_pictographic.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER_TRUE@am__append_230 = unictype/pr_extender.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL_TRUE@am__append_231 = unictype/pr_format_control.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE_TRUE@am__append_232 = unictype/pr_grapheme_base.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_TRUE@am__append_233 = unictype/pr_grapheme_extend.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK_TRUE@am__append_234 = unictype/pr_grapheme_link.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT_TRUE@am__append_235 = unictype/pr_hex_digit.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN_TRUE@am__append_236 = unictype/pr_hyphen.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_COMPAT_MATH_CONTINUE_TRUE@am__append_237 = unictype/pr_id_compat_math_continue.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_COMPAT_MATH_START_TRUE@am__append_238 = unictype/pr_id_compat_math_start.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE_TRUE@am__append_239 = unictype/pr_id_continue.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START_TRUE@am__append_240 = unictype/pr_id_start.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC_TRUE@am__append_241 = unictype/pr_ideographic.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_TRUE@am__append_242 = unictype/pr_ids_binary_operator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_TRUE@am__append_243 = unictype/pr_ids_trinary_operator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_UNARY_OPERATOR_TRUE@am__append_244 = unictype/pr_ids_unary_operator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_TRUE@am__append_245 = unictype/pr_ignorable_control.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL_TRUE@am__append_246 = unictype/pr_iso_control.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL_TRUE@am__append_247 = unictype/pr_join_control.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR_TRUE@am__append_248 = unictype/pr_left_of_pair.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR_TRUE@am__append_249 = unictype/pr_line_separator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_TRUE@am__append_250 = unictype/pr_logical_order_exception.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE_TRUE@am__append_251 = unictype/pr_lowercase.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH_TRUE@am__append_252 = unictype/pr_math.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MODIFIER_COMBINING_MARK_TRUE@am__append_253 = unictype/pr_modifier_combining_mark.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK_TRUE@am__append_254 = unictype/pr_non_break.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER_TRUE@am__append_255 = unictype/pr_not_a_character.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC_TRUE@am__append_256 = unictype/pr_numeric.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_TRUE@am__append_257 = unictype/pr_other_alphabetic.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__append_258 = unictype/pr_other_default_ignorable_code_point.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_TRUE@am__append_259 = unictype/pr_other_grapheme_extend.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_TRUE@am__append_260 = unictype/pr_other_id_continue.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START_TRUE@am__append_261 = unictype/pr_other_id_start.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE_TRUE@am__append_262 = unictype/pr_other_lowercase.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH_TRUE@am__append_263 = unictype/pr_other_math.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE_TRUE@am__append_264 = unictype/pr_other_uppercase.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_TRUE@am__append_265 = unictype/pr_paired_punctuation.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_TRUE@am__append_266 = unictype/pr_paragraph_separator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX_TRUE@am__append_267 = unictype/pr_pattern_syntax.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_TRUE@am__append_268 = unictype/pr_pattern_white_space.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PREPENDED_CONCATENATION_MARK_TRUE@am__append_269 = unictype/pr_prepended_concatenation_mark.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE_TRUE@am__append_270 = unictype/pr_private_use.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION_TRUE@am__append_271 = unictype/pr_punctuation.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK_TRUE@am__append_272 = unictype/pr_quotation_mark.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL_TRUE@am__append_273 = unictype/pr_radical.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_REGIONAL_INDICATOR_TRUE@am__append_274 = unictype/pr_regional_indicator.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_TRUE@am__append_275 = unictype/pr_sentence_terminal.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED_TRUE@am__append_276 = unictype/pr_soft_dotted.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE_TRUE@am__append_277 = unictype/pr_space.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_TRUE@am__append_278 = unictype/pr_terminal_punctuation.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST_TRUE@am__append_279 = unictype/pr_test.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE_TRUE@am__append_280 = unictype/pr_titlecase.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_TRUE@am__append_281 = unictype/pr_unassigned_code_value.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_TRUE@am__append_282 = unictype/pr_unified_ideograph.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE_TRUE@am__append_283 = unictype/pr_uppercase.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR_TRUE@am__append_284 = unictype/pr_variation_selector.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE_TRUE@am__append_285 = unictype/pr_white_space.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE_TRUE@am__append_286 = unictype/pr_xid_continue.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START_TRUE@am__append_287 = unictype/pr_xid_start.c
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH_TRUE@am__append_288 = unictype/pr_zero_width.c
-@LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS_TRUE@am__append_289 = unictype/scripts.c
-@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT_TRUE@am__append_290 = unictype/sy_c_ident.c
-@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE_TRUE@am__append_291 = unictype/sy_c_whitespace.c
-@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT_TRUE@am__append_292 = unictype/sy_java_ident.c
-@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE_TRUE@am__append_293 = unictype/sy_java_whitespace.c
-@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS_TRUE@am__append_294 = unigbrk/u16-grapheme-breaks.c
-@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT_TRUE@am__append_295 = unigbrk/u16-grapheme-next.c
-@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV_TRUE@am__append_296 = unigbrk/u16-grapheme-prev.c
-@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS_TRUE@am__append_297 = unigbrk/u32-grapheme-breaks.c
-@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT_TRUE@am__append_298 = unigbrk/u32-grapheme-next.c
-@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV_TRUE@am__append_299 = unigbrk/u32-grapheme-prev.c
-@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS_TRUE@am__append_300 = unigbrk/u8-grapheme-breaks.c
-@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT_TRUE@am__append_301 = unigbrk/u8-grapheme-next.c
-@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV_TRUE@am__append_302 = unigbrk/u8-grapheme-prev.c
-@LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP_TRUE@am__append_303 = unigbrk/uc-gbrk-prop.c
-@LIBUNISTRING_COMPILE_UNIGBRK_UC_GRAPHEME_BREAKS_TRUE@am__append_304 = unigbrk/uc-grapheme-breaks.c
-@LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK_TRUE@am__append_305 = unigbrk/uc-is-grapheme-break.c
-@LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS_TRUE@am__append_306 = unigbrk/ulc-grapheme-breaks.c
-@LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS_TRUE@am__append_307 = unilbrk/u16-possible-linebreaks.c
-@LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS_TRUE@am__append_308 = unilbrk/u16-width-linebreaks.c
-@LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS_TRUE@am__append_309 = unilbrk/u32-possible-linebreaks.c
-@LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS_TRUE@am__append_310 = unilbrk/u32-width-linebreaks.c
-@LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS_TRUE@am__append_311 = unilbrk/u8-possible-linebreaks.c
-@LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS_TRUE@am__append_312 = unilbrk/u8-width-linebreaks.c
-@LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS_TRUE@am__append_313 = unilbrk/ulc-possible-linebreaks.c
-@LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS_TRUE@am__append_314 = unilbrk/ulc-width-linebreaks.c
-@LIBUNISTRING_COMPILE_UNIMETADATA_U_VERSION_TRUE@am__append_315 = unimetadata/u-version.c
+@GL_COND_OBJ_STRNCPY_TRUE@am__append_25 = strncpy.c
+@LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT_TRUE@am__append_26 = unicase/empty-prefix-context.c
+@LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT_TRUE@am__append_27 = unicase/empty-suffix-context.c
+@LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE_TRUE@am__append_28 = unicase/locale-language.c
+@LIBUNISTRING_COMPILE_UNICASE_TOLOWER_TRUE@am__append_29 = unicase/tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_TOTITLE_TRUE@am__append_30 = unicase/totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_TOUPPER_TRUE@am__append_31 = unicase/toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP_TRUE@am__append_32 = unicase/u16-casecmp.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL_TRUE@am__append_33 = unicase/u16-casecoll.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD_TRUE@am__append_34 = unicase/u16-casefold.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM_TRUE@am__append_35 = unicase/u16-casexfrm.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD_TRUE@am__append_36 = unicase/u16-ct-casefold.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER_TRUE@am__append_37 = unicase/u16-ct-tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE_TRUE@am__append_38 = unicase/u16-ct-totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER_TRUE@am__append_39 = unicase/u16-ct-toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED_TRUE@am__append_40 = unicase/u16-is-cased.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED_TRUE@am__append_41 = unicase/u16-is-casefolded.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE_TRUE@am__append_42 = unicase/u16-is-lowercase.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE_TRUE@am__append_43 = unicase/u16-is-titlecase.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE_TRUE@am__append_44 = unicase/u16-is-uppercase.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_PREFIX_CONTEXT_TRUE@am__append_45 = unicase/u16-prefix-context.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_SUFFIX_CONTEXT_TRUE@am__append_46 = unicase/u16-suffix-context.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER_TRUE@am__append_47 = unicase/u16-tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE_TRUE@am__append_48 = unicase/u16-totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER_TRUE@am__append_49 = unicase/u16-toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP_TRUE@am__append_50 = unicase/u32-casecmp.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL_TRUE@am__append_51 = unicase/u32-casecoll.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD_TRUE@am__append_52 = unicase/u32-casefold.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM_TRUE@am__append_53 = unicase/u32-casexfrm.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD_TRUE@am__append_54 = unicase/u32-ct-casefold.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER_TRUE@am__append_55 = unicase/u32-ct-tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE_TRUE@am__append_56 = unicase/u32-ct-totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER_TRUE@am__append_57 = unicase/u32-ct-toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED_TRUE@am__append_58 = unicase/u32-is-cased.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED_TRUE@am__append_59 = unicase/u32-is-casefolded.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE_TRUE@am__append_60 = unicase/u32-is-lowercase.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE_TRUE@am__append_61 = unicase/u32-is-titlecase.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE_TRUE@am__append_62 = unicase/u32-is-uppercase.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_PREFIX_CONTEXT_TRUE@am__append_63 = unicase/u32-prefix-context.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_SUFFIX_CONTEXT_TRUE@am__append_64 = unicase/u32-suffix-context.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER_TRUE@am__append_65 = unicase/u32-tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE_TRUE@am__append_66 = unicase/u32-totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER_TRUE@am__append_67 = unicase/u32-toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP_TRUE@am__append_68 = unicase/u8-casecmp.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL_TRUE@am__append_69 = unicase/u8-casecoll.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD_TRUE@am__append_70 = unicase/u8-casefold.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM_TRUE@am__append_71 = unicase/u8-casexfrm.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD_TRUE@am__append_72 = unicase/u8-ct-casefold.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER_TRUE@am__append_73 = unicase/u8-ct-tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE_TRUE@am__append_74 = unicase/u8-ct-totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER_TRUE@am__append_75 = unicase/u8-ct-toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED_TRUE@am__append_76 = unicase/u8-is-cased.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED_TRUE@am__append_77 = unicase/u8-is-casefolded.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE_TRUE@am__append_78 = unicase/u8-is-lowercase.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE_TRUE@am__append_79 = unicase/u8-is-titlecase.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE_TRUE@am__append_80 = unicase/u8-is-uppercase.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_PREFIX_CONTEXT_TRUE@am__append_81 = unicase/u8-prefix-context.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_SUFFIX_CONTEXT_TRUE@am__append_82 = unicase/u8-suffix-context.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER_TRUE@am__append_83 = unicase/u8-tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE_TRUE@am__append_84 = unicase/u8-totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER_TRUE@am__append_85 = unicase/u8-toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP_TRUE@am__append_86 = unicase/ulc-casecmp.c
+@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL_TRUE@am__append_87 = unicase/ulc-casecoll.c
+@LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM_TRUE@am__append_88 = unicase/ulc-casexfrm.c
+@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC_TRUE@am__append_89 = uniconv/u16-conv-from-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC_TRUE@am__append_90 = uniconv/u16-conv-to-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC_TRUE@am__append_91 = uniconv/u16-strconv-from-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE_TRUE@am__append_92 = uniconv/u16-strconv-from-locale.c
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC_TRUE@am__append_93 = uniconv/u16-strconv-to-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE_TRUE@am__append_94 = uniconv/u16-strconv-to-locale.c
+@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC_TRUE@am__append_95 = uniconv/u32-conv-from-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC_TRUE@am__append_96 = uniconv/u32-conv-to-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC_TRUE@am__append_97 = uniconv/u32-strconv-from-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE_TRUE@am__append_98 = uniconv/u32-strconv-from-locale.c
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC_TRUE@am__append_99 = uniconv/u32-strconv-to-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE_TRUE@am__append_100 = uniconv/u32-strconv-to-locale.c
+@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE@am__append_101 = uniconv/u8-conv-from-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC_TRUE@am__append_102 = uniconv/u8-conv-to-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC_TRUE@am__append_103 = uniconv/u8-strconv-from-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE_TRUE@am__append_104 = uniconv/u8-strconv-from-locale.c
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC_TRUE@am__append_105 = uniconv/u8-strconv-to-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE_TRUE@am__append_106 = uniconv/u8-strconv-to-locale.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME_TRUE@am__append_107 = unictype/bidi_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME_TRUE@am__append_108 = unictype/bidi_longname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME_TRUE@am__append_109 = unictype/bidi_name.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF_TRUE@am__append_110 = unictype/bidi_of.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST_TRUE@am__append_111 = unictype/bidi_test.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST_TRUE@am__append_112 = unictype/blocks.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST_TRUE@am__append_113 = unictype/block_test.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C_TRUE@am__append_114 = unictype/categ_C.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC_TRUE@am__append_115 = unictype/categ_Cc.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF_TRUE@am__append_116 = unictype/categ_Cf.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN_TRUE@am__append_117 = unictype/categ_Cn.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO_TRUE@am__append_118 = unictype/categ_Co.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS_TRUE@am__append_119 = unictype/categ_Cs.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L_TRUE@am__append_120 = unictype/categ_L.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC_TRUE@am__append_121 = unictype/categ_LC.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL_TRUE@am__append_122 = unictype/categ_Ll.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM_TRUE@am__append_123 = unictype/categ_Lm.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO_TRUE@am__append_124 = unictype/categ_Lo.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT_TRUE@am__append_125 = unictype/categ_Lt.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU_TRUE@am__append_126 = unictype/categ_Lu.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M_TRUE@am__append_127 = unictype/categ_M.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC_TRUE@am__append_128 = unictype/categ_Mc.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME_TRUE@am__append_129 = unictype/categ_Me.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN_TRUE@am__append_130 = unictype/categ_Mn.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N_TRUE@am__append_131 = unictype/categ_N.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND_TRUE@am__append_132 = unictype/categ_Nd.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL_TRUE@am__append_133 = unictype/categ_Nl.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO_TRUE@am__append_134 = unictype/categ_No.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P_TRUE@am__append_135 = unictype/categ_P.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC_TRUE@am__append_136 = unictype/categ_Pc.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD_TRUE@am__append_137 = unictype/categ_Pd.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE_TRUE@am__append_138 = unictype/categ_Pe.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF_TRUE@am__append_139 = unictype/categ_Pf.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI_TRUE@am__append_140 = unictype/categ_Pi.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO_TRUE@am__append_141 = unictype/categ_Po.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS_TRUE@am__append_142 = unictype/categ_Ps.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S_TRUE@am__append_143 = unictype/categ_S.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC_TRUE@am__append_144 = unictype/categ_Sc.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK_TRUE@am__append_145 = unictype/categ_Sk.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM_TRUE@am__append_146 = unictype/categ_Sm.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO_TRUE@am__append_147 = unictype/categ_So.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z_TRUE@am__append_148 = unictype/categ_Z.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL_TRUE@am__append_149 = unictype/categ_Zl.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP_TRUE@am__append_150 = unictype/categ_Zp.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS_TRUE@am__append_151 = unictype/categ_Zs.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_TRUE@am__append_152 = unictype/categ_and.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT_TRUE@am__append_153 = unictype/categ_and_not.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME_TRUE@am__append_154 = unictype/categ_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME_TRUE@am__append_155 = unictype/categ_longname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME_TRUE@am__append_156 = unictype/categ_name.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF_TRUE@am__append_157 = unictype/categ_of.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR_TRUE@am__append_158 = unictype/categ_or.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST_TRUE@am__append_159 = unictype/categ_test.c
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_TRUE@am__append_160 = unictype/combiningclass.c
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME_TRUE@am__append_161 = unictype/combiningclass_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME_TRUE@am__append_162 = unictype/combiningclass_longname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME_TRUE@am__append_163 = unictype/combiningclass_name.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM_TRUE@am__append_164 = unictype/ctype_alnum.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA_TRUE@am__append_165 = unictype/ctype_alpha.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK_TRUE@am__append_166 = unictype/ctype_blank.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL_TRUE@am__append_167 = unictype/ctype_cntrl.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT_TRUE@am__append_168 = unictype/ctype_digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH_TRUE@am__append_169 = unictype/ctype_graph.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER_TRUE@am__append_170 = unictype/ctype_lower.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT_TRUE@am__append_171 = unictype/ctype_print.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT_TRUE@am__append_172 = unictype/ctype_punct.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE_TRUE@am__append_173 = unictype/ctype_space.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER_TRUE@am__append_174 = unictype/ctype_upper.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT_TRUE@am__append_175 = unictype/ctype_xdigit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT_TRUE@am__append_176 = unictype/decdigit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_DIGIT_TRUE@am__append_177 = unictype/digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_INCB_BYNAME_TRUE@am__append_178 = unictype/incb_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_INCB_NAME_TRUE@am__append_179 = unictype/incb_name.c
+@LIBUNISTRING_COMPILE_UNICTYPE_INCB_OF_TRUE@am__append_180 = unictype/incb_of.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME_TRUE@am__append_181 = unictype/joininggroup_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME_TRUE@am__append_182 = unictype/joininggroup_name.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF_TRUE@am__append_183 = unictype/joininggroup_of.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME_TRUE@am__append_184 = unictype/joiningtype_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME_TRUE@am__append_185 = unictype/joiningtype_longname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME_TRUE@am__append_186 = unictype/joiningtype_name.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF_TRUE@am__append_187 = unictype/joiningtype_of.c
+@LIBUNISTRING_COMPILE_UNICTYPE_MIRROR_TRUE@am__append_188 = unictype/mirror.c
+@LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC_TRUE@am__append_189 = unictype/numeric.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC_TRUE@am__append_190 = unictype/pr_alphabetic.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_TRUE@am__append_191 = unictype/pr_ascii_hex_digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_TRUE@am__append_192 = unictype/pr_bidi_arabic_digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_TRUE@am__append_193 = unictype/pr_bidi_arabic_right_to_left.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_TRUE@am__append_194 = unictype/pr_bidi_block_separator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_TRUE@am__append_195 = unictype/pr_bidi_boundary_neutral.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_TRUE@am__append_196 = unictype/pr_bidi_common_separator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL_TRUE@am__append_197 = unictype/pr_bidi_control.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_TRUE@am__append_198 = unictype/pr_bidi_embedding_or_override.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_TRUE@am__append_199 = unictype/pr_bidi_eur_num_separator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_TRUE@am__append_200 = unictype/pr_bidi_eur_num_terminator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_TRUE@am__append_201 = unictype/pr_bidi_european_digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_TRUE@am__append_202 = unictype/pr_bidi_hebrew_right_to_left.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_TRUE@am__append_203 = unictype/pr_bidi_left_to_right.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_TRUE@am__append_204 = unictype/pr_bidi_non_spacing_mark.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_TRUE@am__append_205 = unictype/pr_bidi_other_neutral.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF_TRUE@am__append_206 = unictype/pr_bidi_pdf.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_TRUE@am__append_207 = unictype/pr_bidi_segment_separator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE_TRUE@am__append_208 = unictype/pr_bidi_whitespace.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME_TRUE@am__append_209 = unictype/pr_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE_TRUE@am__append_210 = unictype/pr_case_ignorable.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED_TRUE@am__append_211 = unictype/pr_cased.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_TRUE@am__append_212 = unictype/pr_changes_when_casefolded.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_TRUE@am__append_213 = unictype/pr_changes_when_casemapped.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_TRUE@am__append_214 = unictype/pr_changes_when_lowercased.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_TRUE@am__append_215 = unictype/pr_changes_when_titlecased.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_TRUE@am__append_216 = unictype/pr_changes_when_uppercased.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING_TRUE@am__append_217 = unictype/pr_combining.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE_TRUE@am__append_218 = unictype/pr_composite.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_TRUE@am__append_219 = unictype/pr_currency_symbol.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH_TRUE@am__append_220 = unictype/pr_dash.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT_TRUE@am__append_221 = unictype/pr_decimal_digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__append_222 = unictype/pr_default_ignorable_code_point.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED_TRUE@am__append_223 = unictype/pr_deprecated.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC_TRUE@am__append_224 = unictype/pr_diacritic.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_TRUE@am__append_225 = unictype/pr_emoji.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_COMPONENT_TRUE@am__append_226 = unictype/pr_emoji_component.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_MODIFIER_TRUE@am__append_227 = unictype/pr_emoji_modifier.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_MODIFIER_BASE_TRUE@am__append_228 = unictype/pr_emoji_modifier_base.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_PRESENTATION_TRUE@am__append_229 = unictype/pr_emoji_presentation.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDED_PICTOGRAPHIC_TRUE@am__append_230 = unictype/pr_extended_pictographic.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER_TRUE@am__append_231 = unictype/pr_extender.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL_TRUE@am__append_232 = unictype/pr_format_control.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE_TRUE@am__append_233 = unictype/pr_grapheme_base.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_TRUE@am__append_234 = unictype/pr_grapheme_extend.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK_TRUE@am__append_235 = unictype/pr_grapheme_link.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT_TRUE@am__append_236 = unictype/pr_hex_digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN_TRUE@am__append_237 = unictype/pr_hyphen.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_COMPAT_MATH_CONTINUE_TRUE@am__append_238 = unictype/pr_id_compat_math_continue.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_COMPAT_MATH_START_TRUE@am__append_239 = unictype/pr_id_compat_math_start.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE_TRUE@am__append_240 = unictype/pr_id_continue.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START_TRUE@am__append_241 = unictype/pr_id_start.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC_TRUE@am__append_242 = unictype/pr_ideographic.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_TRUE@am__append_243 = unictype/pr_ids_binary_operator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_TRUE@am__append_244 = unictype/pr_ids_trinary_operator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_UNARY_OPERATOR_TRUE@am__append_245 = unictype/pr_ids_unary_operator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_TRUE@am__append_246 = unictype/pr_ignorable_control.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL_TRUE@am__append_247 = unictype/pr_iso_control.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL_TRUE@am__append_248 = unictype/pr_join_control.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR_TRUE@am__append_249 = unictype/pr_left_of_pair.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR_TRUE@am__append_250 = unictype/pr_line_separator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_TRUE@am__append_251 = unictype/pr_logical_order_exception.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE_TRUE@am__append_252 = unictype/pr_lowercase.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH_TRUE@am__append_253 = unictype/pr_math.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MODIFIER_COMBINING_MARK_TRUE@am__append_254 = unictype/pr_modifier_combining_mark.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK_TRUE@am__append_255 = unictype/pr_non_break.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER_TRUE@am__append_256 = unictype/pr_not_a_character.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC_TRUE@am__append_257 = unictype/pr_numeric.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_TRUE@am__append_258 = unictype/pr_other_alphabetic.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__append_259 = unictype/pr_other_default_ignorable_code_point.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_TRUE@am__append_260 = unictype/pr_other_grapheme_extend.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_TRUE@am__append_261 = unictype/pr_other_id_continue.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START_TRUE@am__append_262 = unictype/pr_other_id_start.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE_TRUE@am__append_263 = unictype/pr_other_lowercase.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH_TRUE@am__append_264 = unictype/pr_other_math.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE_TRUE@am__append_265 = unictype/pr_other_uppercase.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_TRUE@am__append_266 = unictype/pr_paired_punctuation.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_TRUE@am__append_267 = unictype/pr_paragraph_separator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX_TRUE@am__append_268 = unictype/pr_pattern_syntax.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_TRUE@am__append_269 = unictype/pr_pattern_white_space.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PREPENDED_CONCATENATION_MARK_TRUE@am__append_270 = unictype/pr_prepended_concatenation_mark.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE_TRUE@am__append_271 = unictype/pr_private_use.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION_TRUE@am__append_272 = unictype/pr_punctuation.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK_TRUE@am__append_273 = unictype/pr_quotation_mark.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL_TRUE@am__append_274 = unictype/pr_radical.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_REGIONAL_INDICATOR_TRUE@am__append_275 = unictype/pr_regional_indicator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_TRUE@am__append_276 = unictype/pr_sentence_terminal.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED_TRUE@am__append_277 = unictype/pr_soft_dotted.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE_TRUE@am__append_278 = unictype/pr_space.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_TRUE@am__append_279 = unictype/pr_terminal_punctuation.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST_TRUE@am__append_280 = unictype/pr_test.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE_TRUE@am__append_281 = unictype/pr_titlecase.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_TRUE@am__append_282 = unictype/pr_unassigned_code_value.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_TRUE@am__append_283 = unictype/pr_unified_ideograph.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE_TRUE@am__append_284 = unictype/pr_uppercase.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR_TRUE@am__append_285 = unictype/pr_variation_selector.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE_TRUE@am__append_286 = unictype/pr_white_space.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE_TRUE@am__append_287 = unictype/pr_xid_continue.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START_TRUE@am__append_288 = unictype/pr_xid_start.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH_TRUE@am__append_289 = unictype/pr_zero_width.c
+@LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS_TRUE@am__append_290 = unictype/scripts.c
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT_TRUE@am__append_291 = unictype/sy_c_ident.c
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE_TRUE@am__append_292 = unictype/sy_c_whitespace.c
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT_TRUE@am__append_293 = unictype/sy_java_ident.c
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE_TRUE@am__append_294 = unictype/sy_java_whitespace.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS_TRUE@am__append_295 = unigbrk/u16-grapheme-breaks.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT_TRUE@am__append_296 = unigbrk/u16-grapheme-next.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV_TRUE@am__append_297 = unigbrk/u16-grapheme-prev.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS_TRUE@am__append_298 = unigbrk/u32-grapheme-breaks.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT_TRUE@am__append_299 = unigbrk/u32-grapheme-next.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV_TRUE@am__append_300 = unigbrk/u32-grapheme-prev.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS_TRUE@am__append_301 = unigbrk/u8-grapheme-breaks.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT_TRUE@am__append_302 = unigbrk/u8-grapheme-next.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV_TRUE@am__append_303 = unigbrk/u8-grapheme-prev.c
+@LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP_TRUE@am__append_304 = unigbrk/uc-gbrk-prop.c
+@LIBUNISTRING_COMPILE_UNIGBRK_UC_GRAPHEME_BREAKS_TRUE@am__append_305 = unigbrk/uc-grapheme-breaks.c
+@LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK_TRUE@am__append_306 = unigbrk/uc-is-grapheme-break.c
+@LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS_TRUE@am__append_307 = unigbrk/ulc-grapheme-breaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS_TRUE@am__append_308 = unilbrk/u16-possible-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS_TRUE@am__append_309 = unilbrk/u16-width-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS_TRUE@am__append_310 = unilbrk/u32-possible-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS_TRUE@am__append_311 = unilbrk/u32-width-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS_TRUE@am__append_312 = unilbrk/u8-possible-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS_TRUE@am__append_313 = unilbrk/u8-width-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS_TRUE@am__append_314 = unilbrk/ulc-possible-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS_TRUE@am__append_315 = unilbrk/ulc-width-linebreaks.c
+@LIBUNISTRING_COMPILE_UNIMETADATA_U_VERSION_TRUE@am__append_316 = unimetadata/u-version.c
# Note: Compilation of this file takes a long time with gcc ≥ 11 and option
# -fanalyzer. See <https://gcc.gnu.org/PR110112>.
@@ -818,234 +819,234 @@ host_triplet = @host@
# An alternative workaround would be to pass the option -fno-analyzer, using
# the technique from
# https://www.gnu.org/software/automake/manual/html_node/Per_002dObject-Flags.html
-@LIBUNISTRING_COMPILE_UNINAME_UNINAME_TRUE@am__append_316 = uniname/uniname.c
-@LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION_TRUE@am__append_317 = uninorm/canonical-decomposition.c
-@LIBUNISTRING_COMPILE_UNINORM_COMPOSITION_TRUE@am__append_318 = uninorm/composition.c
-@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM_TRUE@am__append_319 = uninorm/decomposing-form.c
-@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION_TRUE@am__append_320 = uninorm/decomposition.c
-@LIBUNISTRING_COMPILE_UNINORM_FILTER_TRUE@am__append_321 = uninorm/uninorm-filter.c
-@LIBUNISTRING_COMPILE_UNINORM_NFC_TRUE@am__append_322 = uninorm/nfc.c
-@LIBUNISTRING_COMPILE_UNINORM_NFD_TRUE@am__append_323 = uninorm/nfd.c
-@LIBUNISTRING_COMPILE_UNINORM_NFKC_TRUE@am__append_324 = uninorm/nfkc.c
-@LIBUNISTRING_COMPILE_UNINORM_NFKD_TRUE@am__append_325 = uninorm/nfkd.c
-@LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE_TRUE@am__append_326 = uninorm/u16-normalize.c
-@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP_TRUE@am__append_327 = uninorm/u16-normcmp.c
-@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL_TRUE@am__append_328 = uninorm/u16-normcoll.c
-@LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM_TRUE@am__append_329 = uninorm/u16-normxfrm.c
-@LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE_TRUE@am__append_330 = uninorm/u32-normalize.c
-@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP_TRUE@am__append_331 = uninorm/u32-normcmp.c
-@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL_TRUE@am__append_332 = uninorm/u32-normcoll.c
-@LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM_TRUE@am__append_333 = uninorm/u32-normxfrm.c
-@LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE_TRUE@am__append_334 = uninorm/u8-normalize.c
-@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP_TRUE@am__append_335 = uninorm/u8-normcmp.c
-@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL_TRUE@am__append_336 = uninorm/u8-normcoll.c
-@LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM_TRUE@am__append_337 = uninorm/u8-normxfrm.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF_TRUE@am__append_338 = unistdio/u16-asnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF_TRUE@am__append_339 = unistdio/u16-asprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF_TRUE@am__append_340 = unistdio/u16-snprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF_TRUE@am__append_341 = unistdio/u16-sprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF_TRUE@am__append_342 = unistdio/u16-u16-asnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF_TRUE@am__append_343 = unistdio/u16-u16-asprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF_TRUE@am__append_344 = unistdio/u16-u16-snprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF_TRUE@am__append_345 = unistdio/u16-u16-sprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF_TRUE@am__append_346 = unistdio/u16-u16-vasnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF_TRUE@am__append_347 = unistdio/u16-u16-vasprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF_TRUE@am__append_348 = unistdio/u16-u16-vsnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF_TRUE@am__append_349 = unistdio/u16-u16-vsprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF_TRUE@am__append_350 = unistdio/u16-vasnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF_TRUE@am__append_351 = unistdio/u16-vasprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF_TRUE@am__append_352 = unistdio/u16-vsnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF_TRUE@am__append_353 = unistdio/u16-vsprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF_TRUE@am__append_354 = unistdio/u32-asnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF_TRUE@am__append_355 = unistdio/u32-asprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF_TRUE@am__append_356 = unistdio/u32-snprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF_TRUE@am__append_357 = unistdio/u32-sprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF_TRUE@am__append_358 = unistdio/u32-u32-asnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF_TRUE@am__append_359 = unistdio/u32-u32-asprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF_TRUE@am__append_360 = unistdio/u32-u32-snprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF_TRUE@am__append_361 = unistdio/u32-u32-sprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF_TRUE@am__append_362 = unistdio/u32-u32-vasnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF_TRUE@am__append_363 = unistdio/u32-u32-vasprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF_TRUE@am__append_364 = unistdio/u32-u32-vsnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF_TRUE@am__append_365 = unistdio/u32-u32-vsprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF_TRUE@am__append_366 = unistdio/u32-vasnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF_TRUE@am__append_367 = unistdio/u32-vasprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF_TRUE@am__append_368 = unistdio/u32-vsnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF_TRUE@am__append_369 = unistdio/u32-vsprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF_TRUE@am__append_370 = unistdio/u8-asnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF_TRUE@am__append_371 = unistdio/u8-asprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF_TRUE@am__append_372 = unistdio/u8-snprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE@am__append_373 = unistdio/u8-sprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF_TRUE@am__append_374 = unistdio/u8-u8-asnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF_TRUE@am__append_375 = unistdio/u8-u8-asprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF_TRUE@am__append_376 = unistdio/u8-u8-snprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF_TRUE@am__append_377 = unistdio/u8-u8-sprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF_TRUE@am__append_378 = unistdio/u8-u8-vasnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF_TRUE@am__append_379 = unistdio/u8-u8-vasprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF_TRUE@am__append_380 = unistdio/u8-u8-vsnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF_TRUE@am__append_381 = unistdio/u8-u8-vsprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE@am__append_382 = unistdio/u8-vasnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF_TRUE@am__append_383 = unistdio/u8-vasprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF_TRUE@am__append_384 = unistdio/u8-vsnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE@am__append_385 = unistdio/u8-vsprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF_TRUE@am__append_386 = unistdio/ulc-asnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF_TRUE@am__append_387 = unistdio/ulc-asprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF_TRUE@am__append_388 = unistdio/ulc-fprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF_TRUE@am__append_389 = unistdio/ulc-snprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF_TRUE@am__append_390 = unistdio/ulc-sprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF_TRUE@am__append_391 = unistdio/ulc-vasnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF_TRUE@am__append_392 = unistdio/ulc-vasprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF_TRUE@am__append_393 = unistdio/ulc-vfprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF_TRUE@am__append_394 = unistdio/ulc-vsnprintf.c
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF_TRUE@am__append_395 = unistdio/ulc-vsprintf.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_CHECK_TRUE@am__append_396 = unistr/u16-check.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_CHR_TRUE@am__append_397 = unistr/u16-chr.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_CMP_TRUE@am__append_398 = unistr/u16-cmp.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_CMP2_TRUE@am__append_399 = unistr/u16-cmp2.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_TRUE@am__append_400 = unistr/u16-cpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC_TRUE@am__append_401 = unistr/u16-cpy-alloc.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH_TRUE@am__append_402 = unistr/u16-endswith.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN_TRUE@am__append_403 = unistr/u16-mblen.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN_TRUE@am__append_404 = unistr/u16-mbsnlen.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_TRUE@am__append_405 = unistr/u16-mbtouc.c unistr/u16-mbtouc-aux.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_TRUE@am__append_406 = unistr/u16-mbtouc-unsafe.c unistr/u16-mbtouc-unsafe-aux.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE@am__append_407 = unistr/u16-mbtoucr.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_MOVE_TRUE@am__append_408 = unistr/u16-move.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_NEXT_TRUE@am__append_409 = unistr/u16-next.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_PCPY_TRUE@am__append_410 = unistr/u16-pcpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_PREV_TRUE@am__append_411 = unistr/u16-prev.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_SET_TRUE@am__append_412 = unistr/u16-set.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH_TRUE@am__append_413 = unistr/u16-startswith.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY_TRUE@am__append_414 = unistr/u16-stpcpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY_TRUE@am__append_415 = unistr/u16-stpncpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT_TRUE@am__append_416 = unistr/u16-strcat.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR_TRUE@am__append_417 = unistr/u16-strchr.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP_TRUE@am__append_418 = unistr/u16-strcmp.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL_TRUE@am__append_419 = unistr/u16-strcoll.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY_TRUE@am__append_420 = unistr/u16-strcpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN_TRUE@am__append_421 = unistr/u16-strcspn.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP_TRUE@am__append_422 = unistr/u16-strdup.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE@am__append_423 = unistr/u16-strlen.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE@am__append_424 = unistr/u16-strmblen.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC_TRUE@am__append_425 = unistr/u16-strmbtouc.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT_TRUE@am__append_426 = unistr/u16-strncat.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP_TRUE@am__append_427 = unistr/u16-strncmp.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY_TRUE@am__append_428 = unistr/u16-strncpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN_TRUE@am__append_429 = unistr/u16-strnlen.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK_TRUE@am__append_430 = unistr/u16-strpbrk.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR_TRUE@am__append_431 = unistr/u16-strrchr.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN_TRUE@am__append_432 = unistr/u16-strspn.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR_TRUE@am__append_433 = unistr/u16-strstr.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK_TRUE@am__append_434 = unistr/u16-strtok.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32_TRUE@am__append_435 = unistr/u16-to-u32.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE@am__append_436 = unistr/u16-to-u8.c
-@LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_TRUE@am__append_437 = unistr/u16-uctomb.c unistr/u16-uctomb-aux.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_CHECK_TRUE@am__append_438 = unistr/u32-check.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_CHR_TRUE@am__append_439 = unistr/u32-chr.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_CMP_TRUE@am__append_440 = unistr/u32-cmp.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_CMP2_TRUE@am__append_441 = unistr/u32-cmp2.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_TRUE@am__append_442 = unistr/u32-cpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC_TRUE@am__append_443 = unistr/u32-cpy-alloc.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH_TRUE@am__append_444 = unistr/u32-endswith.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN_TRUE@am__append_445 = unistr/u32-mblen.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN_TRUE@am__append_446 = unistr/u32-mbsnlen.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_TRUE@am__append_447 = unistr/u32-mbtouc.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE_TRUE@am__append_448 = unistr/u32-mbtouc-unsafe.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR_TRUE@am__append_449 = unistr/u32-mbtoucr.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_MOVE_TRUE@am__append_450 = unistr/u32-move.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_NEXT_TRUE@am__append_451 = unistr/u32-next.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_PCPY_TRUE@am__append_452 = unistr/u32-pcpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_PREV_TRUE@am__append_453 = unistr/u32-prev.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_SET_TRUE@am__append_454 = unistr/u32-set.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH_TRUE@am__append_455 = unistr/u32-startswith.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY_TRUE@am__append_456 = unistr/u32-stpcpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY_TRUE@am__append_457 = unistr/u32-stpncpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT_TRUE@am__append_458 = unistr/u32-strcat.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR_TRUE@am__append_459 = unistr/u32-strchr.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP_TRUE@am__append_460 = unistr/u32-strcmp.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL_TRUE@am__append_461 = unistr/u32-strcoll.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY_TRUE@am__append_462 = unistr/u32-strcpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN_TRUE@am__append_463 = unistr/u32-strcspn.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP_TRUE@am__append_464 = unistr/u32-strdup.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE@am__append_465 = unistr/u32-strlen.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE@am__append_466 = unistr/u32-strmblen.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC_TRUE@am__append_467 = unistr/u32-strmbtouc.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT_TRUE@am__append_468 = unistr/u32-strncat.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP_TRUE@am__append_469 = unistr/u32-strncmp.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY_TRUE@am__append_470 = unistr/u32-strncpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN_TRUE@am__append_471 = unistr/u32-strnlen.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK_TRUE@am__append_472 = unistr/u32-strpbrk.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR_TRUE@am__append_473 = unistr/u32-strrchr.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN_TRUE@am__append_474 = unistr/u32-strspn.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR_TRUE@am__append_475 = unistr/u32-strstr.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK_TRUE@am__append_476 = unistr/u32-strtok.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16_TRUE@am__append_477 = unistr/u32-to-u16.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE@am__append_478 = unistr/u32-to-u8.c
-@LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB_TRUE@am__append_479 = unistr/u32-uctomb.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE@am__append_480 = unistr/u8-check.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_CHR_TRUE@am__append_481 = unistr/u8-chr.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_CMP_TRUE@am__append_482 = unistr/u8-cmp.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_CMP2_TRUE@am__append_483 = unistr/u8-cmp2.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE@am__append_484 = unistr/u8-cpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC_TRUE@am__append_485 = unistr/u8-cpy-alloc.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH_TRUE@am__append_486 = unistr/u8-endswith.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE@am__append_487 = unistr/u8-mblen.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE@am__append_488 = unistr/u8-mbsnlen.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE@am__append_489 = unistr/u8-mbtouc.c unistr/u8-mbtouc-aux.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE@am__append_490 = unistr/u8-mbtouc-unsafe.c unistr/u8-mbtouc-unsafe-aux.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__append_491 = unistr/u8-mbtoucr.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_MOVE_TRUE@am__append_492 = unistr/u8-move.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_NEXT_TRUE@am__append_493 = unistr/u8-next.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_PCPY_TRUE@am__append_494 = unistr/u8-pcpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE@am__append_495 = unistr/u8-prev.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE@am__append_496 = unistr/u8-set.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH_TRUE@am__append_497 = unistr/u8-startswith.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY_TRUE@am__append_498 = unistr/u8-stpcpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY_TRUE@am__append_499 = unistr/u8-stpncpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT_TRUE@am__append_500 = unistr/u8-strcat.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR_TRUE@am__append_501 = unistr/u8-strchr.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP_TRUE@am__append_502 = unistr/u8-strcmp.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL_TRUE@am__append_503 = unistr/u8-strcoll.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY_TRUE@am__append_504 = unistr/u8-strcpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN_TRUE@am__append_505 = unistr/u8-strcspn.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP_TRUE@am__append_506 = unistr/u8-strdup.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE@am__append_507 = unistr/u8-strlen.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE@am__append_508 = unistr/u8-strmblen.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC_TRUE@am__append_509 = unistr/u8-strmbtouc.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT_TRUE@am__append_510 = unistr/u8-strncat.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP_TRUE@am__append_511 = unistr/u8-strncmp.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY_TRUE@am__append_512 = unistr/u8-strncpy.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN_TRUE@am__append_513 = unistr/u8-strnlen.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK_TRUE@am__append_514 = unistr/u8-strpbrk.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR_TRUE@am__append_515 = unistr/u8-strrchr.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN_TRUE@am__append_516 = unistr/u8-strspn.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR_TRUE@am__append_517 = unistr/u8-strstr.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK_TRUE@am__append_518 = unistr/u8-strtok.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16_TRUE@am__append_519 = unistr/u8-to-u16.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32_TRUE@am__append_520 = unistr/u8-to-u32.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__append_521 = unistr/u8-uctomb.c unistr/u8-uctomb-aux.c
-@LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS_TRUE@am__append_522 = uniwbrk/u16-wordbreaks.c
-@LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS_TRUE@am__append_523 = uniwbrk/u32-wordbreaks.c
-@LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS_TRUE@am__append_524 = uniwbrk/u8-wordbreaks.c
-@LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS_TRUE@am__append_525 = uniwbrk/ulc-wordbreaks.c
-@LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY_TRUE@am__append_526 = uniwbrk/wordbreak-property.c
-@LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH_TRUE@am__append_527 = uniwidth/u16-strwidth.c
-@LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH_TRUE@am__append_528 = uniwidth/u16-width.c
-@LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH_TRUE@am__append_529 = uniwidth/u32-strwidth.c
-@LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH_TRUE@am__append_530 = uniwidth/u32-width.c
-@LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH_TRUE@am__append_531 = uniwidth/u8-strwidth.c
-@LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH_TRUE@am__append_532 = uniwidth/u8-width.c
-@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__append_533 = uniwidth/width.c
-@GL_COND_OBJ_WCWIDTH_TRUE@am__append_534 = wcwidth.c
-@GL_COND_OBJ_WINDOWS_MUTEX_TRUE@am__append_535 = windows-mutex.c
-@GL_COND_OBJ_WINDOWS_ONCE_TRUE@am__append_536 = windows-once.c
-@GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE@am__append_537 = windows-recmutex.c
-@GL_COND_OBJ_WINDOWS_RWLOCK_TRUE@am__append_538 = windows-rwlock.c
+@LIBUNISTRING_COMPILE_UNINAME_UNINAME_TRUE@am__append_317 = uniname/uniname.c
+@LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION_TRUE@am__append_318 = uninorm/canonical-decomposition.c
+@LIBUNISTRING_COMPILE_UNINORM_COMPOSITION_TRUE@am__append_319 = uninorm/composition.c
+@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM_TRUE@am__append_320 = uninorm/decomposing-form.c
+@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION_TRUE@am__append_321 = uninorm/decomposition.c
+@LIBUNISTRING_COMPILE_UNINORM_FILTER_TRUE@am__append_322 = uninorm/uninorm-filter.c
+@LIBUNISTRING_COMPILE_UNINORM_NFC_TRUE@am__append_323 = uninorm/nfc.c
+@LIBUNISTRING_COMPILE_UNINORM_NFD_TRUE@am__append_324 = uninorm/nfd.c
+@LIBUNISTRING_COMPILE_UNINORM_NFKC_TRUE@am__append_325 = uninorm/nfkc.c
+@LIBUNISTRING_COMPILE_UNINORM_NFKD_TRUE@am__append_326 = uninorm/nfkd.c
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE_TRUE@am__append_327 = uninorm/u16-normalize.c
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP_TRUE@am__append_328 = uninorm/u16-normcmp.c
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL_TRUE@am__append_329 = uninorm/u16-normcoll.c
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM_TRUE@am__append_330 = uninorm/u16-normxfrm.c
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE_TRUE@am__append_331 = uninorm/u32-normalize.c
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP_TRUE@am__append_332 = uninorm/u32-normcmp.c
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL_TRUE@am__append_333 = uninorm/u32-normcoll.c
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM_TRUE@am__append_334 = uninorm/u32-normxfrm.c
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE_TRUE@am__append_335 = uninorm/u8-normalize.c
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP_TRUE@am__append_336 = uninorm/u8-normcmp.c
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL_TRUE@am__append_337 = uninorm/u8-normcoll.c
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM_TRUE@am__append_338 = uninorm/u8-normxfrm.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF_TRUE@am__append_339 = unistdio/u16-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF_TRUE@am__append_340 = unistdio/u16-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF_TRUE@am__append_341 = unistdio/u16-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF_TRUE@am__append_342 = unistdio/u16-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF_TRUE@am__append_343 = unistdio/u16-u16-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF_TRUE@am__append_344 = unistdio/u16-u16-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF_TRUE@am__append_345 = unistdio/u16-u16-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF_TRUE@am__append_346 = unistdio/u16-u16-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF_TRUE@am__append_347 = unistdio/u16-u16-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF_TRUE@am__append_348 = unistdio/u16-u16-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF_TRUE@am__append_349 = unistdio/u16-u16-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF_TRUE@am__append_350 = unistdio/u16-u16-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF_TRUE@am__append_351 = unistdio/u16-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF_TRUE@am__append_352 = unistdio/u16-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF_TRUE@am__append_353 = unistdio/u16-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF_TRUE@am__append_354 = unistdio/u16-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF_TRUE@am__append_355 = unistdio/u32-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF_TRUE@am__append_356 = unistdio/u32-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF_TRUE@am__append_357 = unistdio/u32-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF_TRUE@am__append_358 = unistdio/u32-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF_TRUE@am__append_359 = unistdio/u32-u32-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF_TRUE@am__append_360 = unistdio/u32-u32-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF_TRUE@am__append_361 = unistdio/u32-u32-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF_TRUE@am__append_362 = unistdio/u32-u32-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF_TRUE@am__append_363 = unistdio/u32-u32-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF_TRUE@am__append_364 = unistdio/u32-u32-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF_TRUE@am__append_365 = unistdio/u32-u32-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF_TRUE@am__append_366 = unistdio/u32-u32-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF_TRUE@am__append_367 = unistdio/u32-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF_TRUE@am__append_368 = unistdio/u32-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF_TRUE@am__append_369 = unistdio/u32-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF_TRUE@am__append_370 = unistdio/u32-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF_TRUE@am__append_371 = unistdio/u8-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF_TRUE@am__append_372 = unistdio/u8-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF_TRUE@am__append_373 = unistdio/u8-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE@am__append_374 = unistdio/u8-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF_TRUE@am__append_375 = unistdio/u8-u8-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF_TRUE@am__append_376 = unistdio/u8-u8-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF_TRUE@am__append_377 = unistdio/u8-u8-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF_TRUE@am__append_378 = unistdio/u8-u8-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF_TRUE@am__append_379 = unistdio/u8-u8-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF_TRUE@am__append_380 = unistdio/u8-u8-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF_TRUE@am__append_381 = unistdio/u8-u8-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF_TRUE@am__append_382 = unistdio/u8-u8-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE@am__append_383 = unistdio/u8-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF_TRUE@am__append_384 = unistdio/u8-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF_TRUE@am__append_385 = unistdio/u8-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE@am__append_386 = unistdio/u8-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF_TRUE@am__append_387 = unistdio/ulc-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF_TRUE@am__append_388 = unistdio/ulc-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF_TRUE@am__append_389 = unistdio/ulc-fprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF_TRUE@am__append_390 = unistdio/ulc-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF_TRUE@am__append_391 = unistdio/ulc-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF_TRUE@am__append_392 = unistdio/ulc-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF_TRUE@am__append_393 = unistdio/ulc-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF_TRUE@am__append_394 = unistdio/ulc-vfprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF_TRUE@am__append_395 = unistdio/ulc-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF_TRUE@am__append_396 = unistdio/ulc-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_CHECK_TRUE@am__append_397 = unistr/u16-check.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_CHR_TRUE@am__append_398 = unistr/u16-chr.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_CMP_TRUE@am__append_399 = unistr/u16-cmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_CMP2_TRUE@am__append_400 = unistr/u16-cmp2.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_TRUE@am__append_401 = unistr/u16-cpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC_TRUE@am__append_402 = unistr/u16-cpy-alloc.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH_TRUE@am__append_403 = unistr/u16-endswith.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN_TRUE@am__append_404 = unistr/u16-mblen.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN_TRUE@am__append_405 = unistr/u16-mbsnlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_TRUE@am__append_406 = unistr/u16-mbtouc.c unistr/u16-mbtouc-aux.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_TRUE@am__append_407 = unistr/u16-mbtouc-unsafe.c unistr/u16-mbtouc-unsafe-aux.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE@am__append_408 = unistr/u16-mbtoucr.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_MOVE_TRUE@am__append_409 = unistr/u16-move.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_NEXT_TRUE@am__append_410 = unistr/u16-next.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_PCPY_TRUE@am__append_411 = unistr/u16-pcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_PREV_TRUE@am__append_412 = unistr/u16-prev.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_SET_TRUE@am__append_413 = unistr/u16-set.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH_TRUE@am__append_414 = unistr/u16-startswith.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY_TRUE@am__append_415 = unistr/u16-stpcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY_TRUE@am__append_416 = unistr/u16-stpncpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT_TRUE@am__append_417 = unistr/u16-strcat.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR_TRUE@am__append_418 = unistr/u16-strchr.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP_TRUE@am__append_419 = unistr/u16-strcmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL_TRUE@am__append_420 = unistr/u16-strcoll.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY_TRUE@am__append_421 = unistr/u16-strcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN_TRUE@am__append_422 = unistr/u16-strcspn.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP_TRUE@am__append_423 = unistr/u16-strdup.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE@am__append_424 = unistr/u16-strlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE@am__append_425 = unistr/u16-strmblen.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC_TRUE@am__append_426 = unistr/u16-strmbtouc.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT_TRUE@am__append_427 = unistr/u16-strncat.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP_TRUE@am__append_428 = unistr/u16-strncmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY_TRUE@am__append_429 = unistr/u16-strncpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN_TRUE@am__append_430 = unistr/u16-strnlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK_TRUE@am__append_431 = unistr/u16-strpbrk.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR_TRUE@am__append_432 = unistr/u16-strrchr.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN_TRUE@am__append_433 = unistr/u16-strspn.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR_TRUE@am__append_434 = unistr/u16-strstr.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK_TRUE@am__append_435 = unistr/u16-strtok.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32_TRUE@am__append_436 = unistr/u16-to-u32.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE@am__append_437 = unistr/u16-to-u8.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_TRUE@am__append_438 = unistr/u16-uctomb.c unistr/u16-uctomb-aux.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_CHECK_TRUE@am__append_439 = unistr/u32-check.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_CHR_TRUE@am__append_440 = unistr/u32-chr.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_CMP_TRUE@am__append_441 = unistr/u32-cmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_CMP2_TRUE@am__append_442 = unistr/u32-cmp2.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_TRUE@am__append_443 = unistr/u32-cpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC_TRUE@am__append_444 = unistr/u32-cpy-alloc.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH_TRUE@am__append_445 = unistr/u32-endswith.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN_TRUE@am__append_446 = unistr/u32-mblen.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN_TRUE@am__append_447 = unistr/u32-mbsnlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_TRUE@am__append_448 = unistr/u32-mbtouc.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE_TRUE@am__append_449 = unistr/u32-mbtouc-unsafe.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR_TRUE@am__append_450 = unistr/u32-mbtoucr.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_MOVE_TRUE@am__append_451 = unistr/u32-move.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_NEXT_TRUE@am__append_452 = unistr/u32-next.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_PCPY_TRUE@am__append_453 = unistr/u32-pcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_PREV_TRUE@am__append_454 = unistr/u32-prev.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_SET_TRUE@am__append_455 = unistr/u32-set.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH_TRUE@am__append_456 = unistr/u32-startswith.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY_TRUE@am__append_457 = unistr/u32-stpcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY_TRUE@am__append_458 = unistr/u32-stpncpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT_TRUE@am__append_459 = unistr/u32-strcat.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR_TRUE@am__append_460 = unistr/u32-strchr.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP_TRUE@am__append_461 = unistr/u32-strcmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL_TRUE@am__append_462 = unistr/u32-strcoll.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY_TRUE@am__append_463 = unistr/u32-strcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN_TRUE@am__append_464 = unistr/u32-strcspn.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP_TRUE@am__append_465 = unistr/u32-strdup.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE@am__append_466 = unistr/u32-strlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE@am__append_467 = unistr/u32-strmblen.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC_TRUE@am__append_468 = unistr/u32-strmbtouc.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT_TRUE@am__append_469 = unistr/u32-strncat.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP_TRUE@am__append_470 = unistr/u32-strncmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY_TRUE@am__append_471 = unistr/u32-strncpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN_TRUE@am__append_472 = unistr/u32-strnlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK_TRUE@am__append_473 = unistr/u32-strpbrk.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR_TRUE@am__append_474 = unistr/u32-strrchr.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN_TRUE@am__append_475 = unistr/u32-strspn.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR_TRUE@am__append_476 = unistr/u32-strstr.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK_TRUE@am__append_477 = unistr/u32-strtok.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16_TRUE@am__append_478 = unistr/u32-to-u16.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE@am__append_479 = unistr/u32-to-u8.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB_TRUE@am__append_480 = unistr/u32-uctomb.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE@am__append_481 = unistr/u8-check.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_CHR_TRUE@am__append_482 = unistr/u8-chr.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_CMP_TRUE@am__append_483 = unistr/u8-cmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_CMP2_TRUE@am__append_484 = unistr/u8-cmp2.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE@am__append_485 = unistr/u8-cpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC_TRUE@am__append_486 = unistr/u8-cpy-alloc.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH_TRUE@am__append_487 = unistr/u8-endswith.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE@am__append_488 = unistr/u8-mblen.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE@am__append_489 = unistr/u8-mbsnlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE@am__append_490 = unistr/u8-mbtouc.c unistr/u8-mbtouc-aux.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE@am__append_491 = unistr/u8-mbtouc-unsafe.c unistr/u8-mbtouc-unsafe-aux.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__append_492 = unistr/u8-mbtoucr.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_MOVE_TRUE@am__append_493 = unistr/u8-move.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_NEXT_TRUE@am__append_494 = unistr/u8-next.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_PCPY_TRUE@am__append_495 = unistr/u8-pcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE@am__append_496 = unistr/u8-prev.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE@am__append_497 = unistr/u8-set.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH_TRUE@am__append_498 = unistr/u8-startswith.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY_TRUE@am__append_499 = unistr/u8-stpcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY_TRUE@am__append_500 = unistr/u8-stpncpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT_TRUE@am__append_501 = unistr/u8-strcat.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR_TRUE@am__append_502 = unistr/u8-strchr.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP_TRUE@am__append_503 = unistr/u8-strcmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL_TRUE@am__append_504 = unistr/u8-strcoll.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY_TRUE@am__append_505 = unistr/u8-strcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN_TRUE@am__append_506 = unistr/u8-strcspn.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP_TRUE@am__append_507 = unistr/u8-strdup.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE@am__append_508 = unistr/u8-strlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE@am__append_509 = unistr/u8-strmblen.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC_TRUE@am__append_510 = unistr/u8-strmbtouc.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT_TRUE@am__append_511 = unistr/u8-strncat.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP_TRUE@am__append_512 = unistr/u8-strncmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY_TRUE@am__append_513 = unistr/u8-strncpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN_TRUE@am__append_514 = unistr/u8-strnlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK_TRUE@am__append_515 = unistr/u8-strpbrk.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR_TRUE@am__append_516 = unistr/u8-strrchr.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN_TRUE@am__append_517 = unistr/u8-strspn.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR_TRUE@am__append_518 = unistr/u8-strstr.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK_TRUE@am__append_519 = unistr/u8-strtok.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16_TRUE@am__append_520 = unistr/u8-to-u16.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32_TRUE@am__append_521 = unistr/u8-to-u32.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__append_522 = unistr/u8-uctomb.c unistr/u8-uctomb-aux.c
+@LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS_TRUE@am__append_523 = uniwbrk/u16-wordbreaks.c
+@LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS_TRUE@am__append_524 = uniwbrk/u32-wordbreaks.c
+@LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS_TRUE@am__append_525 = uniwbrk/u8-wordbreaks.c
+@LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS_TRUE@am__append_526 = uniwbrk/ulc-wordbreaks.c
+@LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY_TRUE@am__append_527 = uniwbrk/wordbreak-property.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH_TRUE@am__append_528 = uniwidth/u16-strwidth.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH_TRUE@am__append_529 = uniwidth/u16-width.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH_TRUE@am__append_530 = uniwidth/u32-strwidth.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH_TRUE@am__append_531 = uniwidth/u32-width.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH_TRUE@am__append_532 = uniwidth/u8-strwidth.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH_TRUE@am__append_533 = uniwidth/u8-width.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__append_534 = uniwidth/width.c
+@GL_COND_OBJ_WCWIDTH_TRUE@am__append_535 = wcwidth.c
+@GL_COND_OBJ_WINDOWS_MUTEX_TRUE@am__append_536 = windows-mutex.c
+@GL_COND_OBJ_WINDOWS_ONCE_TRUE@am__append_537 = windows-once.c
+@GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE@am__append_538 = windows-recmutex.c
+@GL_COND_OBJ_WINDOWS_RWLOCK_TRUE@am__append_539 = windows-rwlock.c
# Tell the mingw or Cygwin linker which symbols to export.
-@WOE32DLL_TRUE@am__append_539 = ../woe32dll/unistring-exports.c
-@PLATFORM_IS_MSVC_FALSE@@WOE32DLL_TRUE@am__append_540 = -Wl,--export-all-symbols
-@WOE32_TRUE@am__append_541 = libunistring.res.lo
+@WOE32DLL_TRUE@am__append_540 = ../woe32dll/unistring-exports.c
+@PLATFORM_IS_MSVC_FALSE@@WOE32DLL_TRUE@am__append_541 = -Wl,--export-all-symbols
+@WOE32_TRUE@am__append_542 = libunistring.res.lo
subdir = lib
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
@@ -1125,6 +1126,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
$(top_srcdir)/gnulib-m4/lib-ld.m4 \
$(top_srcdir)/gnulib-m4/lib-link.m4 \
$(top_srcdir)/gnulib-m4/lib-prefix.m4 \
+ $(top_srcdir)/gnulib-m4/libdl.m4 \
$(top_srcdir)/gnulib-m4/libunistring-base.m4 \
$(top_srcdir)/gnulib-m4/limits-h.m4 \
$(top_srcdir)/gnulib-m4/localcharset.m4 \
@@ -1225,6 +1227,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
$(top_srcdir)/gnulib-m4/string_h.m4 \
$(top_srcdir)/gnulib-m4/stringeq.m4 \
$(top_srcdir)/gnulib-m4/strncat.m4 \
+ $(top_srcdir)/gnulib-m4/strncpy.m4 \
$(top_srcdir)/gnulib-m4/strstr.m4 \
$(top_srcdir)/gnulib-m4/symlink.m4 \
$(top_srcdir)/gnulib-m4/sys_cdefs_h.m4 \
@@ -1323,7 +1326,7 @@ am__libunistring_la_SOURCES_DIST = amemxfrm.c c-ctype.h c-ctype.c \
setlocale-lock.c setlocale_null-unlocked.c signbitf.c \
signbitd.c signbitl.c size_max.h stdlib.c striconveh.h \
striconveh.c striconveha.h striconveha.c string.c strncat.c \
- glthread/threadlib.c unicase/cased.c \
+ strncpy.c glthread/threadlib.c unicase/cased.c \
unicase/empty-prefix-context.c unicase/empty-suffix-context.c \
unicase/ignorable.c unicase/locale-language.c \
unicase/special-casing.c unicase/tocasefold.c \
@@ -1619,528 +1622,529 @@ am__dirstamp = $(am__leading_dot)dirstamp
@GL_COND_OBJ_SIGNBIT3_TRUE@ libunistring_la-signbitd.lo \
@GL_COND_OBJ_SIGNBIT3_TRUE@ libunistring_la-signbitl.lo
@GL_COND_OBJ_STRNCAT_TRUE@am__objects_24 = libunistring_la-strncat.lo
-@LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT_TRUE@am__objects_25 = unicase/libunistring_la-empty-prefix-context.lo
-@LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT_TRUE@am__objects_26 = unicase/libunistring_la-empty-suffix-context.lo
-@LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE_TRUE@am__objects_27 = unicase/libunistring_la-locale-language.lo
-@LIBUNISTRING_COMPILE_UNICASE_TOLOWER_TRUE@am__objects_28 = unicase/libunistring_la-tolower.lo
-@LIBUNISTRING_COMPILE_UNICASE_TOTITLE_TRUE@am__objects_29 = unicase/libunistring_la-totitle.lo
-@LIBUNISTRING_COMPILE_UNICASE_TOUPPER_TRUE@am__objects_30 = unicase/libunistring_la-toupper.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP_TRUE@am__objects_31 = unicase/libunistring_la-u16-casecmp.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL_TRUE@am__objects_32 = unicase/libunistring_la-u16-casecoll.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD_TRUE@am__objects_33 = unicase/libunistring_la-u16-casefold.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM_TRUE@am__objects_34 = unicase/libunistring_la-u16-casexfrm.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD_TRUE@am__objects_35 = unicase/libunistring_la-u16-ct-casefold.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER_TRUE@am__objects_36 = unicase/libunistring_la-u16-ct-tolower.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE_TRUE@am__objects_37 = unicase/libunistring_la-u16-ct-totitle.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER_TRUE@am__objects_38 = unicase/libunistring_la-u16-ct-toupper.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED_TRUE@am__objects_39 = unicase/libunistring_la-u16-is-cased.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED_TRUE@am__objects_40 = unicase/libunistring_la-u16-is-casefolded.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE_TRUE@am__objects_41 = unicase/libunistring_la-u16-is-lowercase.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE_TRUE@am__objects_42 = unicase/libunistring_la-u16-is-titlecase.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE_TRUE@am__objects_43 = unicase/libunistring_la-u16-is-uppercase.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_PREFIX_CONTEXT_TRUE@am__objects_44 = unicase/libunistring_la-u16-prefix-context.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_SUFFIX_CONTEXT_TRUE@am__objects_45 = unicase/libunistring_la-u16-suffix-context.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER_TRUE@am__objects_46 = unicase/libunistring_la-u16-tolower.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE_TRUE@am__objects_47 = unicase/libunistring_la-u16-totitle.lo
-@LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER_TRUE@am__objects_48 = unicase/libunistring_la-u16-toupper.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP_TRUE@am__objects_49 = unicase/libunistring_la-u32-casecmp.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL_TRUE@am__objects_50 = unicase/libunistring_la-u32-casecoll.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD_TRUE@am__objects_51 = unicase/libunistring_la-u32-casefold.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM_TRUE@am__objects_52 = unicase/libunistring_la-u32-casexfrm.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD_TRUE@am__objects_53 = unicase/libunistring_la-u32-ct-casefold.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER_TRUE@am__objects_54 = unicase/libunistring_la-u32-ct-tolower.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE_TRUE@am__objects_55 = unicase/libunistring_la-u32-ct-totitle.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER_TRUE@am__objects_56 = unicase/libunistring_la-u32-ct-toupper.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED_TRUE@am__objects_57 = unicase/libunistring_la-u32-is-cased.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED_TRUE@am__objects_58 = unicase/libunistring_la-u32-is-casefolded.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE_TRUE@am__objects_59 = unicase/libunistring_la-u32-is-lowercase.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE_TRUE@am__objects_60 = unicase/libunistring_la-u32-is-titlecase.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE_TRUE@am__objects_61 = unicase/libunistring_la-u32-is-uppercase.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_PREFIX_CONTEXT_TRUE@am__objects_62 = unicase/libunistring_la-u32-prefix-context.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_SUFFIX_CONTEXT_TRUE@am__objects_63 = unicase/libunistring_la-u32-suffix-context.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER_TRUE@am__objects_64 = unicase/libunistring_la-u32-tolower.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE_TRUE@am__objects_65 = unicase/libunistring_la-u32-totitle.lo
-@LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER_TRUE@am__objects_66 = unicase/libunistring_la-u32-toupper.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP_TRUE@am__objects_67 = unicase/libunistring_la-u8-casecmp.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL_TRUE@am__objects_68 = unicase/libunistring_la-u8-casecoll.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD_TRUE@am__objects_69 = unicase/libunistring_la-u8-casefold.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM_TRUE@am__objects_70 = unicase/libunistring_la-u8-casexfrm.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD_TRUE@am__objects_71 = unicase/libunistring_la-u8-ct-casefold.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER_TRUE@am__objects_72 = unicase/libunistring_la-u8-ct-tolower.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE_TRUE@am__objects_73 = unicase/libunistring_la-u8-ct-totitle.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER_TRUE@am__objects_74 = unicase/libunistring_la-u8-ct-toupper.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED_TRUE@am__objects_75 = unicase/libunistring_la-u8-is-cased.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED_TRUE@am__objects_76 = unicase/libunistring_la-u8-is-casefolded.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE_TRUE@am__objects_77 = unicase/libunistring_la-u8-is-lowercase.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE_TRUE@am__objects_78 = unicase/libunistring_la-u8-is-titlecase.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE_TRUE@am__objects_79 = unicase/libunistring_la-u8-is-uppercase.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_PREFIX_CONTEXT_TRUE@am__objects_80 = unicase/libunistring_la-u8-prefix-context.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_SUFFIX_CONTEXT_TRUE@am__objects_81 = unicase/libunistring_la-u8-suffix-context.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER_TRUE@am__objects_82 = unicase/libunistring_la-u8-tolower.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE_TRUE@am__objects_83 = unicase/libunistring_la-u8-totitle.lo
-@LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER_TRUE@am__objects_84 = unicase/libunistring_la-u8-toupper.lo
-@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP_TRUE@am__objects_85 = unicase/libunistring_la-ulc-casecmp.lo
-@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL_TRUE@am__objects_86 = unicase/libunistring_la-ulc-casecoll.lo
-@LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM_TRUE@am__objects_87 = unicase/libunistring_la-ulc-casexfrm.lo
-@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC_TRUE@am__objects_88 = uniconv/libunistring_la-u16-conv-from-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC_TRUE@am__objects_89 = uniconv/libunistring_la-u16-conv-to-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC_TRUE@am__objects_90 = uniconv/libunistring_la-u16-strconv-from-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE_TRUE@am__objects_91 = uniconv/libunistring_la-u16-strconv-from-locale.lo
-@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC_TRUE@am__objects_92 = uniconv/libunistring_la-u16-strconv-to-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE_TRUE@am__objects_93 = uniconv/libunistring_la-u16-strconv-to-locale.lo
-@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC_TRUE@am__objects_94 = uniconv/libunistring_la-u32-conv-from-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC_TRUE@am__objects_95 = uniconv/libunistring_la-u32-conv-to-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC_TRUE@am__objects_96 = uniconv/libunistring_la-u32-strconv-from-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE_TRUE@am__objects_97 = uniconv/libunistring_la-u32-strconv-from-locale.lo
-@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC_TRUE@am__objects_98 = uniconv/libunistring_la-u32-strconv-to-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE_TRUE@am__objects_99 = uniconv/libunistring_la-u32-strconv-to-locale.lo
-@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE@am__objects_100 = uniconv/libunistring_la-u8-conv-from-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC_TRUE@am__objects_101 = uniconv/libunistring_la-u8-conv-to-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC_TRUE@am__objects_102 = uniconv/libunistring_la-u8-strconv-from-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE_TRUE@am__objects_103 = uniconv/libunistring_la-u8-strconv-from-locale.lo
-@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC_TRUE@am__objects_104 = uniconv/libunistring_la-u8-strconv-to-enc.lo
-@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE_TRUE@am__objects_105 = uniconv/libunistring_la-u8-strconv-to-locale.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME_TRUE@am__objects_106 = unictype/libunistring_la-bidi_byname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME_TRUE@am__objects_107 = unictype/libunistring_la-bidi_longname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME_TRUE@am__objects_108 = unictype/libunistring_la-bidi_name.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF_TRUE@am__objects_109 = unictype/libunistring_la-bidi_of.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST_TRUE@am__objects_110 = unictype/libunistring_la-bidi_test.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST_TRUE@am__objects_111 = unictype/libunistring_la-blocks.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST_TRUE@am__objects_112 = unictype/libunistring_la-block_test.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C_TRUE@am__objects_113 = unictype/libunistring_la-categ_C.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC_TRUE@am__objects_114 = unictype/libunistring_la-categ_Cc.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF_TRUE@am__objects_115 = unictype/libunistring_la-categ_Cf.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN_TRUE@am__objects_116 = unictype/libunistring_la-categ_Cn.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO_TRUE@am__objects_117 = unictype/libunistring_la-categ_Co.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS_TRUE@am__objects_118 = unictype/libunistring_la-categ_Cs.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L_TRUE@am__objects_119 = unictype/libunistring_la-categ_L.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC_TRUE@am__objects_120 = unictype/libunistring_la-categ_LC.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL_TRUE@am__objects_121 = unictype/libunistring_la-categ_Ll.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM_TRUE@am__objects_122 = unictype/libunistring_la-categ_Lm.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO_TRUE@am__objects_123 = unictype/libunistring_la-categ_Lo.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT_TRUE@am__objects_124 = unictype/libunistring_la-categ_Lt.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU_TRUE@am__objects_125 = unictype/libunistring_la-categ_Lu.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M_TRUE@am__objects_126 = unictype/libunistring_la-categ_M.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC_TRUE@am__objects_127 = unictype/libunistring_la-categ_Mc.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME_TRUE@am__objects_128 = unictype/libunistring_la-categ_Me.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN_TRUE@am__objects_129 = unictype/libunistring_la-categ_Mn.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N_TRUE@am__objects_130 = unictype/libunistring_la-categ_N.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND_TRUE@am__objects_131 = unictype/libunistring_la-categ_Nd.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL_TRUE@am__objects_132 = unictype/libunistring_la-categ_Nl.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO_TRUE@am__objects_133 = unictype/libunistring_la-categ_No.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P_TRUE@am__objects_134 = unictype/libunistring_la-categ_P.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC_TRUE@am__objects_135 = unictype/libunistring_la-categ_Pc.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD_TRUE@am__objects_136 = unictype/libunistring_la-categ_Pd.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE_TRUE@am__objects_137 = unictype/libunistring_la-categ_Pe.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF_TRUE@am__objects_138 = unictype/libunistring_la-categ_Pf.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI_TRUE@am__objects_139 = unictype/libunistring_la-categ_Pi.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO_TRUE@am__objects_140 = unictype/libunistring_la-categ_Po.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS_TRUE@am__objects_141 = unictype/libunistring_la-categ_Ps.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S_TRUE@am__objects_142 = unictype/libunistring_la-categ_S.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC_TRUE@am__objects_143 = unictype/libunistring_la-categ_Sc.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK_TRUE@am__objects_144 = unictype/libunistring_la-categ_Sk.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM_TRUE@am__objects_145 = unictype/libunistring_la-categ_Sm.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO_TRUE@am__objects_146 = unictype/libunistring_la-categ_So.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z_TRUE@am__objects_147 = unictype/libunistring_la-categ_Z.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL_TRUE@am__objects_148 = unictype/libunistring_la-categ_Zl.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP_TRUE@am__objects_149 = unictype/libunistring_la-categ_Zp.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS_TRUE@am__objects_150 = unictype/libunistring_la-categ_Zs.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_TRUE@am__objects_151 = unictype/libunistring_la-categ_and.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT_TRUE@am__objects_152 = unictype/libunistring_la-categ_and_not.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME_TRUE@am__objects_153 = unictype/libunistring_la-categ_byname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME_TRUE@am__objects_154 = unictype/libunistring_la-categ_longname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME_TRUE@am__objects_155 = unictype/libunistring_la-categ_name.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF_TRUE@am__objects_156 = unictype/libunistring_la-categ_of.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR_TRUE@am__objects_157 = unictype/libunistring_la-categ_or.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST_TRUE@am__objects_158 = unictype/libunistring_la-categ_test.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_TRUE@am__objects_159 = unictype/libunistring_la-combiningclass.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME_TRUE@am__objects_160 = unictype/libunistring_la-combiningclass_byname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME_TRUE@am__objects_161 = unictype/libunistring_la-combiningclass_longname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME_TRUE@am__objects_162 = unictype/libunistring_la-combiningclass_name.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM_TRUE@am__objects_163 = unictype/libunistring_la-ctype_alnum.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA_TRUE@am__objects_164 = unictype/libunistring_la-ctype_alpha.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK_TRUE@am__objects_165 = unictype/libunistring_la-ctype_blank.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL_TRUE@am__objects_166 = unictype/libunistring_la-ctype_cntrl.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT_TRUE@am__objects_167 = unictype/libunistring_la-ctype_digit.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH_TRUE@am__objects_168 = unictype/libunistring_la-ctype_graph.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER_TRUE@am__objects_169 = unictype/libunistring_la-ctype_lower.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT_TRUE@am__objects_170 = unictype/libunistring_la-ctype_print.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT_TRUE@am__objects_171 = unictype/libunistring_la-ctype_punct.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE_TRUE@am__objects_172 = unictype/libunistring_la-ctype_space.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER_TRUE@am__objects_173 = unictype/libunistring_la-ctype_upper.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT_TRUE@am__objects_174 = unictype/libunistring_la-ctype_xdigit.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT_TRUE@am__objects_175 = unictype/libunistring_la-decdigit.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_DIGIT_TRUE@am__objects_176 = unictype/libunistring_la-digit.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_INCB_BYNAME_TRUE@am__objects_177 = unictype/libunistring_la-incb_byname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_INCB_NAME_TRUE@am__objects_178 = unictype/libunistring_la-incb_name.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_INCB_OF_TRUE@am__objects_179 = unictype/libunistring_la-incb_of.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME_TRUE@am__objects_180 = unictype/libunistring_la-joininggroup_byname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME_TRUE@am__objects_181 = unictype/libunistring_la-joininggroup_name.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF_TRUE@am__objects_182 = unictype/libunistring_la-joininggroup_of.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME_TRUE@am__objects_183 = unictype/libunistring_la-joiningtype_byname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME_TRUE@am__objects_184 = unictype/libunistring_la-joiningtype_longname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME_TRUE@am__objects_185 = unictype/libunistring_la-joiningtype_name.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF_TRUE@am__objects_186 = unictype/libunistring_la-joiningtype_of.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_MIRROR_TRUE@am__objects_187 = unictype/libunistring_la-mirror.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC_TRUE@am__objects_188 = unictype/libunistring_la-numeric.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC_TRUE@am__objects_189 = unictype/libunistring_la-pr_alphabetic.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_TRUE@am__objects_190 = unictype/libunistring_la-pr_ascii_hex_digit.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_TRUE@am__objects_191 = unictype/libunistring_la-pr_bidi_arabic_digit.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_TRUE@am__objects_192 = unictype/libunistring_la-pr_bidi_arabic_right_to_left.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_TRUE@am__objects_193 = unictype/libunistring_la-pr_bidi_block_separator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_TRUE@am__objects_194 = unictype/libunistring_la-pr_bidi_boundary_neutral.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_TRUE@am__objects_195 = unictype/libunistring_la-pr_bidi_common_separator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL_TRUE@am__objects_196 = unictype/libunistring_la-pr_bidi_control.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_TRUE@am__objects_197 = unictype/libunistring_la-pr_bidi_embedding_or_override.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_TRUE@am__objects_198 = unictype/libunistring_la-pr_bidi_eur_num_separator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_TRUE@am__objects_199 = unictype/libunistring_la-pr_bidi_eur_num_terminator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_TRUE@am__objects_200 = unictype/libunistring_la-pr_bidi_european_digit.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_TRUE@am__objects_201 = unictype/libunistring_la-pr_bidi_hebrew_right_to_left.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_TRUE@am__objects_202 = unictype/libunistring_la-pr_bidi_left_to_right.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_TRUE@am__objects_203 = unictype/libunistring_la-pr_bidi_non_spacing_mark.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_TRUE@am__objects_204 = unictype/libunistring_la-pr_bidi_other_neutral.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF_TRUE@am__objects_205 = unictype/libunistring_la-pr_bidi_pdf.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_TRUE@am__objects_206 = unictype/libunistring_la-pr_bidi_segment_separator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE_TRUE@am__objects_207 = unictype/libunistring_la-pr_bidi_whitespace.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME_TRUE@am__objects_208 = unictype/libunistring_la-pr_byname.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE_TRUE@am__objects_209 = unictype/libunistring_la-pr_case_ignorable.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED_TRUE@am__objects_210 = unictype/libunistring_la-pr_cased.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_TRUE@am__objects_211 = unictype/libunistring_la-pr_changes_when_casefolded.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_TRUE@am__objects_212 = unictype/libunistring_la-pr_changes_when_casemapped.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_TRUE@am__objects_213 = unictype/libunistring_la-pr_changes_when_lowercased.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_TRUE@am__objects_214 = unictype/libunistring_la-pr_changes_when_titlecased.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_TRUE@am__objects_215 = unictype/libunistring_la-pr_changes_when_uppercased.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING_TRUE@am__objects_216 = unictype/libunistring_la-pr_combining.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE_TRUE@am__objects_217 = unictype/libunistring_la-pr_composite.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_TRUE@am__objects_218 = unictype/libunistring_la-pr_currency_symbol.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH_TRUE@am__objects_219 = unictype/libunistring_la-pr_dash.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT_TRUE@am__objects_220 = unictype/libunistring_la-pr_decimal_digit.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__objects_221 = unictype/libunistring_la-pr_default_ignorable_code_point.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED_TRUE@am__objects_222 = unictype/libunistring_la-pr_deprecated.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC_TRUE@am__objects_223 = unictype/libunistring_la-pr_diacritic.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_TRUE@am__objects_224 = unictype/libunistring_la-pr_emoji.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_COMPONENT_TRUE@am__objects_225 = unictype/libunistring_la-pr_emoji_component.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_MODIFIER_TRUE@am__objects_226 = unictype/libunistring_la-pr_emoji_modifier.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_MODIFIER_BASE_TRUE@am__objects_227 = unictype/libunistring_la-pr_emoji_modifier_base.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_PRESENTATION_TRUE@am__objects_228 = unictype/libunistring_la-pr_emoji_presentation.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDED_PICTOGRAPHIC_TRUE@am__objects_229 = unictype/libunistring_la-pr_extended_pictographic.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER_TRUE@am__objects_230 = unictype/libunistring_la-pr_extender.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL_TRUE@am__objects_231 = unictype/libunistring_la-pr_format_control.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE_TRUE@am__objects_232 = unictype/libunistring_la-pr_grapheme_base.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_TRUE@am__objects_233 = unictype/libunistring_la-pr_grapheme_extend.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK_TRUE@am__objects_234 = unictype/libunistring_la-pr_grapheme_link.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT_TRUE@am__objects_235 = unictype/libunistring_la-pr_hex_digit.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN_TRUE@am__objects_236 = unictype/libunistring_la-pr_hyphen.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_COMPAT_MATH_CONTINUE_TRUE@am__objects_237 = unictype/libunistring_la-pr_id_compat_math_continue.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_COMPAT_MATH_START_TRUE@am__objects_238 = unictype/libunistring_la-pr_id_compat_math_start.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE_TRUE@am__objects_239 = unictype/libunistring_la-pr_id_continue.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START_TRUE@am__objects_240 = unictype/libunistring_la-pr_id_start.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC_TRUE@am__objects_241 = unictype/libunistring_la-pr_ideographic.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_TRUE@am__objects_242 = unictype/libunistring_la-pr_ids_binary_operator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_TRUE@am__objects_243 = unictype/libunistring_la-pr_ids_trinary_operator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_UNARY_OPERATOR_TRUE@am__objects_244 = unictype/libunistring_la-pr_ids_unary_operator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_TRUE@am__objects_245 = unictype/libunistring_la-pr_ignorable_control.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL_TRUE@am__objects_246 = unictype/libunistring_la-pr_iso_control.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL_TRUE@am__objects_247 = unictype/libunistring_la-pr_join_control.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR_TRUE@am__objects_248 = unictype/libunistring_la-pr_left_of_pair.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR_TRUE@am__objects_249 = unictype/libunistring_la-pr_line_separator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_TRUE@am__objects_250 = unictype/libunistring_la-pr_logical_order_exception.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE_TRUE@am__objects_251 = unictype/libunistring_la-pr_lowercase.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH_TRUE@am__objects_252 = unictype/libunistring_la-pr_math.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MODIFIER_COMBINING_MARK_TRUE@am__objects_253 = unictype/libunistring_la-pr_modifier_combining_mark.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK_TRUE@am__objects_254 = unictype/libunistring_la-pr_non_break.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER_TRUE@am__objects_255 = unictype/libunistring_la-pr_not_a_character.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC_TRUE@am__objects_256 = unictype/libunistring_la-pr_numeric.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_TRUE@am__objects_257 = unictype/libunistring_la-pr_other_alphabetic.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__objects_258 = unictype/libunistring_la-pr_other_default_ignorable_code_point.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_TRUE@am__objects_259 = unictype/libunistring_la-pr_other_grapheme_extend.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_TRUE@am__objects_260 = unictype/libunistring_la-pr_other_id_continue.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START_TRUE@am__objects_261 = unictype/libunistring_la-pr_other_id_start.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE_TRUE@am__objects_262 = unictype/libunistring_la-pr_other_lowercase.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH_TRUE@am__objects_263 = unictype/libunistring_la-pr_other_math.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE_TRUE@am__objects_264 = unictype/libunistring_la-pr_other_uppercase.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_TRUE@am__objects_265 = unictype/libunistring_la-pr_paired_punctuation.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_TRUE@am__objects_266 = unictype/libunistring_la-pr_paragraph_separator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX_TRUE@am__objects_267 = unictype/libunistring_la-pr_pattern_syntax.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_TRUE@am__objects_268 = unictype/libunistring_la-pr_pattern_white_space.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PREPENDED_CONCATENATION_MARK_TRUE@am__objects_269 = unictype/libunistring_la-pr_prepended_concatenation_mark.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE_TRUE@am__objects_270 = unictype/libunistring_la-pr_private_use.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION_TRUE@am__objects_271 = unictype/libunistring_la-pr_punctuation.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK_TRUE@am__objects_272 = unictype/libunistring_la-pr_quotation_mark.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL_TRUE@am__objects_273 = unictype/libunistring_la-pr_radical.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_REGIONAL_INDICATOR_TRUE@am__objects_274 = unictype/libunistring_la-pr_regional_indicator.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_TRUE@am__objects_275 = unictype/libunistring_la-pr_sentence_terminal.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED_TRUE@am__objects_276 = unictype/libunistring_la-pr_soft_dotted.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE_TRUE@am__objects_277 = unictype/libunistring_la-pr_space.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_TRUE@am__objects_278 = unictype/libunistring_la-pr_terminal_punctuation.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST_TRUE@am__objects_279 = unictype/libunistring_la-pr_test.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE_TRUE@am__objects_280 = unictype/libunistring_la-pr_titlecase.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_TRUE@am__objects_281 = unictype/libunistring_la-pr_unassigned_code_value.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_TRUE@am__objects_282 = unictype/libunistring_la-pr_unified_ideograph.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE_TRUE@am__objects_283 = unictype/libunistring_la-pr_uppercase.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR_TRUE@am__objects_284 = unictype/libunistring_la-pr_variation_selector.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE_TRUE@am__objects_285 = unictype/libunistring_la-pr_white_space.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE_TRUE@am__objects_286 = unictype/libunistring_la-pr_xid_continue.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START_TRUE@am__objects_287 = unictype/libunistring_la-pr_xid_start.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH_TRUE@am__objects_288 = unictype/libunistring_la-pr_zero_width.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS_TRUE@am__objects_289 = unictype/libunistring_la-scripts.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT_TRUE@am__objects_290 = unictype/libunistring_la-sy_c_ident.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE_TRUE@am__objects_291 = unictype/libunistring_la-sy_c_whitespace.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT_TRUE@am__objects_292 = unictype/libunistring_la-sy_java_ident.lo
-@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE_TRUE@am__objects_293 = unictype/libunistring_la-sy_java_whitespace.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS_TRUE@am__objects_294 = unigbrk/libunistring_la-u16-grapheme-breaks.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT_TRUE@am__objects_295 = unigbrk/libunistring_la-u16-grapheme-next.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV_TRUE@am__objects_296 = unigbrk/libunistring_la-u16-grapheme-prev.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS_TRUE@am__objects_297 = unigbrk/libunistring_la-u32-grapheme-breaks.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT_TRUE@am__objects_298 = unigbrk/libunistring_la-u32-grapheme-next.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV_TRUE@am__objects_299 = unigbrk/libunistring_la-u32-grapheme-prev.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS_TRUE@am__objects_300 = unigbrk/libunistring_la-u8-grapheme-breaks.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT_TRUE@am__objects_301 = unigbrk/libunistring_la-u8-grapheme-next.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV_TRUE@am__objects_302 = unigbrk/libunistring_la-u8-grapheme-prev.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP_TRUE@am__objects_303 = unigbrk/libunistring_la-uc-gbrk-prop.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_UC_GRAPHEME_BREAKS_TRUE@am__objects_304 = unigbrk/libunistring_la-uc-grapheme-breaks.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK_TRUE@am__objects_305 = unigbrk/libunistring_la-uc-is-grapheme-break.lo
-@LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS_TRUE@am__objects_306 = unigbrk/libunistring_la-ulc-grapheme-breaks.lo
-@LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS_TRUE@am__objects_307 = unilbrk/libunistring_la-u16-possible-linebreaks.lo
-@LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS_TRUE@am__objects_308 = unilbrk/libunistring_la-u16-width-linebreaks.lo
-@LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS_TRUE@am__objects_309 = unilbrk/libunistring_la-u32-possible-linebreaks.lo
-@LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS_TRUE@am__objects_310 = unilbrk/libunistring_la-u32-width-linebreaks.lo
-@LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS_TRUE@am__objects_311 = unilbrk/libunistring_la-u8-possible-linebreaks.lo
-@LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS_TRUE@am__objects_312 = unilbrk/libunistring_la-u8-width-linebreaks.lo
-@LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS_TRUE@am__objects_313 = unilbrk/libunistring_la-ulc-possible-linebreaks.lo
-@LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS_TRUE@am__objects_314 = unilbrk/libunistring_la-ulc-width-linebreaks.lo
-@LIBUNISTRING_COMPILE_UNIMETADATA_U_VERSION_TRUE@am__objects_315 = unimetadata/libunistring_la-u-version.lo
-@LIBUNISTRING_COMPILE_UNINAME_UNINAME_TRUE@am__objects_316 = uniname/libunistring_la-uniname.lo
-@LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION_TRUE@am__objects_317 = uninorm/libunistring_la-canonical-decomposition.lo
-@LIBUNISTRING_COMPILE_UNINORM_COMPOSITION_TRUE@am__objects_318 = uninorm/libunistring_la-composition.lo
-@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM_TRUE@am__objects_319 = uninorm/libunistring_la-decomposing-form.lo
-@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION_TRUE@am__objects_320 = uninorm/libunistring_la-decomposition.lo
-@LIBUNISTRING_COMPILE_UNINORM_FILTER_TRUE@am__objects_321 = uninorm/libunistring_la-uninorm-filter.lo
-@LIBUNISTRING_COMPILE_UNINORM_NFC_TRUE@am__objects_322 = uninorm/libunistring_la-nfc.lo
-@LIBUNISTRING_COMPILE_UNINORM_NFD_TRUE@am__objects_323 = uninorm/libunistring_la-nfd.lo
-@LIBUNISTRING_COMPILE_UNINORM_NFKC_TRUE@am__objects_324 = uninorm/libunistring_la-nfkc.lo
-@LIBUNISTRING_COMPILE_UNINORM_NFKD_TRUE@am__objects_325 = uninorm/libunistring_la-nfkd.lo
-@LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE_TRUE@am__objects_326 = uninorm/libunistring_la-u16-normalize.lo
-@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP_TRUE@am__objects_327 = uninorm/libunistring_la-u16-normcmp.lo
-@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL_TRUE@am__objects_328 = uninorm/libunistring_la-u16-normcoll.lo
-@LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM_TRUE@am__objects_329 = uninorm/libunistring_la-u16-normxfrm.lo
-@LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE_TRUE@am__objects_330 = uninorm/libunistring_la-u32-normalize.lo
-@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP_TRUE@am__objects_331 = uninorm/libunistring_la-u32-normcmp.lo
-@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL_TRUE@am__objects_332 = uninorm/libunistring_la-u32-normcoll.lo
-@LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM_TRUE@am__objects_333 = uninorm/libunistring_la-u32-normxfrm.lo
-@LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE_TRUE@am__objects_334 = uninorm/libunistring_la-u8-normalize.lo
-@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP_TRUE@am__objects_335 = uninorm/libunistring_la-u8-normcmp.lo
-@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL_TRUE@am__objects_336 = uninorm/libunistring_la-u8-normcoll.lo
-@LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM_TRUE@am__objects_337 = uninorm/libunistring_la-u8-normxfrm.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF_TRUE@am__objects_338 = unistdio/libunistring_la-u16-asnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF_TRUE@am__objects_339 = unistdio/libunistring_la-u16-asprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF_TRUE@am__objects_340 = unistdio/libunistring_la-u16-snprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF_TRUE@am__objects_341 = unistdio/libunistring_la-u16-sprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF_TRUE@am__objects_342 = unistdio/libunistring_la-u16-u16-asnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF_TRUE@am__objects_343 = unistdio/libunistring_la-u16-u16-asprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF_TRUE@am__objects_344 = unistdio/libunistring_la-u16-u16-snprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF_TRUE@am__objects_345 = unistdio/libunistring_la-u16-u16-sprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF_TRUE@am__objects_346 = unistdio/libunistring_la-u16-u16-vasnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF_TRUE@am__objects_347 = unistdio/libunistring_la-u16-u16-vasprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF_TRUE@am__objects_348 = unistdio/libunistring_la-u16-u16-vsnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF_TRUE@am__objects_349 = unistdio/libunistring_la-u16-u16-vsprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF_TRUE@am__objects_350 = unistdio/libunistring_la-u16-vasnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF_TRUE@am__objects_351 = unistdio/libunistring_la-u16-vasprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF_TRUE@am__objects_352 = unistdio/libunistring_la-u16-vsnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF_TRUE@am__objects_353 = unistdio/libunistring_la-u16-vsprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF_TRUE@am__objects_354 = unistdio/libunistring_la-u32-asnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF_TRUE@am__objects_355 = unistdio/libunistring_la-u32-asprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF_TRUE@am__objects_356 = unistdio/libunistring_la-u32-snprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF_TRUE@am__objects_357 = unistdio/libunistring_la-u32-sprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF_TRUE@am__objects_358 = unistdio/libunistring_la-u32-u32-asnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF_TRUE@am__objects_359 = unistdio/libunistring_la-u32-u32-asprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF_TRUE@am__objects_360 = unistdio/libunistring_la-u32-u32-snprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF_TRUE@am__objects_361 = unistdio/libunistring_la-u32-u32-sprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF_TRUE@am__objects_362 = unistdio/libunistring_la-u32-u32-vasnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF_TRUE@am__objects_363 = unistdio/libunistring_la-u32-u32-vasprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF_TRUE@am__objects_364 = unistdio/libunistring_la-u32-u32-vsnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF_TRUE@am__objects_365 = unistdio/libunistring_la-u32-u32-vsprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF_TRUE@am__objects_366 = unistdio/libunistring_la-u32-vasnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF_TRUE@am__objects_367 = unistdio/libunistring_la-u32-vasprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF_TRUE@am__objects_368 = unistdio/libunistring_la-u32-vsnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF_TRUE@am__objects_369 = unistdio/libunistring_la-u32-vsprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF_TRUE@am__objects_370 = unistdio/libunistring_la-u8-asnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF_TRUE@am__objects_371 = unistdio/libunistring_la-u8-asprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF_TRUE@am__objects_372 = unistdio/libunistring_la-u8-snprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE@am__objects_373 = unistdio/libunistring_la-u8-sprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF_TRUE@am__objects_374 = unistdio/libunistring_la-u8-u8-asnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF_TRUE@am__objects_375 = unistdio/libunistring_la-u8-u8-asprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF_TRUE@am__objects_376 = unistdio/libunistring_la-u8-u8-snprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF_TRUE@am__objects_377 = unistdio/libunistring_la-u8-u8-sprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF_TRUE@am__objects_378 = unistdio/libunistring_la-u8-u8-vasnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF_TRUE@am__objects_379 = unistdio/libunistring_la-u8-u8-vasprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF_TRUE@am__objects_380 = unistdio/libunistring_la-u8-u8-vsnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF_TRUE@am__objects_381 = unistdio/libunistring_la-u8-u8-vsprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE@am__objects_382 = unistdio/libunistring_la-u8-vasnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF_TRUE@am__objects_383 = unistdio/libunistring_la-u8-vasprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF_TRUE@am__objects_384 = unistdio/libunistring_la-u8-vsnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE@am__objects_385 = unistdio/libunistring_la-u8-vsprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF_TRUE@am__objects_386 = unistdio/libunistring_la-ulc-asnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF_TRUE@am__objects_387 = unistdio/libunistring_la-ulc-asprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF_TRUE@am__objects_388 = unistdio/libunistring_la-ulc-fprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF_TRUE@am__objects_389 = unistdio/libunistring_la-ulc-snprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF_TRUE@am__objects_390 = unistdio/libunistring_la-ulc-sprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF_TRUE@am__objects_391 = unistdio/libunistring_la-ulc-vasnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF_TRUE@am__objects_392 = unistdio/libunistring_la-ulc-vasprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF_TRUE@am__objects_393 = unistdio/libunistring_la-ulc-vfprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF_TRUE@am__objects_394 = unistdio/libunistring_la-ulc-vsnprintf.lo
-@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF_TRUE@am__objects_395 = unistdio/libunistring_la-ulc-vsprintf.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_CHECK_TRUE@am__objects_396 = unistr/libunistring_la-u16-check.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_CHR_TRUE@am__objects_397 = unistr/libunistring_la-u16-chr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_CMP_TRUE@am__objects_398 = unistr/libunistring_la-u16-cmp.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_CMP2_TRUE@am__objects_399 = unistr/libunistring_la-u16-cmp2.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_TRUE@am__objects_400 = unistr/libunistring_la-u16-cpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC_TRUE@am__objects_401 = unistr/libunistring_la-u16-cpy-alloc.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH_TRUE@am__objects_402 = unistr/libunistring_la-u16-endswith.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN_TRUE@am__objects_403 = unistr/libunistring_la-u16-mblen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN_TRUE@am__objects_404 = unistr/libunistring_la-u16-mbsnlen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_TRUE@am__objects_405 = unistr/libunistring_la-u16-mbtouc.lo \
+@GL_COND_OBJ_STRNCPY_TRUE@am__objects_25 = libunistring_la-strncpy.lo
+@LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT_TRUE@am__objects_26 = unicase/libunistring_la-empty-prefix-context.lo
+@LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT_TRUE@am__objects_27 = unicase/libunistring_la-empty-suffix-context.lo
+@LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE_TRUE@am__objects_28 = unicase/libunistring_la-locale-language.lo
+@LIBUNISTRING_COMPILE_UNICASE_TOLOWER_TRUE@am__objects_29 = unicase/libunistring_la-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_TOTITLE_TRUE@am__objects_30 = unicase/libunistring_la-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_TOUPPER_TRUE@am__objects_31 = unicase/libunistring_la-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP_TRUE@am__objects_32 = unicase/libunistring_la-u16-casecmp.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL_TRUE@am__objects_33 = unicase/libunistring_la-u16-casecoll.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD_TRUE@am__objects_34 = unicase/libunistring_la-u16-casefold.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM_TRUE@am__objects_35 = unicase/libunistring_la-u16-casexfrm.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD_TRUE@am__objects_36 = unicase/libunistring_la-u16-ct-casefold.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER_TRUE@am__objects_37 = unicase/libunistring_la-u16-ct-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE_TRUE@am__objects_38 = unicase/libunistring_la-u16-ct-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER_TRUE@am__objects_39 = unicase/libunistring_la-u16-ct-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED_TRUE@am__objects_40 = unicase/libunistring_la-u16-is-cased.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED_TRUE@am__objects_41 = unicase/libunistring_la-u16-is-casefolded.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE_TRUE@am__objects_42 = unicase/libunistring_la-u16-is-lowercase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE_TRUE@am__objects_43 = unicase/libunistring_la-u16-is-titlecase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE_TRUE@am__objects_44 = unicase/libunistring_la-u16-is-uppercase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_PREFIX_CONTEXT_TRUE@am__objects_45 = unicase/libunistring_la-u16-prefix-context.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_SUFFIX_CONTEXT_TRUE@am__objects_46 = unicase/libunistring_la-u16-suffix-context.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER_TRUE@am__objects_47 = unicase/libunistring_la-u16-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE_TRUE@am__objects_48 = unicase/libunistring_la-u16-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER_TRUE@am__objects_49 = unicase/libunistring_la-u16-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP_TRUE@am__objects_50 = unicase/libunistring_la-u32-casecmp.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL_TRUE@am__objects_51 = unicase/libunistring_la-u32-casecoll.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD_TRUE@am__objects_52 = unicase/libunistring_la-u32-casefold.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM_TRUE@am__objects_53 = unicase/libunistring_la-u32-casexfrm.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD_TRUE@am__objects_54 = unicase/libunistring_la-u32-ct-casefold.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER_TRUE@am__objects_55 = unicase/libunistring_la-u32-ct-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE_TRUE@am__objects_56 = unicase/libunistring_la-u32-ct-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER_TRUE@am__objects_57 = unicase/libunistring_la-u32-ct-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED_TRUE@am__objects_58 = unicase/libunistring_la-u32-is-cased.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED_TRUE@am__objects_59 = unicase/libunistring_la-u32-is-casefolded.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE_TRUE@am__objects_60 = unicase/libunistring_la-u32-is-lowercase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE_TRUE@am__objects_61 = unicase/libunistring_la-u32-is-titlecase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE_TRUE@am__objects_62 = unicase/libunistring_la-u32-is-uppercase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_PREFIX_CONTEXT_TRUE@am__objects_63 = unicase/libunistring_la-u32-prefix-context.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_SUFFIX_CONTEXT_TRUE@am__objects_64 = unicase/libunistring_la-u32-suffix-context.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER_TRUE@am__objects_65 = unicase/libunistring_la-u32-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE_TRUE@am__objects_66 = unicase/libunistring_la-u32-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER_TRUE@am__objects_67 = unicase/libunistring_la-u32-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP_TRUE@am__objects_68 = unicase/libunistring_la-u8-casecmp.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL_TRUE@am__objects_69 = unicase/libunistring_la-u8-casecoll.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD_TRUE@am__objects_70 = unicase/libunistring_la-u8-casefold.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM_TRUE@am__objects_71 = unicase/libunistring_la-u8-casexfrm.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD_TRUE@am__objects_72 = unicase/libunistring_la-u8-ct-casefold.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER_TRUE@am__objects_73 = unicase/libunistring_la-u8-ct-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE_TRUE@am__objects_74 = unicase/libunistring_la-u8-ct-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER_TRUE@am__objects_75 = unicase/libunistring_la-u8-ct-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED_TRUE@am__objects_76 = unicase/libunistring_la-u8-is-cased.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED_TRUE@am__objects_77 = unicase/libunistring_la-u8-is-casefolded.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE_TRUE@am__objects_78 = unicase/libunistring_la-u8-is-lowercase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE_TRUE@am__objects_79 = unicase/libunistring_la-u8-is-titlecase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE_TRUE@am__objects_80 = unicase/libunistring_la-u8-is-uppercase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_PREFIX_CONTEXT_TRUE@am__objects_81 = unicase/libunistring_la-u8-prefix-context.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_SUFFIX_CONTEXT_TRUE@am__objects_82 = unicase/libunistring_la-u8-suffix-context.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER_TRUE@am__objects_83 = unicase/libunistring_la-u8-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE_TRUE@am__objects_84 = unicase/libunistring_la-u8-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER_TRUE@am__objects_85 = unicase/libunistring_la-u8-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP_TRUE@am__objects_86 = unicase/libunistring_la-ulc-casecmp.lo
+@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL_TRUE@am__objects_87 = unicase/libunistring_la-ulc-casecoll.lo
+@LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM_TRUE@am__objects_88 = unicase/libunistring_la-ulc-casexfrm.lo
+@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC_TRUE@am__objects_89 = uniconv/libunistring_la-u16-conv-from-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC_TRUE@am__objects_90 = uniconv/libunistring_la-u16-conv-to-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC_TRUE@am__objects_91 = uniconv/libunistring_la-u16-strconv-from-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE_TRUE@am__objects_92 = uniconv/libunistring_la-u16-strconv-from-locale.lo
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC_TRUE@am__objects_93 = uniconv/libunistring_la-u16-strconv-to-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE_TRUE@am__objects_94 = uniconv/libunistring_la-u16-strconv-to-locale.lo
+@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC_TRUE@am__objects_95 = uniconv/libunistring_la-u32-conv-from-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC_TRUE@am__objects_96 = uniconv/libunistring_la-u32-conv-to-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC_TRUE@am__objects_97 = uniconv/libunistring_la-u32-strconv-from-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE_TRUE@am__objects_98 = uniconv/libunistring_la-u32-strconv-from-locale.lo
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC_TRUE@am__objects_99 = uniconv/libunistring_la-u32-strconv-to-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE_TRUE@am__objects_100 = uniconv/libunistring_la-u32-strconv-to-locale.lo
+@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE@am__objects_101 = uniconv/libunistring_la-u8-conv-from-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC_TRUE@am__objects_102 = uniconv/libunistring_la-u8-conv-to-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC_TRUE@am__objects_103 = uniconv/libunistring_la-u8-strconv-from-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE_TRUE@am__objects_104 = uniconv/libunistring_la-u8-strconv-from-locale.lo
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC_TRUE@am__objects_105 = uniconv/libunistring_la-u8-strconv-to-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE_TRUE@am__objects_106 = uniconv/libunistring_la-u8-strconv-to-locale.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME_TRUE@am__objects_107 = unictype/libunistring_la-bidi_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME_TRUE@am__objects_108 = unictype/libunistring_la-bidi_longname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME_TRUE@am__objects_109 = unictype/libunistring_la-bidi_name.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF_TRUE@am__objects_110 = unictype/libunistring_la-bidi_of.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST_TRUE@am__objects_111 = unictype/libunistring_la-bidi_test.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST_TRUE@am__objects_112 = unictype/libunistring_la-blocks.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST_TRUE@am__objects_113 = unictype/libunistring_la-block_test.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C_TRUE@am__objects_114 = unictype/libunistring_la-categ_C.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC_TRUE@am__objects_115 = unictype/libunistring_la-categ_Cc.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF_TRUE@am__objects_116 = unictype/libunistring_la-categ_Cf.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN_TRUE@am__objects_117 = unictype/libunistring_la-categ_Cn.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO_TRUE@am__objects_118 = unictype/libunistring_la-categ_Co.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS_TRUE@am__objects_119 = unictype/libunistring_la-categ_Cs.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L_TRUE@am__objects_120 = unictype/libunistring_la-categ_L.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC_TRUE@am__objects_121 = unictype/libunistring_la-categ_LC.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL_TRUE@am__objects_122 = unictype/libunistring_la-categ_Ll.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM_TRUE@am__objects_123 = unictype/libunistring_la-categ_Lm.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO_TRUE@am__objects_124 = unictype/libunistring_la-categ_Lo.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT_TRUE@am__objects_125 = unictype/libunistring_la-categ_Lt.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU_TRUE@am__objects_126 = unictype/libunistring_la-categ_Lu.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M_TRUE@am__objects_127 = unictype/libunistring_la-categ_M.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC_TRUE@am__objects_128 = unictype/libunistring_la-categ_Mc.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME_TRUE@am__objects_129 = unictype/libunistring_la-categ_Me.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN_TRUE@am__objects_130 = unictype/libunistring_la-categ_Mn.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N_TRUE@am__objects_131 = unictype/libunistring_la-categ_N.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND_TRUE@am__objects_132 = unictype/libunistring_la-categ_Nd.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL_TRUE@am__objects_133 = unictype/libunistring_la-categ_Nl.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO_TRUE@am__objects_134 = unictype/libunistring_la-categ_No.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P_TRUE@am__objects_135 = unictype/libunistring_la-categ_P.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC_TRUE@am__objects_136 = unictype/libunistring_la-categ_Pc.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD_TRUE@am__objects_137 = unictype/libunistring_la-categ_Pd.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE_TRUE@am__objects_138 = unictype/libunistring_la-categ_Pe.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF_TRUE@am__objects_139 = unictype/libunistring_la-categ_Pf.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI_TRUE@am__objects_140 = unictype/libunistring_la-categ_Pi.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO_TRUE@am__objects_141 = unictype/libunistring_la-categ_Po.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS_TRUE@am__objects_142 = unictype/libunistring_la-categ_Ps.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S_TRUE@am__objects_143 = unictype/libunistring_la-categ_S.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC_TRUE@am__objects_144 = unictype/libunistring_la-categ_Sc.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK_TRUE@am__objects_145 = unictype/libunistring_la-categ_Sk.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM_TRUE@am__objects_146 = unictype/libunistring_la-categ_Sm.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO_TRUE@am__objects_147 = unictype/libunistring_la-categ_So.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z_TRUE@am__objects_148 = unictype/libunistring_la-categ_Z.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL_TRUE@am__objects_149 = unictype/libunistring_la-categ_Zl.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP_TRUE@am__objects_150 = unictype/libunistring_la-categ_Zp.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS_TRUE@am__objects_151 = unictype/libunistring_la-categ_Zs.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_TRUE@am__objects_152 = unictype/libunistring_la-categ_and.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT_TRUE@am__objects_153 = unictype/libunistring_la-categ_and_not.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME_TRUE@am__objects_154 = unictype/libunistring_la-categ_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME_TRUE@am__objects_155 = unictype/libunistring_la-categ_longname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME_TRUE@am__objects_156 = unictype/libunistring_la-categ_name.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF_TRUE@am__objects_157 = unictype/libunistring_la-categ_of.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR_TRUE@am__objects_158 = unictype/libunistring_la-categ_or.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST_TRUE@am__objects_159 = unictype/libunistring_la-categ_test.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_TRUE@am__objects_160 = unictype/libunistring_la-combiningclass.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME_TRUE@am__objects_161 = unictype/libunistring_la-combiningclass_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME_TRUE@am__objects_162 = unictype/libunistring_la-combiningclass_longname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME_TRUE@am__objects_163 = unictype/libunistring_la-combiningclass_name.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM_TRUE@am__objects_164 = unictype/libunistring_la-ctype_alnum.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA_TRUE@am__objects_165 = unictype/libunistring_la-ctype_alpha.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK_TRUE@am__objects_166 = unictype/libunistring_la-ctype_blank.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL_TRUE@am__objects_167 = unictype/libunistring_la-ctype_cntrl.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT_TRUE@am__objects_168 = unictype/libunistring_la-ctype_digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH_TRUE@am__objects_169 = unictype/libunistring_la-ctype_graph.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER_TRUE@am__objects_170 = unictype/libunistring_la-ctype_lower.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT_TRUE@am__objects_171 = unictype/libunistring_la-ctype_print.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT_TRUE@am__objects_172 = unictype/libunistring_la-ctype_punct.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE_TRUE@am__objects_173 = unictype/libunistring_la-ctype_space.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER_TRUE@am__objects_174 = unictype/libunistring_la-ctype_upper.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT_TRUE@am__objects_175 = unictype/libunistring_la-ctype_xdigit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT_TRUE@am__objects_176 = unictype/libunistring_la-decdigit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_DIGIT_TRUE@am__objects_177 = unictype/libunistring_la-digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_INCB_BYNAME_TRUE@am__objects_178 = unictype/libunistring_la-incb_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_INCB_NAME_TRUE@am__objects_179 = unictype/libunistring_la-incb_name.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_INCB_OF_TRUE@am__objects_180 = unictype/libunistring_la-incb_of.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME_TRUE@am__objects_181 = unictype/libunistring_la-joininggroup_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME_TRUE@am__objects_182 = unictype/libunistring_la-joininggroup_name.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF_TRUE@am__objects_183 = unictype/libunistring_la-joininggroup_of.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME_TRUE@am__objects_184 = unictype/libunistring_la-joiningtype_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME_TRUE@am__objects_185 = unictype/libunistring_la-joiningtype_longname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME_TRUE@am__objects_186 = unictype/libunistring_la-joiningtype_name.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF_TRUE@am__objects_187 = unictype/libunistring_la-joiningtype_of.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_MIRROR_TRUE@am__objects_188 = unictype/libunistring_la-mirror.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC_TRUE@am__objects_189 = unictype/libunistring_la-numeric.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC_TRUE@am__objects_190 = unictype/libunistring_la-pr_alphabetic.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_TRUE@am__objects_191 = unictype/libunistring_la-pr_ascii_hex_digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_TRUE@am__objects_192 = unictype/libunistring_la-pr_bidi_arabic_digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_TRUE@am__objects_193 = unictype/libunistring_la-pr_bidi_arabic_right_to_left.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_TRUE@am__objects_194 = unictype/libunistring_la-pr_bidi_block_separator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_TRUE@am__objects_195 = unictype/libunistring_la-pr_bidi_boundary_neutral.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_TRUE@am__objects_196 = unictype/libunistring_la-pr_bidi_common_separator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL_TRUE@am__objects_197 = unictype/libunistring_la-pr_bidi_control.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_TRUE@am__objects_198 = unictype/libunistring_la-pr_bidi_embedding_or_override.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_TRUE@am__objects_199 = unictype/libunistring_la-pr_bidi_eur_num_separator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_TRUE@am__objects_200 = unictype/libunistring_la-pr_bidi_eur_num_terminator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_TRUE@am__objects_201 = unictype/libunistring_la-pr_bidi_european_digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_TRUE@am__objects_202 = unictype/libunistring_la-pr_bidi_hebrew_right_to_left.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_TRUE@am__objects_203 = unictype/libunistring_la-pr_bidi_left_to_right.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_TRUE@am__objects_204 = unictype/libunistring_la-pr_bidi_non_spacing_mark.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_TRUE@am__objects_205 = unictype/libunistring_la-pr_bidi_other_neutral.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF_TRUE@am__objects_206 = unictype/libunistring_la-pr_bidi_pdf.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_TRUE@am__objects_207 = unictype/libunistring_la-pr_bidi_segment_separator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE_TRUE@am__objects_208 = unictype/libunistring_la-pr_bidi_whitespace.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME_TRUE@am__objects_209 = unictype/libunistring_la-pr_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE_TRUE@am__objects_210 = unictype/libunistring_la-pr_case_ignorable.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED_TRUE@am__objects_211 = unictype/libunistring_la-pr_cased.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_TRUE@am__objects_212 = unictype/libunistring_la-pr_changes_when_casefolded.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_TRUE@am__objects_213 = unictype/libunistring_la-pr_changes_when_casemapped.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_TRUE@am__objects_214 = unictype/libunistring_la-pr_changes_when_lowercased.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_TRUE@am__objects_215 = unictype/libunistring_la-pr_changes_when_titlecased.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_TRUE@am__objects_216 = unictype/libunistring_la-pr_changes_when_uppercased.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING_TRUE@am__objects_217 = unictype/libunistring_la-pr_combining.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE_TRUE@am__objects_218 = unictype/libunistring_la-pr_composite.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_TRUE@am__objects_219 = unictype/libunistring_la-pr_currency_symbol.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH_TRUE@am__objects_220 = unictype/libunistring_la-pr_dash.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT_TRUE@am__objects_221 = unictype/libunistring_la-pr_decimal_digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__objects_222 = unictype/libunistring_la-pr_default_ignorable_code_point.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED_TRUE@am__objects_223 = unictype/libunistring_la-pr_deprecated.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC_TRUE@am__objects_224 = unictype/libunistring_la-pr_diacritic.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_TRUE@am__objects_225 = unictype/libunistring_la-pr_emoji.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_COMPONENT_TRUE@am__objects_226 = unictype/libunistring_la-pr_emoji_component.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_MODIFIER_TRUE@am__objects_227 = unictype/libunistring_la-pr_emoji_modifier.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_MODIFIER_BASE_TRUE@am__objects_228 = unictype/libunistring_la-pr_emoji_modifier_base.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EMOJI_PRESENTATION_TRUE@am__objects_229 = unictype/libunistring_la-pr_emoji_presentation.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDED_PICTOGRAPHIC_TRUE@am__objects_230 = unictype/libunistring_la-pr_extended_pictographic.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER_TRUE@am__objects_231 = unictype/libunistring_la-pr_extender.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL_TRUE@am__objects_232 = unictype/libunistring_la-pr_format_control.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE_TRUE@am__objects_233 = unictype/libunistring_la-pr_grapheme_base.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_TRUE@am__objects_234 = unictype/libunistring_la-pr_grapheme_extend.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK_TRUE@am__objects_235 = unictype/libunistring_la-pr_grapheme_link.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT_TRUE@am__objects_236 = unictype/libunistring_la-pr_hex_digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN_TRUE@am__objects_237 = unictype/libunistring_la-pr_hyphen.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_COMPAT_MATH_CONTINUE_TRUE@am__objects_238 = unictype/libunistring_la-pr_id_compat_math_continue.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_COMPAT_MATH_START_TRUE@am__objects_239 = unictype/libunistring_la-pr_id_compat_math_start.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE_TRUE@am__objects_240 = unictype/libunistring_la-pr_id_continue.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START_TRUE@am__objects_241 = unictype/libunistring_la-pr_id_start.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC_TRUE@am__objects_242 = unictype/libunistring_la-pr_ideographic.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_TRUE@am__objects_243 = unictype/libunistring_la-pr_ids_binary_operator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_TRUE@am__objects_244 = unictype/libunistring_la-pr_ids_trinary_operator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_UNARY_OPERATOR_TRUE@am__objects_245 = unictype/libunistring_la-pr_ids_unary_operator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_TRUE@am__objects_246 = unictype/libunistring_la-pr_ignorable_control.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL_TRUE@am__objects_247 = unictype/libunistring_la-pr_iso_control.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL_TRUE@am__objects_248 = unictype/libunistring_la-pr_join_control.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR_TRUE@am__objects_249 = unictype/libunistring_la-pr_left_of_pair.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR_TRUE@am__objects_250 = unictype/libunistring_la-pr_line_separator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_TRUE@am__objects_251 = unictype/libunistring_la-pr_logical_order_exception.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE_TRUE@am__objects_252 = unictype/libunistring_la-pr_lowercase.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH_TRUE@am__objects_253 = unictype/libunistring_la-pr_math.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MODIFIER_COMBINING_MARK_TRUE@am__objects_254 = unictype/libunistring_la-pr_modifier_combining_mark.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK_TRUE@am__objects_255 = unictype/libunistring_la-pr_non_break.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER_TRUE@am__objects_256 = unictype/libunistring_la-pr_not_a_character.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC_TRUE@am__objects_257 = unictype/libunistring_la-pr_numeric.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_TRUE@am__objects_258 = unictype/libunistring_la-pr_other_alphabetic.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__objects_259 = unictype/libunistring_la-pr_other_default_ignorable_code_point.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_TRUE@am__objects_260 = unictype/libunistring_la-pr_other_grapheme_extend.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_TRUE@am__objects_261 = unictype/libunistring_la-pr_other_id_continue.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START_TRUE@am__objects_262 = unictype/libunistring_la-pr_other_id_start.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE_TRUE@am__objects_263 = unictype/libunistring_la-pr_other_lowercase.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH_TRUE@am__objects_264 = unictype/libunistring_la-pr_other_math.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE_TRUE@am__objects_265 = unictype/libunistring_la-pr_other_uppercase.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_TRUE@am__objects_266 = unictype/libunistring_la-pr_paired_punctuation.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_TRUE@am__objects_267 = unictype/libunistring_la-pr_paragraph_separator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX_TRUE@am__objects_268 = unictype/libunistring_la-pr_pattern_syntax.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_TRUE@am__objects_269 = unictype/libunistring_la-pr_pattern_white_space.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PREPENDED_CONCATENATION_MARK_TRUE@am__objects_270 = unictype/libunistring_la-pr_prepended_concatenation_mark.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE_TRUE@am__objects_271 = unictype/libunistring_la-pr_private_use.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION_TRUE@am__objects_272 = unictype/libunistring_la-pr_punctuation.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK_TRUE@am__objects_273 = unictype/libunistring_la-pr_quotation_mark.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL_TRUE@am__objects_274 = unictype/libunistring_la-pr_radical.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_REGIONAL_INDICATOR_TRUE@am__objects_275 = unictype/libunistring_la-pr_regional_indicator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_TRUE@am__objects_276 = unictype/libunistring_la-pr_sentence_terminal.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED_TRUE@am__objects_277 = unictype/libunistring_la-pr_soft_dotted.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE_TRUE@am__objects_278 = unictype/libunistring_la-pr_space.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_TRUE@am__objects_279 = unictype/libunistring_la-pr_terminal_punctuation.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST_TRUE@am__objects_280 = unictype/libunistring_la-pr_test.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE_TRUE@am__objects_281 = unictype/libunistring_la-pr_titlecase.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_TRUE@am__objects_282 = unictype/libunistring_la-pr_unassigned_code_value.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_TRUE@am__objects_283 = unictype/libunistring_la-pr_unified_ideograph.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE_TRUE@am__objects_284 = unictype/libunistring_la-pr_uppercase.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR_TRUE@am__objects_285 = unictype/libunistring_la-pr_variation_selector.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE_TRUE@am__objects_286 = unictype/libunistring_la-pr_white_space.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE_TRUE@am__objects_287 = unictype/libunistring_la-pr_xid_continue.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START_TRUE@am__objects_288 = unictype/libunistring_la-pr_xid_start.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH_TRUE@am__objects_289 = unictype/libunistring_la-pr_zero_width.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS_TRUE@am__objects_290 = unictype/libunistring_la-scripts.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT_TRUE@am__objects_291 = unictype/libunistring_la-sy_c_ident.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE_TRUE@am__objects_292 = unictype/libunistring_la-sy_c_whitespace.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT_TRUE@am__objects_293 = unictype/libunistring_la-sy_java_ident.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE_TRUE@am__objects_294 = unictype/libunistring_la-sy_java_whitespace.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS_TRUE@am__objects_295 = unigbrk/libunistring_la-u16-grapheme-breaks.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT_TRUE@am__objects_296 = unigbrk/libunistring_la-u16-grapheme-next.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV_TRUE@am__objects_297 = unigbrk/libunistring_la-u16-grapheme-prev.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS_TRUE@am__objects_298 = unigbrk/libunistring_la-u32-grapheme-breaks.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT_TRUE@am__objects_299 = unigbrk/libunistring_la-u32-grapheme-next.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV_TRUE@am__objects_300 = unigbrk/libunistring_la-u32-grapheme-prev.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS_TRUE@am__objects_301 = unigbrk/libunistring_la-u8-grapheme-breaks.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT_TRUE@am__objects_302 = unigbrk/libunistring_la-u8-grapheme-next.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV_TRUE@am__objects_303 = unigbrk/libunistring_la-u8-grapheme-prev.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP_TRUE@am__objects_304 = unigbrk/libunistring_la-uc-gbrk-prop.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_UC_GRAPHEME_BREAKS_TRUE@am__objects_305 = unigbrk/libunistring_la-uc-grapheme-breaks.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK_TRUE@am__objects_306 = unigbrk/libunistring_la-uc-is-grapheme-break.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS_TRUE@am__objects_307 = unigbrk/libunistring_la-ulc-grapheme-breaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS_TRUE@am__objects_308 = unilbrk/libunistring_la-u16-possible-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS_TRUE@am__objects_309 = unilbrk/libunistring_la-u16-width-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS_TRUE@am__objects_310 = unilbrk/libunistring_la-u32-possible-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS_TRUE@am__objects_311 = unilbrk/libunistring_la-u32-width-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS_TRUE@am__objects_312 = unilbrk/libunistring_la-u8-possible-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS_TRUE@am__objects_313 = unilbrk/libunistring_la-u8-width-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS_TRUE@am__objects_314 = unilbrk/libunistring_la-ulc-possible-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS_TRUE@am__objects_315 = unilbrk/libunistring_la-ulc-width-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNIMETADATA_U_VERSION_TRUE@am__objects_316 = unimetadata/libunistring_la-u-version.lo
+@LIBUNISTRING_COMPILE_UNINAME_UNINAME_TRUE@am__objects_317 = uniname/libunistring_la-uniname.lo
+@LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION_TRUE@am__objects_318 = uninorm/libunistring_la-canonical-decomposition.lo
+@LIBUNISTRING_COMPILE_UNINORM_COMPOSITION_TRUE@am__objects_319 = uninorm/libunistring_la-composition.lo
+@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM_TRUE@am__objects_320 = uninorm/libunistring_la-decomposing-form.lo
+@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION_TRUE@am__objects_321 = uninorm/libunistring_la-decomposition.lo
+@LIBUNISTRING_COMPILE_UNINORM_FILTER_TRUE@am__objects_322 = uninorm/libunistring_la-uninorm-filter.lo
+@LIBUNISTRING_COMPILE_UNINORM_NFC_TRUE@am__objects_323 = uninorm/libunistring_la-nfc.lo
+@LIBUNISTRING_COMPILE_UNINORM_NFD_TRUE@am__objects_324 = uninorm/libunistring_la-nfd.lo
+@LIBUNISTRING_COMPILE_UNINORM_NFKC_TRUE@am__objects_325 = uninorm/libunistring_la-nfkc.lo
+@LIBUNISTRING_COMPILE_UNINORM_NFKD_TRUE@am__objects_326 = uninorm/libunistring_la-nfkd.lo
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE_TRUE@am__objects_327 = uninorm/libunistring_la-u16-normalize.lo
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP_TRUE@am__objects_328 = uninorm/libunistring_la-u16-normcmp.lo
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL_TRUE@am__objects_329 = uninorm/libunistring_la-u16-normcoll.lo
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM_TRUE@am__objects_330 = uninorm/libunistring_la-u16-normxfrm.lo
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE_TRUE@am__objects_331 = uninorm/libunistring_la-u32-normalize.lo
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP_TRUE@am__objects_332 = uninorm/libunistring_la-u32-normcmp.lo
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL_TRUE@am__objects_333 = uninorm/libunistring_la-u32-normcoll.lo
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM_TRUE@am__objects_334 = uninorm/libunistring_la-u32-normxfrm.lo
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE_TRUE@am__objects_335 = uninorm/libunistring_la-u8-normalize.lo
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP_TRUE@am__objects_336 = uninorm/libunistring_la-u8-normcmp.lo
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL_TRUE@am__objects_337 = uninorm/libunistring_la-u8-normcoll.lo
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM_TRUE@am__objects_338 = uninorm/libunistring_la-u8-normxfrm.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF_TRUE@am__objects_339 = unistdio/libunistring_la-u16-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF_TRUE@am__objects_340 = unistdio/libunistring_la-u16-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF_TRUE@am__objects_341 = unistdio/libunistring_la-u16-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF_TRUE@am__objects_342 = unistdio/libunistring_la-u16-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF_TRUE@am__objects_343 = unistdio/libunistring_la-u16-u16-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF_TRUE@am__objects_344 = unistdio/libunistring_la-u16-u16-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF_TRUE@am__objects_345 = unistdio/libunistring_la-u16-u16-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF_TRUE@am__objects_346 = unistdio/libunistring_la-u16-u16-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF_TRUE@am__objects_347 = unistdio/libunistring_la-u16-u16-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF_TRUE@am__objects_348 = unistdio/libunistring_la-u16-u16-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF_TRUE@am__objects_349 = unistdio/libunistring_la-u16-u16-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF_TRUE@am__objects_350 = unistdio/libunistring_la-u16-u16-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF_TRUE@am__objects_351 = unistdio/libunistring_la-u16-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF_TRUE@am__objects_352 = unistdio/libunistring_la-u16-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF_TRUE@am__objects_353 = unistdio/libunistring_la-u16-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF_TRUE@am__objects_354 = unistdio/libunistring_la-u16-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF_TRUE@am__objects_355 = unistdio/libunistring_la-u32-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF_TRUE@am__objects_356 = unistdio/libunistring_la-u32-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF_TRUE@am__objects_357 = unistdio/libunistring_la-u32-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF_TRUE@am__objects_358 = unistdio/libunistring_la-u32-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF_TRUE@am__objects_359 = unistdio/libunistring_la-u32-u32-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF_TRUE@am__objects_360 = unistdio/libunistring_la-u32-u32-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF_TRUE@am__objects_361 = unistdio/libunistring_la-u32-u32-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF_TRUE@am__objects_362 = unistdio/libunistring_la-u32-u32-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF_TRUE@am__objects_363 = unistdio/libunistring_la-u32-u32-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF_TRUE@am__objects_364 = unistdio/libunistring_la-u32-u32-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF_TRUE@am__objects_365 = unistdio/libunistring_la-u32-u32-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF_TRUE@am__objects_366 = unistdio/libunistring_la-u32-u32-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF_TRUE@am__objects_367 = unistdio/libunistring_la-u32-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF_TRUE@am__objects_368 = unistdio/libunistring_la-u32-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF_TRUE@am__objects_369 = unistdio/libunistring_la-u32-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF_TRUE@am__objects_370 = unistdio/libunistring_la-u32-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF_TRUE@am__objects_371 = unistdio/libunistring_la-u8-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF_TRUE@am__objects_372 = unistdio/libunistring_la-u8-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF_TRUE@am__objects_373 = unistdio/libunistring_la-u8-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE@am__objects_374 = unistdio/libunistring_la-u8-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF_TRUE@am__objects_375 = unistdio/libunistring_la-u8-u8-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF_TRUE@am__objects_376 = unistdio/libunistring_la-u8-u8-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF_TRUE@am__objects_377 = unistdio/libunistring_la-u8-u8-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF_TRUE@am__objects_378 = unistdio/libunistring_la-u8-u8-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF_TRUE@am__objects_379 = unistdio/libunistring_la-u8-u8-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF_TRUE@am__objects_380 = unistdio/libunistring_la-u8-u8-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF_TRUE@am__objects_381 = unistdio/libunistring_la-u8-u8-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF_TRUE@am__objects_382 = unistdio/libunistring_la-u8-u8-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE@am__objects_383 = unistdio/libunistring_la-u8-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF_TRUE@am__objects_384 = unistdio/libunistring_la-u8-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF_TRUE@am__objects_385 = unistdio/libunistring_la-u8-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE@am__objects_386 = unistdio/libunistring_la-u8-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF_TRUE@am__objects_387 = unistdio/libunistring_la-ulc-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF_TRUE@am__objects_388 = unistdio/libunistring_la-ulc-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF_TRUE@am__objects_389 = unistdio/libunistring_la-ulc-fprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF_TRUE@am__objects_390 = unistdio/libunistring_la-ulc-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF_TRUE@am__objects_391 = unistdio/libunistring_la-ulc-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF_TRUE@am__objects_392 = unistdio/libunistring_la-ulc-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF_TRUE@am__objects_393 = unistdio/libunistring_la-ulc-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF_TRUE@am__objects_394 = unistdio/libunistring_la-ulc-vfprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF_TRUE@am__objects_395 = unistdio/libunistring_la-ulc-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF_TRUE@am__objects_396 = unistdio/libunistring_la-ulc-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_CHECK_TRUE@am__objects_397 = unistr/libunistring_la-u16-check.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_CHR_TRUE@am__objects_398 = unistr/libunistring_la-u16-chr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_CMP_TRUE@am__objects_399 = unistr/libunistring_la-u16-cmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_CMP2_TRUE@am__objects_400 = unistr/libunistring_la-u16-cmp2.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_TRUE@am__objects_401 = unistr/libunistring_la-u16-cpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC_TRUE@am__objects_402 = unistr/libunistring_la-u16-cpy-alloc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH_TRUE@am__objects_403 = unistr/libunistring_la-u16-endswith.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN_TRUE@am__objects_404 = unistr/libunistring_la-u16-mblen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN_TRUE@am__objects_405 = unistr/libunistring_la-u16-mbsnlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_TRUE@am__objects_406 = unistr/libunistring_la-u16-mbtouc.lo \
@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_TRUE@ unistr/libunistring_la-u16-mbtouc-aux.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_TRUE@am__objects_406 = unistr/libunistring_la-u16-mbtouc-unsafe.lo \
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_TRUE@am__objects_407 = unistr/libunistring_la-u16-mbtouc-unsafe.lo \
@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_TRUE@ unistr/libunistring_la-u16-mbtouc-unsafe-aux.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE@am__objects_407 = unistr/libunistring_la-u16-mbtoucr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_MOVE_TRUE@am__objects_408 = unistr/libunistring_la-u16-move.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_NEXT_TRUE@am__objects_409 = unistr/libunistring_la-u16-next.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_PCPY_TRUE@am__objects_410 = unistr/libunistring_la-u16-pcpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_PREV_TRUE@am__objects_411 = unistr/libunistring_la-u16-prev.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_SET_TRUE@am__objects_412 = unistr/libunistring_la-u16-set.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH_TRUE@am__objects_413 = unistr/libunistring_la-u16-startswith.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY_TRUE@am__objects_414 = unistr/libunistring_la-u16-stpcpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY_TRUE@am__objects_415 = unistr/libunistring_la-u16-stpncpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT_TRUE@am__objects_416 = unistr/libunistring_la-u16-strcat.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR_TRUE@am__objects_417 = unistr/libunistring_la-u16-strchr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP_TRUE@am__objects_418 = unistr/libunistring_la-u16-strcmp.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL_TRUE@am__objects_419 = unistr/libunistring_la-u16-strcoll.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY_TRUE@am__objects_420 = unistr/libunistring_la-u16-strcpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN_TRUE@am__objects_421 = unistr/libunistring_la-u16-strcspn.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP_TRUE@am__objects_422 = unistr/libunistring_la-u16-strdup.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE@am__objects_423 = unistr/libunistring_la-u16-strlen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE@am__objects_424 = unistr/libunistring_la-u16-strmblen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC_TRUE@am__objects_425 = unistr/libunistring_la-u16-strmbtouc.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT_TRUE@am__objects_426 = unistr/libunistring_la-u16-strncat.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP_TRUE@am__objects_427 = unistr/libunistring_la-u16-strncmp.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY_TRUE@am__objects_428 = unistr/libunistring_la-u16-strncpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN_TRUE@am__objects_429 = unistr/libunistring_la-u16-strnlen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK_TRUE@am__objects_430 = unistr/libunistring_la-u16-strpbrk.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR_TRUE@am__objects_431 = unistr/libunistring_la-u16-strrchr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN_TRUE@am__objects_432 = unistr/libunistring_la-u16-strspn.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR_TRUE@am__objects_433 = unistr/libunistring_la-u16-strstr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK_TRUE@am__objects_434 = unistr/libunistring_la-u16-strtok.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32_TRUE@am__objects_435 = unistr/libunistring_la-u16-to-u32.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE@am__objects_436 = unistr/libunistring_la-u16-to-u8.lo
-@LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_TRUE@am__objects_437 = unistr/libunistring_la-u16-uctomb.lo \
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE@am__objects_408 = unistr/libunistring_la-u16-mbtoucr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_MOVE_TRUE@am__objects_409 = unistr/libunistring_la-u16-move.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_NEXT_TRUE@am__objects_410 = unistr/libunistring_la-u16-next.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_PCPY_TRUE@am__objects_411 = unistr/libunistring_la-u16-pcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_PREV_TRUE@am__objects_412 = unistr/libunistring_la-u16-prev.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_SET_TRUE@am__objects_413 = unistr/libunistring_la-u16-set.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH_TRUE@am__objects_414 = unistr/libunistring_la-u16-startswith.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY_TRUE@am__objects_415 = unistr/libunistring_la-u16-stpcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY_TRUE@am__objects_416 = unistr/libunistring_la-u16-stpncpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT_TRUE@am__objects_417 = unistr/libunistring_la-u16-strcat.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR_TRUE@am__objects_418 = unistr/libunistring_la-u16-strchr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP_TRUE@am__objects_419 = unistr/libunistring_la-u16-strcmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL_TRUE@am__objects_420 = unistr/libunistring_la-u16-strcoll.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY_TRUE@am__objects_421 = unistr/libunistring_la-u16-strcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN_TRUE@am__objects_422 = unistr/libunistring_la-u16-strcspn.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP_TRUE@am__objects_423 = unistr/libunistring_la-u16-strdup.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE@am__objects_424 = unistr/libunistring_la-u16-strlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE@am__objects_425 = unistr/libunistring_la-u16-strmblen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC_TRUE@am__objects_426 = unistr/libunistring_la-u16-strmbtouc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT_TRUE@am__objects_427 = unistr/libunistring_la-u16-strncat.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP_TRUE@am__objects_428 = unistr/libunistring_la-u16-strncmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY_TRUE@am__objects_429 = unistr/libunistring_la-u16-strncpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN_TRUE@am__objects_430 = unistr/libunistring_la-u16-strnlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK_TRUE@am__objects_431 = unistr/libunistring_la-u16-strpbrk.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR_TRUE@am__objects_432 = unistr/libunistring_la-u16-strrchr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN_TRUE@am__objects_433 = unistr/libunistring_la-u16-strspn.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR_TRUE@am__objects_434 = unistr/libunistring_la-u16-strstr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK_TRUE@am__objects_435 = unistr/libunistring_la-u16-strtok.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32_TRUE@am__objects_436 = unistr/libunistring_la-u16-to-u32.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE@am__objects_437 = unistr/libunistring_la-u16-to-u8.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_TRUE@am__objects_438 = unistr/libunistring_la-u16-uctomb.lo \
@LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_TRUE@ unistr/libunistring_la-u16-uctomb-aux.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_CHECK_TRUE@am__objects_438 = unistr/libunistring_la-u32-check.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_CHR_TRUE@am__objects_439 = unistr/libunistring_la-u32-chr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_CMP_TRUE@am__objects_440 = unistr/libunistring_la-u32-cmp.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_CMP2_TRUE@am__objects_441 = unistr/libunistring_la-u32-cmp2.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_TRUE@am__objects_442 = unistr/libunistring_la-u32-cpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC_TRUE@am__objects_443 = unistr/libunistring_la-u32-cpy-alloc.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH_TRUE@am__objects_444 = unistr/libunistring_la-u32-endswith.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN_TRUE@am__objects_445 = unistr/libunistring_la-u32-mblen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN_TRUE@am__objects_446 = unistr/libunistring_la-u32-mbsnlen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_TRUE@am__objects_447 = unistr/libunistring_la-u32-mbtouc.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE_TRUE@am__objects_448 = unistr/libunistring_la-u32-mbtouc-unsafe.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR_TRUE@am__objects_449 = unistr/libunistring_la-u32-mbtoucr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_MOVE_TRUE@am__objects_450 = unistr/libunistring_la-u32-move.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_NEXT_TRUE@am__objects_451 = unistr/libunistring_la-u32-next.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_PCPY_TRUE@am__objects_452 = unistr/libunistring_la-u32-pcpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_PREV_TRUE@am__objects_453 = unistr/libunistring_la-u32-prev.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_SET_TRUE@am__objects_454 = unistr/libunistring_la-u32-set.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH_TRUE@am__objects_455 = unistr/libunistring_la-u32-startswith.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY_TRUE@am__objects_456 = unistr/libunistring_la-u32-stpcpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY_TRUE@am__objects_457 = unistr/libunistring_la-u32-stpncpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT_TRUE@am__objects_458 = unistr/libunistring_la-u32-strcat.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR_TRUE@am__objects_459 = unistr/libunistring_la-u32-strchr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP_TRUE@am__objects_460 = unistr/libunistring_la-u32-strcmp.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL_TRUE@am__objects_461 = unistr/libunistring_la-u32-strcoll.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY_TRUE@am__objects_462 = unistr/libunistring_la-u32-strcpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN_TRUE@am__objects_463 = unistr/libunistring_la-u32-strcspn.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP_TRUE@am__objects_464 = unistr/libunistring_la-u32-strdup.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE@am__objects_465 = unistr/libunistring_la-u32-strlen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE@am__objects_466 = unistr/libunistring_la-u32-strmblen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC_TRUE@am__objects_467 = unistr/libunistring_la-u32-strmbtouc.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT_TRUE@am__objects_468 = unistr/libunistring_la-u32-strncat.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP_TRUE@am__objects_469 = unistr/libunistring_la-u32-strncmp.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY_TRUE@am__objects_470 = unistr/libunistring_la-u32-strncpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN_TRUE@am__objects_471 = unistr/libunistring_la-u32-strnlen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK_TRUE@am__objects_472 = unistr/libunistring_la-u32-strpbrk.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR_TRUE@am__objects_473 = unistr/libunistring_la-u32-strrchr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN_TRUE@am__objects_474 = unistr/libunistring_la-u32-strspn.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR_TRUE@am__objects_475 = unistr/libunistring_la-u32-strstr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK_TRUE@am__objects_476 = unistr/libunistring_la-u32-strtok.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16_TRUE@am__objects_477 = unistr/libunistring_la-u32-to-u16.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE@am__objects_478 = unistr/libunistring_la-u32-to-u8.lo
-@LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB_TRUE@am__objects_479 = unistr/libunistring_la-u32-uctomb.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE@am__objects_480 = unistr/libunistring_la-u8-check.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_CHR_TRUE@am__objects_481 = unistr/libunistring_la-u8-chr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_CMP_TRUE@am__objects_482 = unistr/libunistring_la-u8-cmp.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_CMP2_TRUE@am__objects_483 = unistr/libunistring_la-u8-cmp2.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE@am__objects_484 = unistr/libunistring_la-u8-cpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC_TRUE@am__objects_485 = unistr/libunistring_la-u8-cpy-alloc.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH_TRUE@am__objects_486 = unistr/libunistring_la-u8-endswith.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE@am__objects_487 = unistr/libunistring_la-u8-mblen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE@am__objects_488 = unistr/libunistring_la-u8-mbsnlen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE@am__objects_489 = unistr/libunistring_la-u8-mbtouc.lo \
+@LIBUNISTRING_COMPILE_UNISTR_U32_CHECK_TRUE@am__objects_439 = unistr/libunistring_la-u32-check.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_CHR_TRUE@am__objects_440 = unistr/libunistring_la-u32-chr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_CMP_TRUE@am__objects_441 = unistr/libunistring_la-u32-cmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_CMP2_TRUE@am__objects_442 = unistr/libunistring_la-u32-cmp2.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_TRUE@am__objects_443 = unistr/libunistring_la-u32-cpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC_TRUE@am__objects_444 = unistr/libunistring_la-u32-cpy-alloc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH_TRUE@am__objects_445 = unistr/libunistring_la-u32-endswith.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN_TRUE@am__objects_446 = unistr/libunistring_la-u32-mblen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN_TRUE@am__objects_447 = unistr/libunistring_la-u32-mbsnlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_TRUE@am__objects_448 = unistr/libunistring_la-u32-mbtouc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE_TRUE@am__objects_449 = unistr/libunistring_la-u32-mbtouc-unsafe.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR_TRUE@am__objects_450 = unistr/libunistring_la-u32-mbtoucr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_MOVE_TRUE@am__objects_451 = unistr/libunistring_la-u32-move.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_NEXT_TRUE@am__objects_452 = unistr/libunistring_la-u32-next.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_PCPY_TRUE@am__objects_453 = unistr/libunistring_la-u32-pcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_PREV_TRUE@am__objects_454 = unistr/libunistring_la-u32-prev.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_SET_TRUE@am__objects_455 = unistr/libunistring_la-u32-set.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH_TRUE@am__objects_456 = unistr/libunistring_la-u32-startswith.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY_TRUE@am__objects_457 = unistr/libunistring_la-u32-stpcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY_TRUE@am__objects_458 = unistr/libunistring_la-u32-stpncpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT_TRUE@am__objects_459 = unistr/libunistring_la-u32-strcat.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR_TRUE@am__objects_460 = unistr/libunistring_la-u32-strchr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP_TRUE@am__objects_461 = unistr/libunistring_la-u32-strcmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL_TRUE@am__objects_462 = unistr/libunistring_la-u32-strcoll.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY_TRUE@am__objects_463 = unistr/libunistring_la-u32-strcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN_TRUE@am__objects_464 = unistr/libunistring_la-u32-strcspn.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP_TRUE@am__objects_465 = unistr/libunistring_la-u32-strdup.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE@am__objects_466 = unistr/libunistring_la-u32-strlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE@am__objects_467 = unistr/libunistring_la-u32-strmblen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC_TRUE@am__objects_468 = unistr/libunistring_la-u32-strmbtouc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT_TRUE@am__objects_469 = unistr/libunistring_la-u32-strncat.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP_TRUE@am__objects_470 = unistr/libunistring_la-u32-strncmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY_TRUE@am__objects_471 = unistr/libunistring_la-u32-strncpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN_TRUE@am__objects_472 = unistr/libunistring_la-u32-strnlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK_TRUE@am__objects_473 = unistr/libunistring_la-u32-strpbrk.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR_TRUE@am__objects_474 = unistr/libunistring_la-u32-strrchr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN_TRUE@am__objects_475 = unistr/libunistring_la-u32-strspn.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR_TRUE@am__objects_476 = unistr/libunistring_la-u32-strstr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK_TRUE@am__objects_477 = unistr/libunistring_la-u32-strtok.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16_TRUE@am__objects_478 = unistr/libunistring_la-u32-to-u16.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE@am__objects_479 = unistr/libunistring_la-u32-to-u8.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB_TRUE@am__objects_480 = unistr/libunistring_la-u32-uctomb.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE@am__objects_481 = unistr/libunistring_la-u8-check.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_CHR_TRUE@am__objects_482 = unistr/libunistring_la-u8-chr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_CMP_TRUE@am__objects_483 = unistr/libunistring_la-u8-cmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_CMP2_TRUE@am__objects_484 = unistr/libunistring_la-u8-cmp2.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE@am__objects_485 = unistr/libunistring_la-u8-cpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC_TRUE@am__objects_486 = unistr/libunistring_la-u8-cpy-alloc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH_TRUE@am__objects_487 = unistr/libunistring_la-u8-endswith.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE@am__objects_488 = unistr/libunistring_la-u8-mblen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE@am__objects_489 = unistr/libunistring_la-u8-mbsnlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE@am__objects_490 = unistr/libunistring_la-u8-mbtouc.lo \
@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE@ unistr/libunistring_la-u8-mbtouc-aux.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE@am__objects_490 = unistr/libunistring_la-u8-mbtouc-unsafe.lo \
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE@am__objects_491 = unistr/libunistring_la-u8-mbtouc-unsafe.lo \
@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE@ unistr/libunistring_la-u8-mbtouc-unsafe-aux.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__objects_491 = unistr/libunistring_la-u8-mbtoucr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_MOVE_TRUE@am__objects_492 = unistr/libunistring_la-u8-move.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_NEXT_TRUE@am__objects_493 = unistr/libunistring_la-u8-next.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_PCPY_TRUE@am__objects_494 = unistr/libunistring_la-u8-pcpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE@am__objects_495 = unistr/libunistring_la-u8-prev.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE@am__objects_496 = unistr/libunistring_la-u8-set.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH_TRUE@am__objects_497 = unistr/libunistring_la-u8-startswith.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY_TRUE@am__objects_498 = unistr/libunistring_la-u8-stpcpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY_TRUE@am__objects_499 = unistr/libunistring_la-u8-stpncpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT_TRUE@am__objects_500 = unistr/libunistring_la-u8-strcat.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR_TRUE@am__objects_501 = unistr/libunistring_la-u8-strchr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP_TRUE@am__objects_502 = unistr/libunistring_la-u8-strcmp.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL_TRUE@am__objects_503 = unistr/libunistring_la-u8-strcoll.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY_TRUE@am__objects_504 = unistr/libunistring_la-u8-strcpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN_TRUE@am__objects_505 = unistr/libunistring_la-u8-strcspn.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP_TRUE@am__objects_506 = unistr/libunistring_la-u8-strdup.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE@am__objects_507 = unistr/libunistring_la-u8-strlen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE@am__objects_508 = unistr/libunistring_la-u8-strmblen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC_TRUE@am__objects_509 = unistr/libunistring_la-u8-strmbtouc.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT_TRUE@am__objects_510 = unistr/libunistring_la-u8-strncat.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP_TRUE@am__objects_511 = unistr/libunistring_la-u8-strncmp.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY_TRUE@am__objects_512 = unistr/libunistring_la-u8-strncpy.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN_TRUE@am__objects_513 = unistr/libunistring_la-u8-strnlen.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK_TRUE@am__objects_514 = unistr/libunistring_la-u8-strpbrk.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR_TRUE@am__objects_515 = unistr/libunistring_la-u8-strrchr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN_TRUE@am__objects_516 = unistr/libunistring_la-u8-strspn.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR_TRUE@am__objects_517 = unistr/libunistring_la-u8-strstr.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK_TRUE@am__objects_518 = unistr/libunistring_la-u8-strtok.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16_TRUE@am__objects_519 = unistr/libunistring_la-u8-to-u16.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32_TRUE@am__objects_520 = unistr/libunistring_la-u8-to-u32.lo
-@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__objects_521 = unistr/libunistring_la-u8-uctomb.lo \
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__objects_492 = unistr/libunistring_la-u8-mbtoucr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_MOVE_TRUE@am__objects_493 = unistr/libunistring_la-u8-move.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_NEXT_TRUE@am__objects_494 = unistr/libunistring_la-u8-next.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_PCPY_TRUE@am__objects_495 = unistr/libunistring_la-u8-pcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE@am__objects_496 = unistr/libunistring_la-u8-prev.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE@am__objects_497 = unistr/libunistring_la-u8-set.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH_TRUE@am__objects_498 = unistr/libunistring_la-u8-startswith.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY_TRUE@am__objects_499 = unistr/libunistring_la-u8-stpcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY_TRUE@am__objects_500 = unistr/libunistring_la-u8-stpncpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT_TRUE@am__objects_501 = unistr/libunistring_la-u8-strcat.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR_TRUE@am__objects_502 = unistr/libunistring_la-u8-strchr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP_TRUE@am__objects_503 = unistr/libunistring_la-u8-strcmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL_TRUE@am__objects_504 = unistr/libunistring_la-u8-strcoll.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY_TRUE@am__objects_505 = unistr/libunistring_la-u8-strcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN_TRUE@am__objects_506 = unistr/libunistring_la-u8-strcspn.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP_TRUE@am__objects_507 = unistr/libunistring_la-u8-strdup.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE@am__objects_508 = unistr/libunistring_la-u8-strlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE@am__objects_509 = unistr/libunistring_la-u8-strmblen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC_TRUE@am__objects_510 = unistr/libunistring_la-u8-strmbtouc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT_TRUE@am__objects_511 = unistr/libunistring_la-u8-strncat.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP_TRUE@am__objects_512 = unistr/libunistring_la-u8-strncmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY_TRUE@am__objects_513 = unistr/libunistring_la-u8-strncpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN_TRUE@am__objects_514 = unistr/libunistring_la-u8-strnlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK_TRUE@am__objects_515 = unistr/libunistring_la-u8-strpbrk.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR_TRUE@am__objects_516 = unistr/libunistring_la-u8-strrchr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN_TRUE@am__objects_517 = unistr/libunistring_la-u8-strspn.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR_TRUE@am__objects_518 = unistr/libunistring_la-u8-strstr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK_TRUE@am__objects_519 = unistr/libunistring_la-u8-strtok.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16_TRUE@am__objects_520 = unistr/libunistring_la-u8-to-u16.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32_TRUE@am__objects_521 = unistr/libunistring_la-u8-to-u32.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__objects_522 = unistr/libunistring_la-u8-uctomb.lo \
@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@ unistr/libunistring_la-u8-uctomb-aux.lo
-@LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS_TRUE@am__objects_522 = uniwbrk/libunistring_la-u16-wordbreaks.lo
-@LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS_TRUE@am__objects_523 = uniwbrk/libunistring_la-u32-wordbreaks.lo
-@LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS_TRUE@am__objects_524 = uniwbrk/libunistring_la-u8-wordbreaks.lo
-@LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS_TRUE@am__objects_525 = uniwbrk/libunistring_la-ulc-wordbreaks.lo
-@LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY_TRUE@am__objects_526 = uniwbrk/libunistring_la-wordbreak-property.lo
-@LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH_TRUE@am__objects_527 = uniwidth/libunistring_la-u16-strwidth.lo
-@LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH_TRUE@am__objects_528 = uniwidth/libunistring_la-u16-width.lo
-@LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH_TRUE@am__objects_529 = uniwidth/libunistring_la-u32-strwidth.lo
-@LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH_TRUE@am__objects_530 = uniwidth/libunistring_la-u32-width.lo
-@LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH_TRUE@am__objects_531 = uniwidth/libunistring_la-u8-strwidth.lo
-@LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH_TRUE@am__objects_532 = uniwidth/libunistring_la-u8-width.lo
-@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__objects_533 = uniwidth/libunistring_la-width.lo
-@GL_COND_OBJ_WCWIDTH_TRUE@am__objects_534 = \
+@LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS_TRUE@am__objects_523 = uniwbrk/libunistring_la-u16-wordbreaks.lo
+@LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS_TRUE@am__objects_524 = uniwbrk/libunistring_la-u32-wordbreaks.lo
+@LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS_TRUE@am__objects_525 = uniwbrk/libunistring_la-u8-wordbreaks.lo
+@LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS_TRUE@am__objects_526 = uniwbrk/libunistring_la-ulc-wordbreaks.lo
+@LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY_TRUE@am__objects_527 = uniwbrk/libunistring_la-wordbreak-property.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH_TRUE@am__objects_528 = uniwidth/libunistring_la-u16-strwidth.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH_TRUE@am__objects_529 = uniwidth/libunistring_la-u16-width.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH_TRUE@am__objects_530 = uniwidth/libunistring_la-u32-strwidth.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH_TRUE@am__objects_531 = uniwidth/libunistring_la-u32-width.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH_TRUE@am__objects_532 = uniwidth/libunistring_la-u8-strwidth.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH_TRUE@am__objects_533 = uniwidth/libunistring_la-u8-width.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__objects_534 = uniwidth/libunistring_la-width.lo
+@GL_COND_OBJ_WCWIDTH_TRUE@am__objects_535 = \
@GL_COND_OBJ_WCWIDTH_TRUE@ libunistring_la-wcwidth.lo
-@GL_COND_OBJ_WINDOWS_MUTEX_TRUE@am__objects_535 = libunistring_la-windows-mutex.lo
-@GL_COND_OBJ_WINDOWS_ONCE_TRUE@am__objects_536 = libunistring_la-windows-once.lo
-@GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE@am__objects_537 = libunistring_la-windows-recmutex.lo
-@GL_COND_OBJ_WINDOWS_RWLOCK_TRUE@am__objects_538 = libunistring_la-windows-rwlock.lo
-@WOE32DLL_TRUE@am__objects_539 = ../woe32dll/libunistring_la-unistring-exports.lo
+@GL_COND_OBJ_WINDOWS_MUTEX_TRUE@am__objects_536 = libunistring_la-windows-mutex.lo
+@GL_COND_OBJ_WINDOWS_ONCE_TRUE@am__objects_537 = libunistring_la-windows-once.lo
+@GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE@am__objects_538 = libunistring_la-windows-recmutex.lo
+@GL_COND_OBJ_WINDOWS_RWLOCK_TRUE@am__objects_539 = libunistring_la-windows-rwlock.lo
+@WOE32DLL_TRUE@am__objects_540 = ../woe32dll/libunistring_la-unistring-exports.lo
am_libunistring_la_OBJECTS = libunistring_la-amemxfrm.lo \
libunistring_la-c-ctype.lo libunistring_la-c-strcasecmp.lo \
libunistring_la-c32isalnum.lo libunistring_la-c32isalpha.lo \
@@ -2172,204 +2176,204 @@ am_libunistring_la_OBJECTS = libunistring_la-amemxfrm.lo \
$(am__objects_22) libunistring_la-setlocale_null-unlocked.lo \
$(am__objects_23) libunistring_la-stdlib.lo \
libunistring_la-striconveh.lo libunistring_la-striconveha.lo \
- libunistring_la-string.lo $(am__objects_24) \
+ libunistring_la-string.lo $(am__objects_24) $(am__objects_25) \
glthread/libunistring_la-threadlib.lo \
- unicase/libunistring_la-cased.lo $(am__objects_25) \
- $(am__objects_26) unicase/libunistring_la-ignorable.lo \
- $(am__objects_27) unicase/libunistring_la-special-casing.lo \
- unicase/libunistring_la-tocasefold.lo $(am__objects_28) \
- $(am__objects_29) $(am__objects_30) $(am__objects_31) \
- $(am__objects_32) $(am__objects_33) \
- unicase/libunistring_la-u16-casemap.lo $(am__objects_34) \
- $(am__objects_35) $(am__objects_36) $(am__objects_37) \
- $(am__objects_38) $(am__objects_39) $(am__objects_40) \
- unicase/libunistring_la-u16-is-invariant.lo $(am__objects_41) \
- $(am__objects_42) $(am__objects_43) $(am__objects_44) \
- $(am__objects_45) $(am__objects_46) $(am__objects_47) \
- $(am__objects_48) $(am__objects_49) $(am__objects_50) \
- $(am__objects_51) unicase/libunistring_la-u32-casemap.lo \
- $(am__objects_52) $(am__objects_53) $(am__objects_54) \
- $(am__objects_55) $(am__objects_56) $(am__objects_57) \
- $(am__objects_58) unicase/libunistring_la-u32-is-invariant.lo \
- $(am__objects_59) $(am__objects_60) $(am__objects_61) \
- $(am__objects_62) $(am__objects_63) $(am__objects_64) \
- $(am__objects_65) $(am__objects_66) $(am__objects_67) \
- $(am__objects_68) $(am__objects_69) \
- unicase/libunistring_la-u8-casemap.lo $(am__objects_70) \
- $(am__objects_71) $(am__objects_72) $(am__objects_73) \
- $(am__objects_74) $(am__objects_75) $(am__objects_76) \
- unicase/libunistring_la-u8-is-invariant.lo $(am__objects_77) \
- $(am__objects_78) $(am__objects_79) $(am__objects_80) \
- $(am__objects_81) $(am__objects_82) $(am__objects_83) \
- $(am__objects_84) $(am__objects_85) $(am__objects_86) \
- $(am__objects_87) $(am__objects_88) $(am__objects_89) \
- $(am__objects_90) $(am__objects_91) $(am__objects_92) \
- $(am__objects_93) $(am__objects_94) $(am__objects_95) \
- $(am__objects_96) $(am__objects_97) $(am__objects_98) \
- $(am__objects_99) $(am__objects_100) $(am__objects_101) \
- $(am__objects_102) $(am__objects_103) $(am__objects_104) \
- $(am__objects_105) $(am__objects_106) $(am__objects_107) \
- $(am__objects_108) $(am__objects_109) $(am__objects_110) \
- $(am__objects_111) $(am__objects_112) $(am__objects_113) \
- $(am__objects_114) $(am__objects_115) $(am__objects_116) \
- $(am__objects_117) $(am__objects_118) $(am__objects_119) \
- $(am__objects_120) $(am__objects_121) $(am__objects_122) \
- $(am__objects_123) $(am__objects_124) $(am__objects_125) \
- $(am__objects_126) $(am__objects_127) $(am__objects_128) \
- $(am__objects_129) $(am__objects_130) $(am__objects_131) \
- $(am__objects_132) $(am__objects_133) $(am__objects_134) \
- $(am__objects_135) $(am__objects_136) $(am__objects_137) \
- $(am__objects_138) $(am__objects_139) $(am__objects_140) \
- $(am__objects_141) $(am__objects_142) $(am__objects_143) \
- $(am__objects_144) $(am__objects_145) $(am__objects_146) \
- $(am__objects_147) $(am__objects_148) $(am__objects_149) \
- $(am__objects_150) $(am__objects_151) $(am__objects_152) \
- $(am__objects_153) $(am__objects_154) $(am__objects_155) \
- unictype/libunistring_la-categ_none.lo $(am__objects_156) \
- $(am__objects_157) $(am__objects_158) $(am__objects_159) \
- $(am__objects_160) $(am__objects_161) $(am__objects_162) \
- $(am__objects_163) $(am__objects_164) $(am__objects_165) \
- $(am__objects_166) $(am__objects_167) $(am__objects_168) \
- $(am__objects_169) $(am__objects_170) $(am__objects_171) \
- $(am__objects_172) $(am__objects_173) $(am__objects_174) \
- $(am__objects_175) $(am__objects_176) $(am__objects_177) \
- $(am__objects_178) $(am__objects_179) $(am__objects_180) \
- $(am__objects_181) $(am__objects_182) $(am__objects_183) \
- $(am__objects_184) $(am__objects_185) $(am__objects_186) \
- $(am__objects_187) $(am__objects_188) $(am__objects_189) \
- $(am__objects_190) $(am__objects_191) $(am__objects_192) \
- $(am__objects_193) $(am__objects_194) $(am__objects_195) \
- $(am__objects_196) $(am__objects_197) $(am__objects_198) \
- $(am__objects_199) $(am__objects_200) $(am__objects_201) \
- $(am__objects_202) $(am__objects_203) $(am__objects_204) \
- $(am__objects_205) $(am__objects_206) $(am__objects_207) \
- $(am__objects_208) $(am__objects_209) $(am__objects_210) \
- $(am__objects_211) $(am__objects_212) $(am__objects_213) \
- $(am__objects_214) $(am__objects_215) $(am__objects_216) \
- $(am__objects_217) $(am__objects_218) $(am__objects_219) \
- $(am__objects_220) $(am__objects_221) $(am__objects_222) \
- $(am__objects_223) $(am__objects_224) $(am__objects_225) \
- $(am__objects_226) $(am__objects_227) $(am__objects_228) \
- $(am__objects_229) $(am__objects_230) $(am__objects_231) \
- $(am__objects_232) $(am__objects_233) $(am__objects_234) \
- $(am__objects_235) $(am__objects_236) $(am__objects_237) \
- $(am__objects_238) $(am__objects_239) $(am__objects_240) \
- $(am__objects_241) $(am__objects_242) $(am__objects_243) \
- $(am__objects_244) $(am__objects_245) $(am__objects_246) \
- $(am__objects_247) $(am__objects_248) $(am__objects_249) \
- $(am__objects_250) $(am__objects_251) $(am__objects_252) \
- $(am__objects_253) $(am__objects_254) $(am__objects_255) \
- $(am__objects_256) $(am__objects_257) $(am__objects_258) \
- $(am__objects_259) $(am__objects_260) $(am__objects_261) \
- $(am__objects_262) $(am__objects_263) $(am__objects_264) \
- $(am__objects_265) $(am__objects_266) $(am__objects_267) \
- $(am__objects_268) $(am__objects_269) $(am__objects_270) \
- $(am__objects_271) $(am__objects_272) $(am__objects_273) \
- $(am__objects_274) $(am__objects_275) $(am__objects_276) \
- $(am__objects_277) $(am__objects_278) $(am__objects_279) \
- $(am__objects_280) $(am__objects_281) $(am__objects_282) \
- $(am__objects_283) $(am__objects_284) $(am__objects_285) \
- $(am__objects_286) $(am__objects_287) $(am__objects_288) \
- $(am__objects_289) $(am__objects_290) $(am__objects_291) \
- $(am__objects_292) $(am__objects_293) $(am__objects_294) \
- $(am__objects_295) $(am__objects_296) $(am__objects_297) \
- $(am__objects_298) $(am__objects_299) $(am__objects_300) \
- $(am__objects_301) $(am__objects_302) $(am__objects_303) \
- $(am__objects_304) $(am__objects_305) $(am__objects_306) \
- unilbrk/libunistring_la-lbrktables.lo $(am__objects_307) \
- $(am__objects_308) $(am__objects_309) $(am__objects_310) \
- $(am__objects_311) $(am__objects_312) \
- unilbrk/libunistring_la-ulc-common.lo $(am__objects_313) \
- $(am__objects_314) $(am__objects_315) $(am__objects_316) \
- $(am__objects_317) \
- uninorm/libunistring_la-compat-decomposition.lo \
+ unicase/libunistring_la-cased.lo $(am__objects_26) \
+ $(am__objects_27) unicase/libunistring_la-ignorable.lo \
+ $(am__objects_28) unicase/libunistring_la-special-casing.lo \
+ unicase/libunistring_la-tocasefold.lo $(am__objects_29) \
+ $(am__objects_30) $(am__objects_31) $(am__objects_32) \
+ $(am__objects_33) $(am__objects_34) \
+ unicase/libunistring_la-u16-casemap.lo $(am__objects_35) \
+ $(am__objects_36) $(am__objects_37) $(am__objects_38) \
+ $(am__objects_39) $(am__objects_40) $(am__objects_41) \
+ unicase/libunistring_la-u16-is-invariant.lo $(am__objects_42) \
+ $(am__objects_43) $(am__objects_44) $(am__objects_45) \
+ $(am__objects_46) $(am__objects_47) $(am__objects_48) \
+ $(am__objects_49) $(am__objects_50) $(am__objects_51) \
+ $(am__objects_52) unicase/libunistring_la-u32-casemap.lo \
+ $(am__objects_53) $(am__objects_54) $(am__objects_55) \
+ $(am__objects_56) $(am__objects_57) $(am__objects_58) \
+ $(am__objects_59) unicase/libunistring_la-u32-is-invariant.lo \
+ $(am__objects_60) $(am__objects_61) $(am__objects_62) \
+ $(am__objects_63) $(am__objects_64) $(am__objects_65) \
+ $(am__objects_66) $(am__objects_67) $(am__objects_68) \
+ $(am__objects_69) $(am__objects_70) \
+ unicase/libunistring_la-u8-casemap.lo $(am__objects_71) \
+ $(am__objects_72) $(am__objects_73) $(am__objects_74) \
+ $(am__objects_75) $(am__objects_76) $(am__objects_77) \
+ unicase/libunistring_la-u8-is-invariant.lo $(am__objects_78) \
+ $(am__objects_79) $(am__objects_80) $(am__objects_81) \
+ $(am__objects_82) $(am__objects_83) $(am__objects_84) \
+ $(am__objects_85) $(am__objects_86) $(am__objects_87) \
+ $(am__objects_88) $(am__objects_89) $(am__objects_90) \
+ $(am__objects_91) $(am__objects_92) $(am__objects_93) \
+ $(am__objects_94) $(am__objects_95) $(am__objects_96) \
+ $(am__objects_97) $(am__objects_98) $(am__objects_99) \
+ $(am__objects_100) $(am__objects_101) $(am__objects_102) \
+ $(am__objects_103) $(am__objects_104) $(am__objects_105) \
+ $(am__objects_106) $(am__objects_107) $(am__objects_108) \
+ $(am__objects_109) $(am__objects_110) $(am__objects_111) \
+ $(am__objects_112) $(am__objects_113) $(am__objects_114) \
+ $(am__objects_115) $(am__objects_116) $(am__objects_117) \
+ $(am__objects_118) $(am__objects_119) $(am__objects_120) \
+ $(am__objects_121) $(am__objects_122) $(am__objects_123) \
+ $(am__objects_124) $(am__objects_125) $(am__objects_126) \
+ $(am__objects_127) $(am__objects_128) $(am__objects_129) \
+ $(am__objects_130) $(am__objects_131) $(am__objects_132) \
+ $(am__objects_133) $(am__objects_134) $(am__objects_135) \
+ $(am__objects_136) $(am__objects_137) $(am__objects_138) \
+ $(am__objects_139) $(am__objects_140) $(am__objects_141) \
+ $(am__objects_142) $(am__objects_143) $(am__objects_144) \
+ $(am__objects_145) $(am__objects_146) $(am__objects_147) \
+ $(am__objects_148) $(am__objects_149) $(am__objects_150) \
+ $(am__objects_151) $(am__objects_152) $(am__objects_153) \
+ $(am__objects_154) $(am__objects_155) $(am__objects_156) \
+ unictype/libunistring_la-categ_none.lo $(am__objects_157) \
+ $(am__objects_158) $(am__objects_159) $(am__objects_160) \
+ $(am__objects_161) $(am__objects_162) $(am__objects_163) \
+ $(am__objects_164) $(am__objects_165) $(am__objects_166) \
+ $(am__objects_167) $(am__objects_168) $(am__objects_169) \
+ $(am__objects_170) $(am__objects_171) $(am__objects_172) \
+ $(am__objects_173) $(am__objects_174) $(am__objects_175) \
+ $(am__objects_176) $(am__objects_177) $(am__objects_178) \
+ $(am__objects_179) $(am__objects_180) $(am__objects_181) \
+ $(am__objects_182) $(am__objects_183) $(am__objects_184) \
+ $(am__objects_185) $(am__objects_186) $(am__objects_187) \
+ $(am__objects_188) $(am__objects_189) $(am__objects_190) \
+ $(am__objects_191) $(am__objects_192) $(am__objects_193) \
+ $(am__objects_194) $(am__objects_195) $(am__objects_196) \
+ $(am__objects_197) $(am__objects_198) $(am__objects_199) \
+ $(am__objects_200) $(am__objects_201) $(am__objects_202) \
+ $(am__objects_203) $(am__objects_204) $(am__objects_205) \
+ $(am__objects_206) $(am__objects_207) $(am__objects_208) \
+ $(am__objects_209) $(am__objects_210) $(am__objects_211) \
+ $(am__objects_212) $(am__objects_213) $(am__objects_214) \
+ $(am__objects_215) $(am__objects_216) $(am__objects_217) \
+ $(am__objects_218) $(am__objects_219) $(am__objects_220) \
+ $(am__objects_221) $(am__objects_222) $(am__objects_223) \
+ $(am__objects_224) $(am__objects_225) $(am__objects_226) \
+ $(am__objects_227) $(am__objects_228) $(am__objects_229) \
+ $(am__objects_230) $(am__objects_231) $(am__objects_232) \
+ $(am__objects_233) $(am__objects_234) $(am__objects_235) \
+ $(am__objects_236) $(am__objects_237) $(am__objects_238) \
+ $(am__objects_239) $(am__objects_240) $(am__objects_241) \
+ $(am__objects_242) $(am__objects_243) $(am__objects_244) \
+ $(am__objects_245) $(am__objects_246) $(am__objects_247) \
+ $(am__objects_248) $(am__objects_249) $(am__objects_250) \
+ $(am__objects_251) $(am__objects_252) $(am__objects_253) \
+ $(am__objects_254) $(am__objects_255) $(am__objects_256) \
+ $(am__objects_257) $(am__objects_258) $(am__objects_259) \
+ $(am__objects_260) $(am__objects_261) $(am__objects_262) \
+ $(am__objects_263) $(am__objects_264) $(am__objects_265) \
+ $(am__objects_266) $(am__objects_267) $(am__objects_268) \
+ $(am__objects_269) $(am__objects_270) $(am__objects_271) \
+ $(am__objects_272) $(am__objects_273) $(am__objects_274) \
+ $(am__objects_275) $(am__objects_276) $(am__objects_277) \
+ $(am__objects_278) $(am__objects_279) $(am__objects_280) \
+ $(am__objects_281) $(am__objects_282) $(am__objects_283) \
+ $(am__objects_284) $(am__objects_285) $(am__objects_286) \
+ $(am__objects_287) $(am__objects_288) $(am__objects_289) \
+ $(am__objects_290) $(am__objects_291) $(am__objects_292) \
+ $(am__objects_293) $(am__objects_294) $(am__objects_295) \
+ $(am__objects_296) $(am__objects_297) $(am__objects_298) \
+ $(am__objects_299) $(am__objects_300) $(am__objects_301) \
+ $(am__objects_302) $(am__objects_303) $(am__objects_304) \
+ $(am__objects_305) $(am__objects_306) $(am__objects_307) \
+ unilbrk/libunistring_la-lbrktables.lo $(am__objects_308) \
+ $(am__objects_309) $(am__objects_310) $(am__objects_311) \
+ $(am__objects_312) $(am__objects_313) \
+ unilbrk/libunistring_la-ulc-common.lo $(am__objects_314) \
+ $(am__objects_315) $(am__objects_316) $(am__objects_317) \
$(am__objects_318) \
+ uninorm/libunistring_la-compat-decomposition.lo \
+ $(am__objects_319) \
uninorm/libunistring_la-decompose-internal.lo \
- $(am__objects_319) $(am__objects_320) \
+ $(am__objects_320) $(am__objects_321) \
uninorm/libunistring_la-decomposition-table.lo \
- $(am__objects_321) $(am__objects_322) $(am__objects_323) \
- $(am__objects_324) $(am__objects_325) $(am__objects_326) \
- $(am__objects_327) $(am__objects_328) $(am__objects_329) \
- $(am__objects_330) $(am__objects_331) $(am__objects_332) \
- $(am__objects_333) $(am__objects_334) $(am__objects_335) \
- $(am__objects_336) $(am__objects_337) \
+ $(am__objects_322) $(am__objects_323) $(am__objects_324) \
+ $(am__objects_325) $(am__objects_326) $(am__objects_327) \
+ $(am__objects_328) $(am__objects_329) $(am__objects_330) \
+ $(am__objects_331) $(am__objects_332) $(am__objects_333) \
+ $(am__objects_334) $(am__objects_335) $(am__objects_336) \
+ $(am__objects_337) $(am__objects_338) \
libunistring_la-unistd.lo \
- unistdio/libunistring_la-u-printf-args.lo $(am__objects_338) \
- $(am__objects_339) \
+ unistdio/libunistring_la-u-printf-args.lo $(am__objects_339) \
+ $(am__objects_340) \
unistdio/libunistring_la-u16-printf-parse.lo \
- $(am__objects_340) $(am__objects_341) $(am__objects_342) \
- $(am__objects_343) $(am__objects_344) $(am__objects_345) \
- $(am__objects_346) $(am__objects_347) $(am__objects_348) \
- $(am__objects_349) $(am__objects_350) $(am__objects_351) \
- $(am__objects_352) $(am__objects_353) $(am__objects_354) \
- $(am__objects_355) \
+ $(am__objects_341) $(am__objects_342) $(am__objects_343) \
+ $(am__objects_344) $(am__objects_345) $(am__objects_346) \
+ $(am__objects_347) $(am__objects_348) $(am__objects_349) \
+ $(am__objects_350) $(am__objects_351) $(am__objects_352) \
+ $(am__objects_353) $(am__objects_354) $(am__objects_355) \
+ $(am__objects_356) \
unistdio/libunistring_la-u32-printf-parse.lo \
- $(am__objects_356) $(am__objects_357) $(am__objects_358) \
- $(am__objects_359) $(am__objects_360) $(am__objects_361) \
- $(am__objects_362) $(am__objects_363) $(am__objects_364) \
- $(am__objects_365) $(am__objects_366) $(am__objects_367) \
- $(am__objects_368) $(am__objects_369) $(am__objects_370) \
- $(am__objects_371) unistdio/libunistring_la-u8-printf-parse.lo \
- $(am__objects_372) $(am__objects_373) $(am__objects_374) \
- $(am__objects_375) $(am__objects_376) $(am__objects_377) \
- $(am__objects_378) $(am__objects_379) $(am__objects_380) \
- $(am__objects_381) $(am__objects_382) $(am__objects_383) \
- $(am__objects_384) $(am__objects_385) $(am__objects_386) \
- $(am__objects_387) $(am__objects_388) \
+ $(am__objects_357) $(am__objects_358) $(am__objects_359) \
+ $(am__objects_360) $(am__objects_361) $(am__objects_362) \
+ $(am__objects_363) $(am__objects_364) $(am__objects_365) \
+ $(am__objects_366) $(am__objects_367) $(am__objects_368) \
+ $(am__objects_369) $(am__objects_370) $(am__objects_371) \
+ $(am__objects_372) unistdio/libunistring_la-u8-printf-parse.lo \
+ $(am__objects_373) $(am__objects_374) $(am__objects_375) \
+ $(am__objects_376) $(am__objects_377) $(am__objects_378) \
+ $(am__objects_379) $(am__objects_380) $(am__objects_381) \
+ $(am__objects_382) $(am__objects_383) $(am__objects_384) \
+ $(am__objects_385) $(am__objects_386) $(am__objects_387) \
+ $(am__objects_388) $(am__objects_389) \
unistdio/libunistring_la-ulc-printf-parse.lo \
- $(am__objects_389) $(am__objects_390) $(am__objects_391) \
- $(am__objects_392) $(am__objects_393) $(am__objects_394) \
- $(am__objects_395) $(am__objects_396) $(am__objects_397) \
- $(am__objects_398) $(am__objects_399) $(am__objects_400) \
- $(am__objects_401) $(am__objects_402) $(am__objects_403) \
- $(am__objects_404) $(am__objects_405) $(am__objects_406) \
- $(am__objects_407) $(am__objects_408) $(am__objects_409) \
- $(am__objects_410) $(am__objects_411) $(am__objects_412) \
- $(am__objects_413) $(am__objects_414) $(am__objects_415) \
- $(am__objects_416) $(am__objects_417) $(am__objects_418) \
- $(am__objects_419) $(am__objects_420) $(am__objects_421) \
- $(am__objects_422) $(am__objects_423) $(am__objects_424) \
- $(am__objects_425) $(am__objects_426) $(am__objects_427) \
- $(am__objects_428) $(am__objects_429) $(am__objects_430) \
- $(am__objects_431) $(am__objects_432) $(am__objects_433) \
- $(am__objects_434) $(am__objects_435) $(am__objects_436) \
- $(am__objects_437) $(am__objects_438) $(am__objects_439) \
- $(am__objects_440) $(am__objects_441) $(am__objects_442) \
- $(am__objects_443) $(am__objects_444) $(am__objects_445) \
- $(am__objects_446) $(am__objects_447) $(am__objects_448) \
- $(am__objects_449) $(am__objects_450) $(am__objects_451) \
- $(am__objects_452) $(am__objects_453) $(am__objects_454) \
- $(am__objects_455) $(am__objects_456) $(am__objects_457) \
- $(am__objects_458) $(am__objects_459) $(am__objects_460) \
- $(am__objects_461) $(am__objects_462) $(am__objects_463) \
- $(am__objects_464) $(am__objects_465) $(am__objects_466) \
- $(am__objects_467) $(am__objects_468) $(am__objects_469) \
- $(am__objects_470) $(am__objects_471) $(am__objects_472) \
- $(am__objects_473) $(am__objects_474) $(am__objects_475) \
- $(am__objects_476) $(am__objects_477) $(am__objects_478) \
- $(am__objects_479) $(am__objects_480) $(am__objects_481) \
- $(am__objects_482) $(am__objects_483) $(am__objects_484) \
- $(am__objects_485) $(am__objects_486) $(am__objects_487) \
- $(am__objects_488) $(am__objects_489) $(am__objects_490) \
- $(am__objects_491) $(am__objects_492) $(am__objects_493) \
- $(am__objects_494) $(am__objects_495) $(am__objects_496) \
- $(am__objects_497) $(am__objects_498) $(am__objects_499) \
- $(am__objects_500) $(am__objects_501) $(am__objects_502) \
- $(am__objects_503) $(am__objects_504) $(am__objects_505) \
- $(am__objects_506) $(am__objects_507) $(am__objects_508) \
- $(am__objects_509) $(am__objects_510) $(am__objects_511) \
- $(am__objects_512) $(am__objects_513) $(am__objects_514) \
- $(am__objects_515) $(am__objects_516) $(am__objects_517) \
- $(am__objects_518) $(am__objects_519) $(am__objects_520) \
- $(am__objects_521) uniwbrk/libunistring_la-wbrktable.lo \
- $(am__objects_522) $(am__objects_523) $(am__objects_524) \
- $(am__objects_525) $(am__objects_526) $(am__objects_527) \
- $(am__objects_528) $(am__objects_529) $(am__objects_530) \
- $(am__objects_531) $(am__objects_532) $(am__objects_533) \
- libunistring_la-wctype-h.lo $(am__objects_534) \
- $(am__objects_535) $(am__objects_536) $(am__objects_537) \
- $(am__objects_538) libunistring_la-xsize.lo \
- libunistring_la-version.lo $(am__objects_539)
+ $(am__objects_390) $(am__objects_391) $(am__objects_392) \
+ $(am__objects_393) $(am__objects_394) $(am__objects_395) \
+ $(am__objects_396) $(am__objects_397) $(am__objects_398) \
+ $(am__objects_399) $(am__objects_400) $(am__objects_401) \
+ $(am__objects_402) $(am__objects_403) $(am__objects_404) \
+ $(am__objects_405) $(am__objects_406) $(am__objects_407) \
+ $(am__objects_408) $(am__objects_409) $(am__objects_410) \
+ $(am__objects_411) $(am__objects_412) $(am__objects_413) \
+ $(am__objects_414) $(am__objects_415) $(am__objects_416) \
+ $(am__objects_417) $(am__objects_418) $(am__objects_419) \
+ $(am__objects_420) $(am__objects_421) $(am__objects_422) \
+ $(am__objects_423) $(am__objects_424) $(am__objects_425) \
+ $(am__objects_426) $(am__objects_427) $(am__objects_428) \
+ $(am__objects_429) $(am__objects_430) $(am__objects_431) \
+ $(am__objects_432) $(am__objects_433) $(am__objects_434) \
+ $(am__objects_435) $(am__objects_436) $(am__objects_437) \
+ $(am__objects_438) $(am__objects_439) $(am__objects_440) \
+ $(am__objects_441) $(am__objects_442) $(am__objects_443) \
+ $(am__objects_444) $(am__objects_445) $(am__objects_446) \
+ $(am__objects_447) $(am__objects_448) $(am__objects_449) \
+ $(am__objects_450) $(am__objects_451) $(am__objects_452) \
+ $(am__objects_453) $(am__objects_454) $(am__objects_455) \
+ $(am__objects_456) $(am__objects_457) $(am__objects_458) \
+ $(am__objects_459) $(am__objects_460) $(am__objects_461) \
+ $(am__objects_462) $(am__objects_463) $(am__objects_464) \
+ $(am__objects_465) $(am__objects_466) $(am__objects_467) \
+ $(am__objects_468) $(am__objects_469) $(am__objects_470) \
+ $(am__objects_471) $(am__objects_472) $(am__objects_473) \
+ $(am__objects_474) $(am__objects_475) $(am__objects_476) \
+ $(am__objects_477) $(am__objects_478) $(am__objects_479) \
+ $(am__objects_480) $(am__objects_481) $(am__objects_482) \
+ $(am__objects_483) $(am__objects_484) $(am__objects_485) \
+ $(am__objects_486) $(am__objects_487) $(am__objects_488) \
+ $(am__objects_489) $(am__objects_490) $(am__objects_491) \
+ $(am__objects_492) $(am__objects_493) $(am__objects_494) \
+ $(am__objects_495) $(am__objects_496) $(am__objects_497) \
+ $(am__objects_498) $(am__objects_499) $(am__objects_500) \
+ $(am__objects_501) $(am__objects_502) $(am__objects_503) \
+ $(am__objects_504) $(am__objects_505) $(am__objects_506) \
+ $(am__objects_507) $(am__objects_508) $(am__objects_509) \
+ $(am__objects_510) $(am__objects_511) $(am__objects_512) \
+ $(am__objects_513) $(am__objects_514) $(am__objects_515) \
+ $(am__objects_516) $(am__objects_517) $(am__objects_518) \
+ $(am__objects_519) $(am__objects_520) $(am__objects_521) \
+ $(am__objects_522) uniwbrk/libunistring_la-wbrktable.lo \
+ $(am__objects_523) $(am__objects_524) $(am__objects_525) \
+ $(am__objects_526) $(am__objects_527) $(am__objects_528) \
+ $(am__objects_529) $(am__objects_530) $(am__objects_531) \
+ $(am__objects_532) $(am__objects_533) $(am__objects_534) \
+ libunistring_la-wctype-h.lo $(am__objects_535) \
+ $(am__objects_536) $(am__objects_537) $(am__objects_538) \
+ $(am__objects_539) libunistring_la-xsize.lo \
+ libunistring_la-version.lo $(am__objects_540)
libunistring_la_OBJECTS = $(am_libunistring_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -2687,13 +2691,16 @@ GL_GNULIB_ISBLANK_L = @GL_GNULIB_ISBLANK_L@
GL_GNULIB_ISCNTRL_L = @GL_GNULIB_ISCNTRL_L@
GL_GNULIB_ISDIGIT_L = @GL_GNULIB_ISDIGIT_L@
GL_GNULIB_ISFINITE = @GL_GNULIB_ISFINITE@
+GL_GNULIB_ISFINITE_NO_CXX = @GL_GNULIB_ISFINITE_NO_CXX@
GL_GNULIB_ISGRAPH_L = @GL_GNULIB_ISGRAPH_L@
GL_GNULIB_ISINF = @GL_GNULIB_ISINF@
+GL_GNULIB_ISINF_NO_CXX = @GL_GNULIB_ISINF_NO_CXX@
GL_GNULIB_ISLOWER_L = @GL_GNULIB_ISLOWER_L@
GL_GNULIB_ISNAN = @GL_GNULIB_ISNAN@
GL_GNULIB_ISNAND = @GL_GNULIB_ISNAND@
GL_GNULIB_ISNANF = @GL_GNULIB_ISNANF@
GL_GNULIB_ISNANL = @GL_GNULIB_ISNANL@
+GL_GNULIB_ISNAN_NO_CXX = @GL_GNULIB_ISNAN_NO_CXX@
GL_GNULIB_ISPRINT_L = @GL_GNULIB_ISPRINT_L@
GL_GNULIB_ISPUNCT_L = @GL_GNULIB_ISPUNCT_L@
GL_GNULIB_ISSPACE_L = @GL_GNULIB_ISSPACE_L@
@@ -2841,6 +2848,7 @@ GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@
GL_GNULIB_OBSTACK_ZPRINTF = @GL_GNULIB_OBSTACK_ZPRINTF@
GL_GNULIB_OPEN = @GL_GNULIB_OPEN@
GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@
+GL_GNULIB_OPENAT2 = @GL_GNULIB_OPENAT2@
GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@
GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@
GL_GNULIB_PERROR = @GL_GNULIB_PERROR@
@@ -2922,6 +2930,7 @@ GL_GNULIB_SIGACTION = @GL_GNULIB_SIGACTION@
GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@
GL_GNULIB_SIGNAL_H_SIGPIPE = @GL_GNULIB_SIGNAL_H_SIGPIPE@
GL_GNULIB_SIGNBIT = @GL_GNULIB_SIGNBIT@
+GL_GNULIB_SIGNBIT_NO_CXX = @GL_GNULIB_SIGNBIT_NO_CXX@
GL_GNULIB_SIGPROCMASK = @GL_GNULIB_SIGPROCMASK@
GL_GNULIB_SINF = @GL_GNULIB_SINF@
GL_GNULIB_SINHF = @GL_GNULIB_SINHF@
@@ -2949,8 +2958,10 @@ GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@
GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@
GL_GNULIB_STRINGEQ = @GL_GNULIB_STRINGEQ@
GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@
+GL_GNULIB_STRNCPY = @GL_GNULIB_STRNCPY@
GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@
GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@
+GL_GNULIB_STRNUL = @GL_GNULIB_STRNUL@
GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@
GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@
GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@
@@ -3465,6 +3476,7 @@ HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
HAVE_NEWLOCALE = @HAVE_NEWLOCALE@
HAVE_OFF64_T = @HAVE_OFF64_T@
HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENAT2 = @HAVE_OPENAT2@
HAVE_OS_H = @HAVE_OS_H@
HAVE_PCLOSE = @HAVE_PCLOSE@
HAVE_PIPE = @HAVE_PIPE@
@@ -3622,6 +3634,7 @@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@
HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_PROCESS_H = @HAVE_SYS_PROCESS_H@
HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@
HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
@@ -3722,6 +3735,7 @@ LC_NUMERIC_IMPLEMENTED = @LC_NUMERIC_IMPLEMENTED@
LC_TIME_IMPLEMENTED = @LC_TIME_IMPLEMENTED@
LD = @LD@
LDFLAGS = @LDFLAGS@
+LIBDL = @LIBDL@
LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
LIBMULTITHREAD = @LIBMULTITHREAD@
@@ -4167,6 +4181,7 @@ REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
REPLACE_SIGNBIT_USING_BUILTINS = @REPLACE_SIGNBIT_USING_BUILTINS@
REPLACE_SINF = @REPLACE_SINF@
REPLACE_SINHF = @REPLACE_SINHF@
+REPLACE_SINL = @REPLACE_SINL@
REPLACE_SLEEP = @REPLACE_SLEEP@
REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
REPLACE_SPRINTF = @REPLACE_SPRINTF@
@@ -4186,6 +4201,7 @@ REPLACE_STRERROR_L = @REPLACE_STRERROR_L@
REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
REPLACE_STRFTIME = @REPLACE_STRFTIME@
REPLACE_STRNCAT = @REPLACE_STRNCAT@
+REPLACE_STRNCPY = @REPLACE_STRNCPY@
REPLACE_STRNDUP = @REPLACE_STRNDUP@
REPLACE_STRNLEN = @REPLACE_STRNLEN@
REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
@@ -4393,12 +4409,13 @@ EXTRA_DIST = alloca.in.h amemxfrm.h array-mergesort.h assert.in.h \
setlocale-fixes.h setlocale_null.h windows-initguard.h \
setlocale_null.h float+.h _Noreturn.h arg-nonnull.h c++defs.h \
warn-on-use.h intprops-internal.h stdckdint.in.h stddef.in.h \
- stdint.in.h stdlib.in.h streq.h iconveh.h string.in.h strstr.c \
- str-two-way.h strstr.c sys_types.in.h thread-optim.h time.in.h \
- uchar.in.h unicase.in.h unicase/cased.h unicase/caseprop.h \
- unictype/bitmap.h unicase/caseprop.h unicase/ignorable.h \
- unictype/bitmap.h unicase/locale-languages.h \
- unicase/locale-languages.gperf unicase/special-casing-table.h \
+ stdint.in.h stdlib.in.h streq-opt.h iconveh.h string.in.h \
+ strstr.c str-two-way.h strstr.c sys_types.in.h thread-optim.h \
+ time.in.h uchar.in.h unicase.in.h unicase/cased.h \
+ unicase/caseprop.h unictype/bitmap.h unicase/caseprop.h \
+ unicase/ignorable.h unictype/bitmap.h \
+ unicase/locale-languages.h unicase/locale-languages.gperf \
+ unicase/special-casing-table.h \
unicase/special-casing-table.gperf unicase/special-casing.in.h \
unicase/casefold.h unicase/simple-mapping.h \
unicase/tocasefold.h unicase/simple-mapping.h \
@@ -4718,7 +4735,7 @@ MOSTLYCLEANFILES = core *.stackdump core *.stackdump alloca.h \
wchar.h wchar.h-t1 wchar.h-t2 wchar.h-t3 wctype.h wctype.h-t \
unistring/stdint.h-t unistring/localcharset.h-t \
unistring/iconveh.h-t libunistring.sym-t1 libunistring.sym-t2 \
- config.h config.h-t $(am__append_541)
+ config.h config.h-t $(am__append_542)
MOSTLYCLEANDIRS = sys
CLEANFILES = unistring/stdint.h unistring/localcharset.h \
unistring/iconveh.h
@@ -4782,28 +4799,28 @@ libunistring_la_SOURCES = amemxfrm.c c-ctype.h c-ctype.c \
$(am__append_21) setlocale_null.c $(am__append_22) \
setlocale_null-unlocked.c $(am__append_23) size_max.h stdlib.c \
striconveh.h striconveh.c striconveha.h striconveha.c string.c \
- $(am__append_24) glthread/threadlib.c unicase/cased.c \
- $(am__append_25) $(am__append_26) unicase/ignorable.c \
- $(am__append_27) unicase/special-casing.c unicase/tocasefold.c \
- $(am__append_28) $(am__append_29) $(am__append_30) \
+ $(am__append_24) $(am__append_25) glthread/threadlib.c \
+ unicase/cased.c $(am__append_26) $(am__append_27) \
+ unicase/ignorable.c $(am__append_28) unicase/special-casing.c \
+ unicase/tocasefold.c $(am__append_29) $(am__append_30) \
$(am__append_31) $(am__append_32) $(am__append_33) \
- unicase/u16-casemap.c $(am__append_34) $(am__append_35) \
+ $(am__append_34) unicase/u16-casemap.c $(am__append_35) \
$(am__append_36) $(am__append_37) $(am__append_38) \
- $(am__append_39) $(am__append_40) unicase/u16-is-invariant.c \
- $(am__append_41) $(am__append_42) $(am__append_43) \
+ $(am__append_39) $(am__append_40) $(am__append_41) \
+ unicase/u16-is-invariant.c $(am__append_42) $(am__append_43) \
$(am__append_44) $(am__append_45) $(am__append_46) \
$(am__append_47) $(am__append_48) $(am__append_49) \
- $(am__append_50) $(am__append_51) unicase/u32-casemap.c \
- $(am__append_52) $(am__append_53) $(am__append_54) \
+ $(am__append_50) $(am__append_51) $(am__append_52) \
+ unicase/u32-casemap.c $(am__append_53) $(am__append_54) \
$(am__append_55) $(am__append_56) $(am__append_57) \
- $(am__append_58) unicase/u32-is-invariant.c $(am__append_59) \
+ $(am__append_58) $(am__append_59) unicase/u32-is-invariant.c \
$(am__append_60) $(am__append_61) $(am__append_62) \
$(am__append_63) $(am__append_64) $(am__append_65) \
$(am__append_66) $(am__append_67) $(am__append_68) \
- $(am__append_69) unicase/u8-casemap.c $(am__append_70) \
+ $(am__append_69) $(am__append_70) unicase/u8-casemap.c \
$(am__append_71) $(am__append_72) $(am__append_73) \
$(am__append_74) $(am__append_75) $(am__append_76) \
- unicase/u8-is-invariant.c $(am__append_77) $(am__append_78) \
+ $(am__append_77) unicase/u8-is-invariant.c $(am__append_78) \
$(am__append_79) $(am__append_80) $(am__append_81) \
$(am__append_82) $(am__append_83) $(am__append_84) \
$(am__append_85) $(am__append_86) $(am__append_87) \
@@ -4829,8 +4846,8 @@ libunistring_la_SOURCES = amemxfrm.c c-ctype.h c-ctype.c \
$(am__append_145) $(am__append_146) $(am__append_147) \
$(am__append_148) $(am__append_149) $(am__append_150) \
$(am__append_151) $(am__append_152) $(am__append_153) \
- $(am__append_154) $(am__append_155) unictype/categ_none.c \
- $(am__append_156) $(am__append_157) $(am__append_158) \
+ $(am__append_154) $(am__append_155) $(am__append_156) \
+ unictype/categ_none.c $(am__append_157) $(am__append_158) \
$(am__append_159) $(am__append_160) $(am__append_161) \
$(am__append_162) $(am__append_163) $(am__append_164) \
$(am__append_165) $(am__append_166) $(am__append_167) \
@@ -4880,91 +4897,91 @@ libunistring_la_SOURCES = amemxfrm.c c-ctype.h c-ctype.c \
$(am__append_297) $(am__append_298) $(am__append_299) \
$(am__append_300) $(am__append_301) $(am__append_302) \
$(am__append_303) $(am__append_304) $(am__append_305) \
- $(am__append_306) unilbrk/lbrktables.c $(am__append_307) \
+ $(am__append_306) $(am__append_307) unilbrk/lbrktables.c \
$(am__append_308) $(am__append_309) $(am__append_310) \
- $(am__append_311) $(am__append_312) unilbrk/ulc-common.c \
- $(am__append_313) $(am__append_314) $(am__append_315) \
- $(am__append_316) $(am__append_317) \
- uninorm/compat-decomposition.c $(am__append_318) \
- uninorm/decompose-internal.c $(am__append_319) \
- $(am__append_320) uninorm/decomposition-table.c \
- $(am__append_321) $(am__append_322) $(am__append_323) \
- $(am__append_324) $(am__append_325) $(am__append_326) \
- $(am__append_327) $(am__append_328) $(am__append_329) \
- $(am__append_330) $(am__append_331) $(am__append_332) \
- $(am__append_333) $(am__append_334) $(am__append_335) \
- $(am__append_336) $(am__append_337) unistd.c \
- unistdio/u-printf-args.c $(am__append_338) $(am__append_339) \
- unistdio/u16-printf-parse.c $(am__append_340) \
- $(am__append_341) $(am__append_342) $(am__append_343) \
- $(am__append_344) $(am__append_345) $(am__append_346) \
- $(am__append_347) $(am__append_348) $(am__append_349) \
- $(am__append_350) $(am__append_351) $(am__append_352) \
- $(am__append_353) $(am__append_354) $(am__append_355) \
- unistdio/u32-printf-parse.c $(am__append_356) \
- $(am__append_357) $(am__append_358) $(am__append_359) \
- $(am__append_360) $(am__append_361) $(am__append_362) \
- $(am__append_363) $(am__append_364) $(am__append_365) \
- $(am__append_366) $(am__append_367) $(am__append_368) \
- $(am__append_369) $(am__append_370) $(am__append_371) \
- unistdio/u8-printf-parse.c $(am__append_372) $(am__append_373) \
- $(am__append_374) $(am__append_375) $(am__append_376) \
- $(am__append_377) $(am__append_378) $(am__append_379) \
- $(am__append_380) $(am__append_381) $(am__append_382) \
- $(am__append_383) $(am__append_384) $(am__append_385) \
- $(am__append_386) $(am__append_387) $(am__append_388) \
- unistdio/ulc-printf-parse.c $(am__append_389) \
- $(am__append_390) $(am__append_391) $(am__append_392) \
- $(am__append_393) $(am__append_394) $(am__append_395) \
- $(am__append_396) $(am__append_397) $(am__append_398) \
- $(am__append_399) $(am__append_400) $(am__append_401) \
- $(am__append_402) $(am__append_403) $(am__append_404) \
- $(am__append_405) $(am__append_406) $(am__append_407) \
- $(am__append_408) $(am__append_409) $(am__append_410) \
- $(am__append_411) $(am__append_412) $(am__append_413) \
- $(am__append_414) $(am__append_415) $(am__append_416) \
- $(am__append_417) $(am__append_418) $(am__append_419) \
- $(am__append_420) $(am__append_421) $(am__append_422) \
- $(am__append_423) $(am__append_424) $(am__append_425) \
- $(am__append_426) $(am__append_427) $(am__append_428) \
- $(am__append_429) $(am__append_430) $(am__append_431) \
- $(am__append_432) $(am__append_433) $(am__append_434) \
- $(am__append_435) $(am__append_436) $(am__append_437) \
- $(am__append_438) $(am__append_439) $(am__append_440) \
- $(am__append_441) $(am__append_442) $(am__append_443) \
- $(am__append_444) $(am__append_445) $(am__append_446) \
- $(am__append_447) $(am__append_448) $(am__append_449) \
- $(am__append_450) $(am__append_451) $(am__append_452) \
- $(am__append_453) $(am__append_454) $(am__append_455) \
- $(am__append_456) $(am__append_457) $(am__append_458) \
- $(am__append_459) $(am__append_460) $(am__append_461) \
- $(am__append_462) $(am__append_463) $(am__append_464) \
- $(am__append_465) $(am__append_466) $(am__append_467) \
- $(am__append_468) $(am__append_469) $(am__append_470) \
- $(am__append_471) $(am__append_472) $(am__append_473) \
- $(am__append_474) $(am__append_475) $(am__append_476) \
- $(am__append_477) $(am__append_478) $(am__append_479) \
- $(am__append_480) $(am__append_481) $(am__append_482) \
- $(am__append_483) $(am__append_484) $(am__append_485) \
- $(am__append_486) $(am__append_487) $(am__append_488) \
- $(am__append_489) $(am__append_490) $(am__append_491) \
- $(am__append_492) $(am__append_493) $(am__append_494) \
- $(am__append_495) $(am__append_496) $(am__append_497) \
- $(am__append_498) $(am__append_499) $(am__append_500) \
- $(am__append_501) $(am__append_502) $(am__append_503) \
- $(am__append_504) $(am__append_505) $(am__append_506) \
- $(am__append_507) $(am__append_508) $(am__append_509) \
- $(am__append_510) $(am__append_511) $(am__append_512) \
- $(am__append_513) $(am__append_514) $(am__append_515) \
- $(am__append_516) $(am__append_517) $(am__append_518) \
- $(am__append_519) $(am__append_520) $(am__append_521) \
- uniwbrk/wbrktable.c $(am__append_522) $(am__append_523) \
- $(am__append_524) $(am__append_525) $(am__append_526) \
- $(am__append_527) $(am__append_528) $(am__append_529) \
- $(am__append_530) $(am__append_531) $(am__append_532) \
- $(am__append_533) wctype-h.c $(am__append_534) \
- $(am__append_535) $(am__append_536) $(am__append_537) \
- $(am__append_538) xsize.h xsize.c version.c $(am__append_539)
+ $(am__append_311) $(am__append_312) $(am__append_313) \
+ unilbrk/ulc-common.c $(am__append_314) $(am__append_315) \
+ $(am__append_316) $(am__append_317) $(am__append_318) \
+ uninorm/compat-decomposition.c $(am__append_319) \
+ uninorm/decompose-internal.c $(am__append_320) \
+ $(am__append_321) uninorm/decomposition-table.c \
+ $(am__append_322) $(am__append_323) $(am__append_324) \
+ $(am__append_325) $(am__append_326) $(am__append_327) \
+ $(am__append_328) $(am__append_329) $(am__append_330) \
+ $(am__append_331) $(am__append_332) $(am__append_333) \
+ $(am__append_334) $(am__append_335) $(am__append_336) \
+ $(am__append_337) $(am__append_338) unistd.c \
+ unistdio/u-printf-args.c $(am__append_339) $(am__append_340) \
+ unistdio/u16-printf-parse.c $(am__append_341) \
+ $(am__append_342) $(am__append_343) $(am__append_344) \
+ $(am__append_345) $(am__append_346) $(am__append_347) \
+ $(am__append_348) $(am__append_349) $(am__append_350) \
+ $(am__append_351) $(am__append_352) $(am__append_353) \
+ $(am__append_354) $(am__append_355) $(am__append_356) \
+ unistdio/u32-printf-parse.c $(am__append_357) \
+ $(am__append_358) $(am__append_359) $(am__append_360) \
+ $(am__append_361) $(am__append_362) $(am__append_363) \
+ $(am__append_364) $(am__append_365) $(am__append_366) \
+ $(am__append_367) $(am__append_368) $(am__append_369) \
+ $(am__append_370) $(am__append_371) $(am__append_372) \
+ unistdio/u8-printf-parse.c $(am__append_373) $(am__append_374) \
+ $(am__append_375) $(am__append_376) $(am__append_377) \
+ $(am__append_378) $(am__append_379) $(am__append_380) \
+ $(am__append_381) $(am__append_382) $(am__append_383) \
+ $(am__append_384) $(am__append_385) $(am__append_386) \
+ $(am__append_387) $(am__append_388) $(am__append_389) \
+ unistdio/ulc-printf-parse.c $(am__append_390) \
+ $(am__append_391) $(am__append_392) $(am__append_393) \
+ $(am__append_394) $(am__append_395) $(am__append_396) \
+ $(am__append_397) $(am__append_398) $(am__append_399) \
+ $(am__append_400) $(am__append_401) $(am__append_402) \
+ $(am__append_403) $(am__append_404) $(am__append_405) \
+ $(am__append_406) $(am__append_407) $(am__append_408) \
+ $(am__append_409) $(am__append_410) $(am__append_411) \
+ $(am__append_412) $(am__append_413) $(am__append_414) \
+ $(am__append_415) $(am__append_416) $(am__append_417) \
+ $(am__append_418) $(am__append_419) $(am__append_420) \
+ $(am__append_421) $(am__append_422) $(am__append_423) \
+ $(am__append_424) $(am__append_425) $(am__append_426) \
+ $(am__append_427) $(am__append_428) $(am__append_429) \
+ $(am__append_430) $(am__append_431) $(am__append_432) \
+ $(am__append_433) $(am__append_434) $(am__append_435) \
+ $(am__append_436) $(am__append_437) $(am__append_438) \
+ $(am__append_439) $(am__append_440) $(am__append_441) \
+ $(am__append_442) $(am__append_443) $(am__append_444) \
+ $(am__append_445) $(am__append_446) $(am__append_447) \
+ $(am__append_448) $(am__append_449) $(am__append_450) \
+ $(am__append_451) $(am__append_452) $(am__append_453) \
+ $(am__append_454) $(am__append_455) $(am__append_456) \
+ $(am__append_457) $(am__append_458) $(am__append_459) \
+ $(am__append_460) $(am__append_461) $(am__append_462) \
+ $(am__append_463) $(am__append_464) $(am__append_465) \
+ $(am__append_466) $(am__append_467) $(am__append_468) \
+ $(am__append_469) $(am__append_470) $(am__append_471) \
+ $(am__append_472) $(am__append_473) $(am__append_474) \
+ $(am__append_475) $(am__append_476) $(am__append_477) \
+ $(am__append_478) $(am__append_479) $(am__append_480) \
+ $(am__append_481) $(am__append_482) $(am__append_483) \
+ $(am__append_484) $(am__append_485) $(am__append_486) \
+ $(am__append_487) $(am__append_488) $(am__append_489) \
+ $(am__append_490) $(am__append_491) $(am__append_492) \
+ $(am__append_493) $(am__append_494) $(am__append_495) \
+ $(am__append_496) $(am__append_497) $(am__append_498) \
+ $(am__append_499) $(am__append_500) $(am__append_501) \
+ $(am__append_502) $(am__append_503) $(am__append_504) \
+ $(am__append_505) $(am__append_506) $(am__append_507) \
+ $(am__append_508) $(am__append_509) $(am__append_510) \
+ $(am__append_511) $(am__append_512) $(am__append_513) \
+ $(am__append_514) $(am__append_515) $(am__append_516) \
+ $(am__append_517) $(am__append_518) $(am__append_519) \
+ $(am__append_520) $(am__append_521) $(am__append_522) \
+ uniwbrk/wbrktable.c $(am__append_523) $(am__append_524) \
+ $(am__append_525) $(am__append_526) $(am__append_527) \
+ $(am__append_528) $(am__append_529) $(am__append_530) \
+ $(am__append_531) $(am__append_532) $(am__append_533) \
+ $(am__append_534) wctype-h.c $(am__append_535) \
+ $(am__append_536) $(am__append_537) $(am__append_538) \
+ $(am__append_539) xsize.h xsize.c version.c $(am__append_540)
libunistring_la_CFLAGS = $(AM_CFLAGS) $(GL_CFLAG_GNULIB_WARNINGS) $(GL_CFLAG_ALLOW_WARNINGS)
libunistring_la_LIBADD = $(gl_libunistring_LTLIBOBJS) $(WOE32_LIBADD)
libunistring_la_DEPENDENCIES = $(gl_libunistring_LTLIBOBJS) \
@@ -4982,7 +4999,7 @@ libunistring_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined \
$(GETLOCALENAME_L_LIB) $(HARD_LOCALE_LIB) $(LIBPTHREAD) \
$(LIBTHREAD) $(LTLIBC32CONV) $(LTLIBICONV) $(LTLIBUNISTRING) \
$(MBRTOWC_LIB) $(PTHREAD_ONCE_LIB) $(SETLOCALE_NULL_LIB) \
- @INTL_MACOSX_LIBS@ $(LTLIBICONV) $(am__append_540) \
+ @INTL_MACOSX_LIBS@ $(LTLIBICONV) $(am__append_541) \
-version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) -rpath \
$(libdir)
@@ -6100,6 +6117,9 @@ libunistring_la-string.lo: string.c
libunistring_la-strncat.lo: strncat.c
$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libunistring_la_CFLAGS) $(CFLAGS) -c -o libunistring_la-strncat.lo `test -f 'strncat.c' || echo '$(srcdir)/'`strncat.c
+libunistring_la-strncpy.lo: strncpy.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libunistring_la_CFLAGS) $(CFLAGS) -c -o libunistring_la-strncpy.lo `test -f 'strncpy.c' || echo '$(srcdir)/'`strncpy.c
+
glthread/libunistring_la-threadlib.lo: glthread/threadlib.c
$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libunistring_la_CFLAGS) $(CFLAGS) -c -o glthread/libunistring_la-threadlib.lo `test -f 'glthread/threadlib.c' || echo '$(srcdir)/'`glthread/threadlib.c
@@ -8176,10 +8196,12 @@ fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
-e 's/@''GNULIB_NONBLOCKING''@/$(GL_GNULIB_NONBLOCKING)/g' \
-e 's/@''GNULIB_OPEN''@/$(GL_GNULIB_OPEN)/g' \
-e 's/@''GNULIB_OPENAT''@/$(GL_GNULIB_OPENAT)/g' \
+ -e 's/@''GNULIB_OPENAT2''@/$(GL_GNULIB_OPENAT2)/g' \
-e 's/@''GNULIB_MDA_CREAT''@/$(GL_GNULIB_MDA_CREAT)/g' \
-e 's/@''GNULIB_MDA_OPEN''@/$(GL_GNULIB_MDA_OPEN)/g' \
-e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \
-e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \
+ -e 's|@''HAVE_OPENAT2''@|$(HAVE_OPENAT2)|g' \
-e 's|@''REPLACE_CREAT''@|$(REPLACE_CREAT)|g' \
-e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \
-e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \
@@ -8401,8 +8423,11 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
-e 's/@''GNULIB_ILOGBF''@/$(GL_GNULIB_ILOGBF)/g' \
-e 's/@''GNULIB_ILOGBL''@/$(GL_GNULIB_ILOGBL)/g' \
-e 's/@''GNULIB_ISFINITE''@/$(GL_GNULIB_ISFINITE)/g' \
+ -e 's/@''GNULIB_ISFINITE_NO_CXX''@/$(GL_GNULIB_ISFINITE_NO_CXX)/g' \
-e 's/@''GNULIB_ISINF''@/$(GL_GNULIB_ISINF)/g' \
+ -e 's/@''GNULIB_ISINF_NO_CXX''@/$(GL_GNULIB_ISINF_NO_CXX)/g' \
-e 's/@''GNULIB_ISNAN''@/$(GL_GNULIB_ISNAN)/g' \
+ -e 's/@''GNULIB_ISNAN_NO_CXX''@/$(GL_GNULIB_ISNAN_NO_CXX)/g' \
-e 's/@''GNULIB_ISNANF''@/$(GL_GNULIB_ISNANF)/g' \
-e 's/@''GNULIB_ISNAND''@/$(GL_GNULIB_ISNAND)/g' \
-e 's/@''GNULIB_ISNANL''@/$(GL_GNULIB_ISNANL)/g' \
@@ -8447,6 +8472,7 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
-e 's/@''GNULIB_SETPAYLOADSIGF''@/$(GL_GNULIB_SETPAYLOADSIGF)/g' \
-e 's/@''GNULIB_SETPAYLOADSIGL''@/$(GL_GNULIB_SETPAYLOADSIGL)/g' \
-e 's/@''GNULIB_SIGNBIT''@/$(GL_GNULIB_SIGNBIT)/g' \
+ -e 's/@''GNULIB_SIGNBIT_NO_CXX''@/$(GL_GNULIB_SIGNBIT_NO_CXX)/g' \
-e 's/@''GNULIB_SINF''@/$(GL_GNULIB_SINF)/g' \
-e 's/@''GNULIB_SINL''@/$(GL_GNULIB_SINL)/g' \
-e 's/@''GNULIB_SINHF''@/$(GL_GNULIB_SINHF)/g' \
@@ -8666,6 +8692,7 @@ math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
-e 's|@''REPLACE_SIGNBIT_USING_BUILTINS''@|$(REPLACE_SIGNBIT_USING_BUILTINS)|g' \
-e 's|@''REPLACE_SINF''@|$(REPLACE_SINF)|g' \
-e 's|@''REPLACE_SINHF''@|$(REPLACE_SINHF)|g' \
+ -e 's|@''REPLACE_SINL''@|$(REPLACE_SINL)|g' \
-e 's|@''REPLACE_SQRTF''@|$(REPLACE_SQRTF)|g' \
-e 's|@''REPLACE_SQRTL''@|$(REPLACE_SQRTL)|g' \
-e 's|@''REPLACE_TANF''@|$(REPLACE_TANF)|g' \
@@ -9025,6 +9052,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
-e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \
-e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \
-e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \
+ -e 's|@''HAVE_SYS_PROCESS_H''@|$(HAVE_SYS_PROCESS_H)|g' \
-e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \
-e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \
< $@-t1 > $@-t2
@@ -9120,8 +9148,10 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
-e 's/@''GNULIB_STRDUP''@/$(GL_GNULIB_STRDUP)/g' \
-e 's/@''GNULIB_STRINGEQ''@/$(GL_GNULIB_STRINGEQ)/g' \
-e 's/@''GNULIB_STRNCAT''@/$(GL_GNULIB_STRNCAT)/g' \
+ -e 's/@''GNULIB_STRNCPY''@/$(GL_GNULIB_STRNCPY)/g' \
-e 's/@''GNULIB_STRNDUP''@/$(GL_GNULIB_STRNDUP)/g' \
-e 's/@''GNULIB_STRNLEN''@/$(GL_GNULIB_STRNLEN)/g' \
+ -e 's/@''GNULIB_STRNUL''@/$(GL_GNULIB_STRNUL)/g' \
-e 's/@''GNULIB_STRPBRK''@/$(GL_GNULIB_STRPBRK)/g' \
-e 's/@''GNULIB_STRSEP''@/$(GL_GNULIB_STRSEP)/g' \
-e 's/@''GNULIB_STRSTR''@/$(GL_GNULIB_STRSTR)/g' \
@@ -9181,6 +9211,7 @@ string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
-e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \
-e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
-e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \
+ -e 's|@''REPLACE_STRNCPY''@|$(REPLACE_STRNCPY)|g' \
-e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \
-e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \
-e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
@@ -10057,6 +10088,9 @@ unistring/stdint.h : $(STDINT_H) stdint.mini.h
rm -f $@-t $@
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
echo '#include <stddef.h>'; \
+ echo '#if __cplusplus >= 201103'; \
+ echo '#include <cstdint>'; \
+ echo '#else'; \
echo '#if __GLIBC__ >= 2'; \
echo '#include <stdint.h>'; \
echo '#else'; \
@@ -10087,6 +10121,7 @@ unistring/stdint.h : $(STDINT_H) stdint.mini.h
-e 's/@''HAVE_SYS_BITYPES_H''@/0/g' \
< $(srcdir)/stdint.mini.h; \
echo '#endif'; \
+ echo '#endif'; \
} > $@-t
mv $@-t $@
unistring/localcharset.h : localcharset.h
diff --git a/lib/_Noreturn.h b/lib/_Noreturn.h
index d42f15ee..0bab051e 100644
--- a/lib/_Noreturn.h
+++ b/lib/_Noreturn.h
@@ -1,5 +1,5 @@
/* A C macro for declaring that a function does not return.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
diff --git a/lib/alloca.in.h b/lib/alloca.in.h
index afb00caf..bb2cb881 100644
--- a/lib/alloca.in.h
+++ b/lib/alloca.in.h
@@ -1,6 +1,6 @@
/* Memory allocation on the stack.
- Copyright (C) 1995, 1999, 2001-2004, 2006-2025 Free Software Foundation,
+ Copyright (C) 1995, 1999, 2001-2004, 2006-2026 Free Software Foundation,
Inc.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/amemxfrm.c b/lib/amemxfrm.c
index 2ddff632..6402f9e3 100644
--- a/lib/amemxfrm.c
+++ b/lib/amemxfrm.c
@@ -1,5 +1,5 @@
/* Locale dependent memory area transformation for comparison.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
@@ -29,12 +29,7 @@ amemxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp)
{
/* Result accumulator. */
char *result;
- size_t length;
size_t allocated;
-
- char orig_sentinel;
-
- /* Initial memory allocation. */
if (resultbuf != NULL && *lengthp > 0)
{
result = resultbuf;
@@ -47,10 +42,10 @@ amemxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp)
if (result == NULL)
goto out_of_memory_2;
}
- length = 0;
+ size_t length = 0;
/* Add sentinel.byte. */
- orig_sentinel = s[n];
+ char orig_sentinel = s[n];
s[n] = '\0';
/* Iterate through S, transforming each NUL terminated segment.
@@ -60,16 +55,13 @@ amemxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp)
const char *p_end = s + n + 1;
const char *p;
- p = s;
- for (;;)
+ for (p = s;;)
{
/* Search next NUL byte. */
size_t l = strlen (p);
for (;;)
{
- size_t k;
-
/* A call to strxfrm costs about 20 times more than a call to
strdup of the result. Therefore it is worth to try to avoid
calling strxfrm more than once on a given string, by making
@@ -79,14 +71,13 @@ amemxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp)
if (3 * l >= allocated - length)
{
/* Grow the result buffer. */
- size_t new_allocated;
- char *new_result;
-
- new_allocated = length + 3 * l + 1;
+ size_t new_allocated = length + 3 * l + 1;
if (new_allocated < 2 * allocated)
new_allocated = 2 * allocated;
if (new_allocated < 64)
new_allocated = 64;
+
+ char *new_result;
if (result == resultbuf)
new_result = (char *) malloc (new_allocated);
else
@@ -99,20 +90,19 @@ amemxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp)
}
errno = 0;
- k = strxfrm (result + length, p, allocated - length);
+ size_t k = strxfrm (result + length, p, allocated - length);
if (errno != 0)
goto fail;
if (k >= allocated - length)
{
/* Grow the result buffer. */
- size_t new_allocated;
- char *new_result;
-
- new_allocated = length + k + 1;
+ size_t new_allocated = length + k + 1;
if (new_allocated < 2 * allocated)
new_allocated = 2 * allocated;
if (new_allocated < 64)
new_allocated = 64;
+
+ char *new_result;
if (result == resultbuf)
new_result = (char *) malloc (new_allocated);
else
diff --git a/lib/amemxfrm.h b/lib/amemxfrm.h
index 9c88693c..5177a333 100644
--- a/lib/amemxfrm.h
+++ b/lib/amemxfrm.h
@@ -1,5 +1,5 @@
/* Locale dependent memory area transformation for comparison.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/arg-nonnull.h b/lib/arg-nonnull.h
index 747bb413..d370d139 100644
--- a/lib/arg-nonnull.h
+++ b/lib/arg-nonnull.h
@@ -1,5 +1,5 @@
/* A C macro for declaring that specific arguments must not be NULL.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
diff --git a/lib/array-mergesort.h b/lib/array-mergesort.h
index 4b1ae6d7..468b7a77 100644
--- a/lib/array-mergesort.h
+++ b/lib/array-mergesort.h
@@ -1,5 +1,5 @@
/* Stable-sorting of an array using mergesort.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/assert.in.h b/lib/assert.in.h
index 87339abc..8a564670 100644
--- a/lib/assert.in.h
+++ b/lib/assert.in.h
@@ -1,5 +1,5 @@
/* Substitute for and wrapper around <assert.h>
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/attribute.h b/lib/attribute.h
index c85412d9..c50befdf 100644
--- a/lib/attribute.h
+++ b/lib/attribute.h
@@ -1,6 +1,6 @@
/* ATTRIBUTE_* macros for using attributes in GCC and similar compilers
- Copyright 2020-2025 Free Software Foundation, Inc.
+ Copyright 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -89,7 +89,7 @@
_GL_ATTRIBUTE_NONNULL_IF_NONZERO, _GL_ATTRIBUTE_NONSTRING,
_GL_ATTRIBUTE_NOTHROW, _GL_ATTRIBUTE_PACKED, _GL_ATTRIBUTE_PURE,
_GL_ATTRIBUTE_REPRODUCIBLE, _GL_ATTRIBUTE_RETURNS_NONNULL,
- _GL_ATTRIBUTE_SENTINEL, _GL_ATTRIBUTE_UNSEQUENCED. */
+ _GL_ATTRIBUTE_SENTINEL, _GL_ATTRIBUTE_UNSEQUENCED, _GL_UNNAMED. */
#if !_GL_CONFIG_H_INCLUDED
#error "Please include config.h first."
#endif
@@ -240,62 +240,68 @@
/* Applies to: functions. */
#define ATTRIBUTE_ALWAYS_INLINE _GL_ATTRIBUTE_ALWAYS_INLINE
-/* It is OK for a compiler to move calls to the function and to omit
- calls to the function if another call has the same arguments or the
- result is not used.
- This attribute is safe for a function that neither depends on
- nor affects state, and always returns exactly once -
+/* It is OK for a compiler to move a call, or omit a duplicate call
+ and reuse a cached return value, even if the state changes between calls.
+ It is also OK to omit a call if the result is not used.
+ This attribute is safe if the function does not change observable state,
+ returns a value determined solely by its arguments' values
+ without examining state, and always returns exactly once -
e.g., does not raise an exception, call longjmp, or loop forever.
- (This attribute is stricter than ATTRIBUTE_PURE because the
- function cannot observe state. It is stricter than UNSEQUENCED
- because the function must return exactly once and cannot depend on
- state addressed by its arguments.) */
+ (This attribute is stricter than _GL_ATTRIBUTE_PURE because the
+ function cannot observe state. Unlike _GL_ATTRIBUTE_UNSEQUENCED
+ the function must return exactly once and cannot access state
+ addressed by its pointer arguments or that happens to have the same
+ value for all calls to the function, but the function is allowed to
+ return a pointer to storage that can be modified later. */
/* Applies to: functions. */
#define ATTRIBUTE_CONST _GL_ATTRIBUTE_CONST
-/* It is OK for a compiler to move calls to the function and to omit duplicate
- calls to the function with the same arguments, so long as the state
- addressed by its arguments is the same.
+/* It is OK for a compiler to move a call, or omit a duplicate call
+ and reuse a cached value returned either directly or indirectly via
+ a pointer, if the state addressed by its pointer arguments is the same;
+ however, pointer arguments cannot alias.
This attribute is safe for a function that is effectless, idempotent,
- stateless, and independent; see ISO C 23 § 6.7.12.7 for a definition of
+ stateless, and independent; see ISO C 23 § 6.7.13.8 for a definition of
these terms.
- (This attribute is stricter than REPRODUCIBLE because the function
- must be stateless and independent. It is looser than ATTRIBUTE_CONST
- because the function need not return exactly once and can depend
- on state addressed by its arguments.)
+ (This attribute is stricter than _GL_ATTRIBUTE_REPRODUCIBLE because
+ the function must be stateless and independent. Unlike
+ _GL_ATTRIBUTE_CONST the function need not return exactly once, and
+ can depend on state accessed via its pointer arguments or that
+ happens to have the same value for all calls to the function, but
+ the function cannot return a pointer to storage whose contents
+ change later.)
See also <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2956.htm> and
- <https://stackoverflow.com/questions/76847905/>.
- ATTENTION! Efforts are underway to change the meaning of this attribute.
- See <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3424.htm>. */
+ <https://stackoverflow.com/questions/76847905/>. */
/* Applies to: functions, pointer to functions, function type. */
#define UNSEQUENCED _GL_ATTRIBUTE_UNSEQUENCED
-/* It is OK for a compiler to move calls to the function and to omit
- calls to the function if another call has the same arguments or the
- result is not used, and if observable state is the same.
- This attribute is safe for a function that does not affect observable state
- and always returns exactly once.
- (This attribute is looser than ATTRIBUTE_CONST because the function
- can depend on observable state. It is stricter than REPRODUCIBLE
- because the function must return exactly once and cannot affect
- state addressed by its arguments.) */
+/* It is OK for a compiler to move a call, or omit a duplicate call
+ and reuse a cached return value, if observable state is the same.
+ It is also OK to omit a call if the return value is not used.
+ This attribute is safe if the function does not change observable state,
+ returns a value determined solely by its arguments's values
+ together with observable state, and always returns exactly once.
+ (This attribute is looser than _GL_ATTRIBUTE_CONST because the function
+ can depend on observable state.
+ Unlike _GL_ATTRIBUTE_REPRODUCIBLE the function must return exactly
+ once and cannot change state addressed by its arguments, but the
+ function can return a pointer to storage whose contents change later.) */
/* Applies to: functions. */
#define ATTRIBUTE_PURE _GL_ATTRIBUTE_PURE
-/* It is OK for a compiler to move calls to the function and to omit duplicate
- calls to the function with the same arguments, so long as the state
- addressed by its arguments is the same and is updated in time for
- the rest of the program.
- This attribute is safe for a function that is effectless and idempotent; see
- ISO C 23 § 6.7.12.7 for a definition of these terms.
- (This attribute is looser than UNSEQUENCED because the function need
- not be stateless and idempotent. It is looser than ATTRIBUTE_PURE
- because the function need not return exactly once and can affect
- state addressed by its arguments.)
+/* It is OK for a compiler to move a call, or omit a duplicate call
+ and reuse a cached value returned either directly or indirectly via
+ a pointer, if other observable state is the same;
+ however, pointer arguments cannot alias.
+ This attribute is safe for a function that is effectless and idempotent;
+ see ISO C 23 § 6.7.13.8 for a definition of these terms.
+ (This attribute is looser than _GL_ATTRIBUTE_UNSEQUENCED because
+ the function need not be stateless or independent.
+ Unlike _GL_ATTRIBUTE_PURE the function need not return exactly once
+ and can change state addressed by its pointer arguments, but the
+ function cannot return a pointer to storage whose contents change later.)
See also <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2956.htm> and
- <https://stackoverflow.com/questions/76847905/>.
- ATTENTION! Efforts are underway to change the meaning of this attribute.
- See <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3424.htm>. */
+ <https://stackoverflow.com/questions/76847905/>. */
/* Applies to: functions, pointer to functions, function type. */
#define REPRODUCIBLE _GL_ATTRIBUTE_REPRODUCIBLE
@@ -328,4 +334,18 @@
#define ATTRIBUTE_MAY_ALIAS _GL_ATTRIBUTE_MAY_ALIAS
+/* ==================== Unnamed function parameters ======================== */
+
+/* Although UNNAMED is not an attribute, it is related to MAYBE_UNUSED
+ and so is defined here for convenience. */
+
+/* UNNAMED (ID) is the "name" of an unnamed function parameter.
+ Each of the function's unnamed parameters should have a unique "name".
+ The "name" cannot be used. This ports both to C17 and earlier, which
+ lack unnamed parameters, and to C++ and later C, which have them. */
+/* Applies to:
+ - function parameters. */
+#define UNNAMED(id) _GL_UNNAMED (id)
+
+
#endif /* _GL_ATTRIBUTE_H */
diff --git a/lib/c++defs.h b/lib/c++defs.h
index b77979a3..cfe68cb1 100644
--- a/lib/c++defs.h
+++ b/lib/c++defs.h
@@ -1,5 +1,5 @@
/* C++ compatible function declaration macros.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
@@ -127,6 +127,16 @@
#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \
_GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters
+/* _GL_FUNCDECL_SYS_NAME (func) expands to plain func if C++, and to
+ parenthesized func otherwise. Parenthesization is needed in C23 if
+ the function is like strchr and so is a qualifier-generic macro
+ that expands to something more complicated. */
+#ifdef __cplusplus
+# define _GL_FUNCDECL_SYS_NAME(func) func
+#else
+# define _GL_FUNCDECL_SYS_NAME(func) (func)
+#endif
+
/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]);
declares the system function, named func, with the given prototype,
consisting of return type, parameters, and attributes.
@@ -139,7 +149,7 @@
_GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD);
*/
#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \
- _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters
+ _GL_EXTERN_C_FUNC __VA_ARGS__ rettype _GL_FUNCDECL_SYS_NAME (func) parameters
/* _GL_CXXALIAS_RPL (func, rettype, parameters);
declares a C++ alias called GNULIB_NAMESPACE::func
diff --git a/lib/c-ctype.c b/lib/c-ctype.c
index ecf2c083..cd9a205a 100644
--- a/lib/c-ctype.c
+++ b/lib/c-ctype.c
@@ -1,6 +1,6 @@
/* Character handling in C locale.
- Copyright (C) 2003-2025 Free Software Foundation, Inc.
+ Copyright (C) 2003-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -15,7 +15,6 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define C_CTYPE_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "c-ctype.h"
diff --git a/lib/c-ctype.h b/lib/c-ctype.h
index 39063142..e3448a43 100644
--- a/lib/c-ctype.h
+++ b/lib/c-ctype.h
@@ -5,7 +5,7 @@
<ctype.h> functions' behaviour depends on the current locale set via
setlocale.
- Copyright (C) 2000-2003, 2006, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2000-2003, 2006, 2008-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c-strcase.h b/lib/c-strcase.h
index 9bef992b..996ea6f7 100644
--- a/lib/c-strcase.h
+++ b/lib/c-strcase.h
@@ -1,5 +1,5 @@
/* Case-insensitive string comparison functions in C locale.
- Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2025 Free Software
+ Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2026 Free Software
Foundation, Inc.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/c-strcasecmp.c b/lib/c-strcasecmp.c
index 2d963c30..2e7f5405 100644
--- a/lib/c-strcasecmp.c
+++ b/lib/c-strcasecmp.c
@@ -1,5 +1,5 @@
/* c-strcasecmp.c -- case insensitive string comparator in C locale
- Copyright (C) 1998-1999, 2005-2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1998-1999, 2005-2006, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -28,29 +28,24 @@ c_strcasecmp (const char *s1, const char *s2)
{
register const unsigned char *p1 = (const unsigned char *) s1;
register const unsigned char *p2 = (const unsigned char *) s2;
- unsigned char c1, c2;
if (p1 == p2)
return 0;
- do
+ for (;; p1++, p2++)
{
- c1 = c_tolower (*p1);
- c2 = c_tolower (*p2);
-
- if (c1 == '\0')
- break;
-
- ++p1;
- ++p2;
+ unsigned char c1 = c_tolower (*p1);
+ unsigned char c2 = c_tolower (*p2);
+
+ if (c1 == '\0' || c1 != c2)
+ {
+ if (UCHAR_MAX <= INT_MAX)
+ return c1 - c2;
+ else
+ /* On machines where 'char' and 'int' are types of the same size,
+ the difference of two 'unsigned char' values - including the
+ sign bit - doesn't fit in an 'int'. */
+ return _GL_CMP (c1, c2);
+ }
}
- while (c1 == c2);
-
- if (UCHAR_MAX <= INT_MAX)
- return c1 - c2;
- else
- /* On machines where 'char' and 'int' are types of the same size, the
- difference of two 'unsigned char' values - including the sign bit -
- doesn't fit in an 'int'. */
- return _GL_CMP (c1, c2);
}
diff --git a/lib/c-strcaseeq.h b/lib/c-strcaseeq.h
index 4a368100..c135f068 100644
--- a/lib/c-strcaseeq.h
+++ b/lib/c-strcaseeq.h
@@ -1,5 +1,5 @@
/* Optimized case-insensitive string comparison in C locale.
- Copyright (C) 2001-2002, 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32is-impl.h b/lib/c32is-impl.h
index 2a8c4aeb..2cd03dc4 100644
--- a/lib/c32is-impl.h
+++ b/lib/c32is-impl.h
@@ -1,5 +1,5 @@
/* Test whether a 32-bit wide character belongs to a specific character class.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -25,7 +25,7 @@
#if GNULIB_defined_mbstate_t
# include "localcharset.h"
-# include "streq.h"
+# include "streq-opt.h"
#endif
#if GL_CHAR32_T_IS_UNICODE
diff --git a/lib/c32isalnum.c b/lib/c32isalnum.c
index 7d0ebcf5..0972d5be 100644
--- a/lib/c32isalnum.c
+++ b/lib/c32isalnum.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being alphanumeric.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32isalpha.c b/lib/c32isalpha.c
index 308fd76a..1dde246d 100644
--- a/lib/c32isalpha.c
+++ b/lib/c32isalpha.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being alphabetic.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32isblank.c b/lib/c32isblank.c
index 1a03c2db..36f21ec1 100644
--- a/lib/c32isblank.c
+++ b/lib/c32isblank.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being blank.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32iscntrl.c b/lib/c32iscntrl.c
index 1d004087..dcb32705 100644
--- a/lib/c32iscntrl.c
+++ b/lib/c32iscntrl.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being a control character.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32isdigit.c b/lib/c32isdigit.c
index 7d3bda81..96374718 100644
--- a/lib/c32isdigit.c
+++ b/lib/c32isdigit.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being a digit.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32isgraph.c b/lib/c32isgraph.c
index 8b68ae39..f660ceba 100644
--- a/lib/c32isgraph.c
+++ b/lib/c32isgraph.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being graphic.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32islower.c b/lib/c32islower.c
index 1ce08cf4..98abb8a2 100644
--- a/lib/c32islower.c
+++ b/lib/c32islower.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being lowercase.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32isprint.c b/lib/c32isprint.c
index d47ce1f8..72975751 100644
--- a/lib/c32isprint.c
+++ b/lib/c32isprint.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being printable.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32ispunct.c b/lib/c32ispunct.c
index 41ac3d70..1945c6c5 100644
--- a/lib/c32ispunct.c
+++ b/lib/c32ispunct.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being a punctuation or symbol character.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32isspace.c b/lib/c32isspace.c
index 2393142b..58e2a02a 100644
--- a/lib/c32isspace.c
+++ b/lib/c32isspace.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being white-space.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32isupper.c b/lib/c32isupper.c
index bfe4a148..29558234 100644
--- a/lib/c32isupper.c
+++ b/lib/c32isupper.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being uppercase.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32isxdigit.c b/lib/c32isxdigit.c
index b38d7f1f..c9262b58 100644
--- a/lib/c32isxdigit.c
+++ b/lib/c32isxdigit.c
@@ -1,5 +1,5 @@
/* Test 32-bit wide character for being a hexadecimal digit.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32to-impl.h b/lib/c32to-impl.h
index 9a905b80..f6eaf5fd 100644
--- a/lib/c32to-impl.h
+++ b/lib/c32to-impl.h
@@ -1,5 +1,5 @@
/* Case mapping of a 32-bit wide character.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -21,7 +21,7 @@
#if GNULIB_defined_mbstate_t
# include "localcharset.h"
-# include "streq.h"
+# include "streq-opt.h"
#endif
#if GL_CHAR32_T_IS_UNICODE
diff --git a/lib/c32tolower.c b/lib/c32tolower.c
index a0b0523f..15608d88 100644
--- a/lib/c32tolower.c
+++ b/lib/c32tolower.c
@@ -1,5 +1,5 @@
/* Map a 32-bit wide character to lowercase.
- Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ Copyright (C) 2023-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/c32width.c b/lib/c32width.c
index be3371d6..da944cfe 100644
--- a/lib/c32width.c
+++ b/lib/c32width.c
@@ -1,5 +1,5 @@
/* Determine the number of screen columns needed for a 32-bit wide character.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -29,7 +29,7 @@
#endif
#if GNULIB_defined_mbstate_t
-# include "streq.h"
+# include "streq-opt.h"
#endif
#include "localcharset.h"
diff --git a/lib/declared.sh b/lib/declared.sh
index 0c080d0e..91181700 100755
--- a/lib/declared.sh
+++ b/lib/declared.sh
@@ -1,6 +1,6 @@
#! /bin/sh
#
-# Copyright (C) 2006-2025 Free Software Foundation, Inc.
+# Copyright (C) 2006-2026 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -47,7 +47,7 @@ Send patches and bug reports to <bug-gnulib@gnu.org>."
func_version ()
{
echo "declared.sh (GNU gnulib)"
- echo "Copyright (C) 2025 Free Software Foundation, Inc.
+ echo "Copyright (C) 2026 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law."
diff --git a/lib/errno.in.h b/lib/errno.in.h
index 3db2853c..784a4018 100644
--- a/lib/errno.in.h
+++ b/lib/errno.in.h
@@ -1,6 +1,6 @@
/* A POSIX-like <errno.h>.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/fcntl.in.h b/lib/fcntl.in.h
index 843d36e0..52727074 100644
--- a/lib/fcntl.in.h
+++ b/lib/fcntl.in.h
@@ -1,6 +1,6 @@
/* Like <fcntl.h>, but with non-working flags defined to 0.
- Copyright (C) 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2006-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -122,7 +122,6 @@ _GL_CXXALIAS_SYS (creat, int, (const char *filename, mode_t mode));
# endif
_GL_CXXALIASWARN (creat);
#elif defined GNULIB_POSIXCHECK
-# undef creat
/* Assume creat is always declared. */
_GL_WARN_ON_USE (creat, "creat is not always POSIX compliant - "
"use gnulib module creat for portability");
@@ -165,7 +164,6 @@ _GL_CXXALIAS_SYS (fcntl, int, (int fd, int action, ...));
# endif
_GL_CXXALIASWARN (fcntl);
#elif defined GNULIB_POSIXCHECK
-# undef fcntl
# if HAVE_RAW_DECL_FCNTL
_GL_WARN_ON_USE (fcntl, "fcntl is not always POSIX compliant - "
"use gnulib module fcntl for portability");
@@ -196,7 +194,6 @@ _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
_GL_CXXALIASWARN (open);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef open
/* Assume open is always declared. */
_GL_WARN_ON_USE (open, "open is not always POSIX compliant - "
"use gnulib module open for portability");
@@ -242,13 +239,51 @@ _GL_CXXALIAS_SYS (openat, int,
# endif
_GL_CXXALIASWARN (openat);
#elif defined GNULIB_POSIXCHECK
-# undef openat
# if HAVE_RAW_DECL_OPENAT
_GL_WARN_ON_USE (openat, "openat is not portable - "
"use gnulib module openat for portability");
# endif
#endif
+#if @GNULIB_OPENAT2@
+# if !defined RESOLVE_NO_XDEV && defined __has_include
+# if __has_include (<linux/openat2.h>)
+# include <linux/openat2.h>
+# endif
+# endif
+# ifndef RESOLVE_NO_XDEV
+struct open_how
+{
+# ifdef __UINT64_TYPE__
+ __UINT64_TYPE__ flags, mode, resolve;
+# else
+ unsigned long long int flags, mode, resolve;
+# endif
+};
+# define RESOLVE_NO_XDEV 0x01
+# define RESOLVE_NO_MAGICLINKS 0x02
+# define RESOLVE_NO_SYMLINKS 0x04
+# define RESOLVE_BENEATH 0x08
+# define RESOLVE_IN_ROOT 0x10
+# define RESOLVE_CACHED 0x20
+# endif
+
+# if !@HAVE_OPENAT2@
+_GL_FUNCDECL_SYS (openat2, int,
+ (int fd, char const *file, struct open_how const *how,
+ size_t size),
+ _GL_ARG_NONNULL ((2, 3)));
+# endif
+_GL_CXXALIAS_SYS (openat2, int,
+ (int fd, char const *file, struct open_how const *how,
+ size_t size));
+_GL_CXXALIASWARN (openat2);
+#elif defined GNULIB_POSIXCHECK
+# if HAVE_RAW_DECL_OPENAT2
+_GL_WARN_ON_USE (openat2, "openat2 is not portable - "
+ "use gnulib module openat2 for portability");
+# endif
+#endif
/* Fix up the FD_* macros, only known to be missing on mingw. */
@@ -455,6 +490,15 @@ _GL_WARN_ON_USE (openat, "openat is not portable - "
# define AT_NO_AUTOMOUNT 0
#endif
+/* errno when openat+O_NOFOLLOW fails because the file is a symlink. */
+#if defined __FreeBSD__ || defined __FreeBSD_kernel__ || defined __DragonFly__
+# define _GL_OPENAT_ESYMLINK EMLINK
+#elif defined __NetBSD__
+# define _GL_OPENAT_ESYMLINK EFTYPE
+#else
+# define _GL_OPENAT_ESYMLINK ELOOP
+#endif
+
#endif /* _@GUARD_PREFIX@_FCNTL_H */
#endif /* _@GUARD_PREFIX@_FCNTL_H */
#endif
diff --git a/lib/flexmember.h b/lib/flexmember.h
index b4d86c29..26ec3564 100644
--- a/lib/flexmember.h
+++ b/lib/flexmember.h
@@ -1,6 +1,6 @@
/* Sizes of structs with flexible array members.
- Copyright 2016-2025 Free Software Foundation, Inc.
+ Copyright 2016-2026 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/lib/float+.h b/lib/float+.h
index 37381146..58eca376 100644
--- a/lib/float+.h
+++ b/lib/float+.h
@@ -1,5 +1,5 @@
/* Supplemental information about the floating-point formats.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/float.c b/lib/float.c
index 593e4bcd..2e95957a 100644
--- a/lib/float.c
+++ b/lib/float.c
@@ -1,5 +1,5 @@
/* Auxiliary definitions for <float.h>.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/float.in.h b/lib/float.in.h
index 3093f9a0..9f735cb9 100644
--- a/lib/float.in.h
+++ b/lib/float.in.h
@@ -1,6 +1,6 @@
/* A correct <float.h>.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -119,7 +119,7 @@ extern const union gl_long_double_union gl_LDBL_MAX;
wrong.
Assume these bugs are fixed in any GCC new enough
to define __LDBL_NORM_MAX__. */
-#if (defined __powerpc__ && LDBL_MANT_DIG == 106 \
+#if (defined _ARCH_PPC && LDBL_MANT_DIG == 106 \
&& defined __GNUC__ && !defined __LDBL_NORM_MAX__)
# undef LDBL_MIN_EXP
# define LDBL_MIN_EXP (-968)
diff --git a/lib/fpucw.h b/lib/fpucw.h
index 9625e62d..04e4acdd 100644
--- a/lib/fpucw.h
+++ b/lib/fpucw.h
@@ -1,5 +1,5 @@
/* Manipulating the FPU control word. -*- coding: utf-8 -*-
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/free.c b/lib/free.c
index 394d8d13..e6e7cf0f 100644
--- a/lib/free.c
+++ b/lib/free.c
@@ -1,6 +1,6 @@
/* Make free() preserve errno.
- Copyright (C) 2003, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2006, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -44,9 +44,9 @@ rpl_free (void *p)
free (p);
errno = err[errno == 0];
# else
- int err = errno;
+ int saved_errno = errno;
free (p);
- errno = err;
+ errno = saved_errno;
# endif
}
diff --git a/lib/frexp.c b/lib/frexp.c
index 18b95f6c..4679de86 100644
--- a/lib/frexp.c
+++ b/lib/frexp.c
@@ -1,5 +1,5 @@
/* Split a double into fraction and mantissa.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -57,8 +57,6 @@
DOUBLE
FUNC (DOUBLE x, int *expptr)
{
- int sign;
- int exponent;
DECL_ROUNDING
/* Test for NaN, infinity, and zero. */
@@ -68,7 +66,7 @@ FUNC (DOUBLE x, int *expptr)
return x;
}
- sign = 0;
+ int sign = 0;
if (x < 0)
{
x = - x;
@@ -77,6 +75,8 @@ FUNC (DOUBLE x, int *expptr)
BEGIN_ROUNDING ();
+ int exponent;
+
{
/* Since the exponent is an 'int', it fits in 64 bits. Therefore the
loops are executed no more than 64 times. */
diff --git a/lib/frexpl.c b/lib/frexpl.c
index d6f707da..7a4e92a3 100644
--- a/lib/frexpl.c
+++ b/lib/frexpl.c
@@ -1,5 +1,5 @@
/* Split a 'long double' into fraction and mantissa.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/fseterr.c b/lib/fseterr.c
index 4ac4d932..0ab61765 100644
--- a/lib/fseterr.c
+++ b/lib/fseterr.c
@@ -1,5 +1,5 @@
/* Set the error indicator of a stream.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -24,7 +24,7 @@
#include "stdio-impl.h"
/* This file is not used on systems that have the __fseterr function,
- namely musl libc, Haiku >= hrev58760. */
+ namely OpenBSD >= 7.6, musl libc, Haiku >= hrev58760. */
void
fseterr (FILE *fp)
@@ -35,8 +35,8 @@ fseterr (FILE *fp)
#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1
/* GNU libc, BeOS, Haiku, Linux libc5 */
fp->_flags |= _IO_ERR_SEEN;
-#elif defined __sferror || defined __OpenBSD__ || defined __DragonFly__ || defined __ANDROID__
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
+#elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
+ /* FreeBSD, NetBSD, OpenBSD < 7.6, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
fp_->_flags |= __SERR;
#elif defined __EMX__ /* emx+gcc */
fp->_flags |= _IOERR;
@@ -59,14 +59,10 @@ fseterr (FILE *fp)
Not activated on any system, because there is no way to repair FP when
the sequence of system calls fails, and library code should not call
abort(). */
- int saved_errno;
- int fd;
- int fd2;
-
- saved_errno = errno;
+ int saved_errno = errno;
fflush (fp);
- fd = fileno (fp);
- fd2 = dup (fd);
+ int fd = fileno (fp);
+ int fd2 = dup (fd);
if (fd2 >= 0)
{
close (fd);
diff --git a/lib/fseterr.h b/lib/fseterr.h
index 57c30ef3..ac2b793e 100644
--- a/lib/fseterr.h
+++ b/lib/fseterr.h
@@ -1,5 +1,5 @@
/* Set the error indicator of a stream.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/getlocalename_l-unsafe.c b/lib/getlocalename_l-unsafe.c
index e2738829..665e6d62 100644
--- a/lib/getlocalename_l-unsafe.c
+++ b/lib/getlocalename_l-unsafe.c
@@ -1,5 +1,5 @@
/* Return name of a single locale category.
- Copyright (C) 1995-2025 Free Software Foundation, Inc.
+ Copyright (C) 1995-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -97,10 +97,9 @@ get_locale_t_name_unsafe (int category, locale_t locale)
happen if the application uses the original newlocale()/duplocale()
functions instead of the overridden ones. */
const char *name = "";
- struct locale_hash_node *p;
/* Lock while looking up the hash node. */
gl_rwlock_rdlock (locale_lock);
- for (p = locale_hash_table[slot]; p != NULL; p = p->next)
+ for (struct locale_hash_node *p = locale_hash_table[slot]; p != NULL; p = p->next)
if (p->locale == locale)
{
name = p->names.category_name[category - LCMIN];
@@ -131,10 +130,6 @@ locale_t
newlocale (int category_mask, const char *name, locale_t base)
#undef newlocale
{
- struct locale_categories_names names;
- struct locale_hash_node *node;
- locale_t result;
-
/* Make sure name has indefinite extent. */
if (((LC_CTYPE_MASK | LC_NUMERIC_MASK | LC_TIME_MASK | LC_COLLATE_MASK
| LC_MONETARY_MASK | LC_MESSAGES_MASK)
@@ -142,15 +137,14 @@ newlocale (int category_mask, const char *name, locale_t base)
name = struniq (name);
/* Determine the category names of the result. */
+ struct locale_categories_names names;
if (((LC_CTYPE_MASK | LC_NUMERIC_MASK | LC_TIME_MASK | LC_COLLATE_MASK
| LC_MONETARY_MASK | LC_MESSAGES_MASK)
& ~category_mask) == 0)
{
/* Use name, ignore base. */
- int i;
-
name = struniq (name);
- for (i = 0; i < 6; i++)
+ for (int i = 0; i < 6; i++)
names.category_name[i] = name;
}
else
@@ -158,13 +152,11 @@ newlocale (int category_mask, const char *name, locale_t base)
/* Use base, possibly also name. */
if (base == NULL)
{
- int i;
-
- for (i = 0; i < 6; i++)
+ for (int i = 0; i < 6; i++)
{
int category = i + LCMIN;
- int mask;
+ int mask;
switch (category)
{
case LC_CTYPE:
@@ -194,13 +186,11 @@ newlocale (int category_mask, const char *name, locale_t base)
}
else if (base == LC_GLOBAL_LOCALE)
{
- int i;
-
- for (i = 0; i < 6; i++)
+ for (int i = 0; i < 6; i++)
{
int category = i + LCMIN;
- int mask;
+ int mask;
switch (category)
{
case LC_CTYPE:
@@ -234,22 +224,21 @@ newlocale (int category_mask, const char *name, locale_t base)
{
/* Look up the names of base in the hash table. Like multiple calls
of get_locale_t_name, but locking only once. */
- struct locale_hash_node *p;
/* Lock while looking up the hash node. */
gl_rwlock_rdlock (locale_lock);
+ struct locale_hash_node *p;
for (p = locale_hash_table[locale_hash_function (base) % LOCALE_HASH_TABLE_SIZE];
p != NULL;
p = p->next)
if (p->locale == base)
break;
- int i;
- for (i = 0; i < 6; i++)
+ for (int i = 0; i < 6; i++)
{
int category = i + LCMIN;
- int mask;
+ int mask;
switch (category)
{
case LC_CTYPE:
@@ -283,12 +272,13 @@ newlocale (int category_mask, const char *name, locale_t base)
}
}
- node = (struct locale_hash_node *) malloc (sizeof (struct locale_hash_node));
+ struct locale_hash_node *node =
+ (struct locale_hash_node *) malloc (sizeof (struct locale_hash_node));
if (node == NULL)
/* errno is set to ENOMEM. */
return NULL;
- result = newlocale (category_mask, name, base);
+ locale_t result = newlocale (category_mask, name, base);
if (result == NULL)
{
free (node);
@@ -303,10 +293,10 @@ newlocale (int category_mask, const char *name, locale_t base)
{
size_t hashcode = locale_hash_function (result);
size_t slot = hashcode % LOCALE_HASH_TABLE_SIZE;
- struct locale_hash_node *p;
/* Lock while inserting the new node. */
gl_rwlock_wrlock (locale_lock);
+ struct locale_hash_node *p;
for (p = locale_hash_table[slot]; p != NULL; p = p->next)
if (p->locale == result)
{
@@ -335,19 +325,17 @@ locale_t
duplocale (locale_t locale)
#undef duplocale
{
- struct locale_hash_node *node;
- locale_t result;
-
if (locale == NULL)
/* Invalid argument. */
abort ();
- node = (struct locale_hash_node *) malloc (sizeof (struct locale_hash_node));
+ struct locale_hash_node *node =
+ (struct locale_hash_node *) malloc (sizeof (struct locale_hash_node));
if (node == NULL)
/* errno is set to ENOMEM. */
return NULL;
- result = duplocale (locale);
+ locale_t result = duplocale (locale);
if (result == NULL)
{
free (node);
@@ -358,9 +346,7 @@ duplocale (locale_t locale)
node->locale = result;
if (locale == LC_GLOBAL_LOCALE)
{
- int i;
-
- for (i = 0; i < 6; i++)
+ for (int i = 0; i < 6; i++)
{
int category = i + LCMIN;
node->names.category_name[i] =
@@ -372,11 +358,10 @@ duplocale (locale_t locale)
}
else
{
- struct locale_hash_node *p;
-
/* Lock once, for the lookup and the insertion. */
gl_rwlock_wrlock (locale_lock);
+ struct locale_hash_node *p;
for (p = locale_hash_table[locale_hash_function (locale) % LOCALE_HASH_TABLE_SIZE];
p != NULL;
p = p->next)
@@ -389,9 +374,7 @@ duplocale (locale_t locale)
/* This can happen if the application uses the original
newlocale()/duplocale() functions instead of the overridden
ones. */
- int i;
-
- for (i = 0; i < 6; i++)
+ for (int i = 0; i < 6; i++)
node->names.category_name[i] = "";
}
}
@@ -400,8 +383,8 @@ duplocale (locale_t locale)
{
size_t hashcode = locale_hash_function (result);
size_t slot = hashcode % LOCALE_HASH_TABLE_SIZE;
- struct locale_hash_node *p;
+ struct locale_hash_node *p;
for (p = locale_hash_table[slot]; p != NULL; p = p->next)
if (p->locale == result)
{
@@ -437,13 +420,11 @@ freelocale (locale_t locale)
{
size_t hashcode = locale_hash_function (locale);
size_t slot = hashcode % LOCALE_HASH_TABLE_SIZE;
- struct locale_hash_node *found;
- struct locale_hash_node **p;
- found = NULL;
+ struct locale_hash_node *found = NULL;
/* Lock while removing the hash node. */
gl_rwlock_wrlock (locale_lock);
- for (p = &locale_hash_table[slot]; *p != NULL; p = &(*p)->next)
+ for (struct locale_hash_node **p = &locale_hash_table[slot]; *p != NULL; p = &(*p)->next)
if ((*p)->locale == locale)
{
found = *p;
@@ -491,7 +472,6 @@ getlocalename_l_unsafe (int category, locale_t locale)
#elif (defined __FreeBSD__ || defined __DragonFly__) || (defined __APPLE__ && defined __MACH__)
/* FreeBSD >= 9.1, Mac OS X */
int mask;
-
switch (category)
{
case LC_CTYPE:
@@ -599,6 +579,15 @@ getlocalename_l_unsafe (int category, locale_t locale)
# endif
return (struct string_with_storage) { name, STORAGE_OBJECT };
#elif defined __HAIKU__
+# if HAVE_GETLOCALENAME_L
+ /* Haiku revision hrev59293 (2026-01-07) or newer. */
+# undef getlocalename_l
+ const char *name = getlocalename_l (category, locale);
+ if (strcmp (name, "POSIX") != 0)
+ return (struct string_with_storage) { name, STORAGE_OBJECT };
+ else
+ return (struct string_with_storage) { "C", STORAGE_INDEFINITE };
+# else
/* Since 2022, Haiku has per-thread locales. locale_t is 'void *',
but in fact a 'LocaleBackendData *'. */
struct LocaleBackendData {
@@ -661,6 +650,7 @@ getlocalename_l_unsafe (int category, locale_t locale)
else
/* It's the "C" or "POSIX" locale. */
return (struct string_with_storage) { "C", STORAGE_INDEFINITE };
+# endif
#elif defined __ANDROID__
/* Android API level >= 21 */
struct __locale_t {
diff --git a/lib/getlocalename_l-unsafe.h b/lib/getlocalename_l-unsafe.h
index 97b86637..90a5a8c4 100644
--- a/lib/getlocalename_l-unsafe.h
+++ b/lib/getlocalename_l-unsafe.h
@@ -1,5 +1,5 @@
/* Return name of a single locale category.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/glthread/lock.c b/lib/glthread/lock.c
index a2c53dc7..cfb9393c 100644
--- a/lib/glthread/lock.c
+++ b/lib/glthread/lock.c
@@ -1,5 +1,5 @@
/* Locking in multithreaded situations.
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -261,9 +261,7 @@ int
glthread_rwlock_init_for_glibc (pthread_rwlock_t *lock)
{
pthread_rwlockattr_t attributes;
- int err;
-
- err = pthread_rwlockattr_init (&attributes);
+ int err = pthread_rwlockattr_init (&attributes);
if (err != 0)
return err;
/* Note: PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP is the only value that
@@ -286,9 +284,7 @@ glthread_rwlock_init_for_glibc (pthread_rwlock_t *lock)
int
glthread_rwlock_init_multithreaded (gl_rwlock_t *lock)
{
- int err;
-
- err = pthread_rwlock_init (&lock->rwlock, NULL);
+ int err = pthread_rwlock_init (&lock->rwlock, NULL);
if (err != 0)
return err;
lock->initialized = 1;
@@ -300,9 +296,7 @@ glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock)
{
if (!lock->initialized)
{
- int err;
-
- err = pthread_mutex_lock (&lock->guard);
+ int err = pthread_mutex_lock (&lock->guard);
if (err != 0)
return err;
if (!lock->initialized)
@@ -326,9 +320,7 @@ glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock)
{
if (!lock->initialized)
{
- int err;
-
- err = pthread_mutex_lock (&lock->guard);
+ int err = pthread_mutex_lock (&lock->guard);
if (err != 0)
return err;
if (!lock->initialized)
@@ -358,11 +350,9 @@ glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock)
int
glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock)
{
- int err;
-
if (!lock->initialized)
return EINVAL;
- err = pthread_rwlock_destroy (&lock->rwlock);
+ int err = pthread_rwlock_destroy (&lock->rwlock);
if (err != 0)
return err;
lock->initialized = 0;
@@ -376,9 +366,7 @@ glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock)
int
glthread_rwlock_init_multithreaded (gl_rwlock_t *lock)
{
- int err;
-
- err = pthread_mutex_init (&lock->lock, NULL);
+ int err = pthread_mutex_init (&lock->lock, NULL);
if (err != 0)
return err;
err = pthread_cond_init (&lock->waiting_readers, NULL);
@@ -395,9 +383,7 @@ glthread_rwlock_init_multithreaded (gl_rwlock_t *lock)
int
glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock)
{
- int err;
-
- err = pthread_mutex_lock (&lock->lock);
+ int err = pthread_mutex_lock (&lock->lock);
if (err != 0)
return err;
/* Test whether only readers are currently running, and whether the runcount
@@ -422,9 +408,7 @@ glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock)
int
glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock)
{
- int err;
-
- err = pthread_mutex_lock (&lock->lock);
+ int err = pthread_mutex_lock (&lock->lock);
if (err != 0)
return err;
/* Test whether no readers or writers are currently running. */
@@ -449,9 +433,7 @@ glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock)
int
glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock)
{
- int err;
-
- err = pthread_mutex_lock (&lock->lock);
+ int err = pthread_mutex_lock (&lock->lock);
if (err != 0)
return err;
if (lock->runcount < 0)
@@ -505,9 +487,7 @@ glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock)
int
glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock)
{
- int err;
-
- err = pthread_mutex_destroy (&lock->lock);
+ int err = pthread_mutex_destroy (&lock->lock);
if (err != 0)
return err;
err = pthread_cond_destroy (&lock->waiting_readers);
@@ -531,9 +511,7 @@ int
glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock)
{
pthread_mutexattr_t attributes;
- int err;
-
- err = pthread_mutexattr_init (&attributes);
+ int err = pthread_mutexattr_init (&attributes);
if (err != 0)
return err;
err = pthread_mutexattr_settype (&attributes, PTHREAD_MUTEX_RECURSIVE);
@@ -560,9 +538,7 @@ int
glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock)
{
pthread_mutexattr_t attributes;
- int err;
-
- err = pthread_mutexattr_init (&attributes);
+ int err = pthread_mutexattr_init (&attributes);
if (err != 0)
return err;
err = pthread_mutexattr_settype (&attributes, PTHREAD_MUTEX_RECURSIVE);
@@ -589,9 +565,7 @@ glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock)
{
if (!lock->initialized)
{
- int err;
-
- err = pthread_mutex_lock (&lock->guard);
+ int err = pthread_mutex_lock (&lock->guard);
if (err != 0)
return err;
if (!lock->initialized)
@@ -621,11 +595,9 @@ glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock)
int
glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock)
{
- int err;
-
if (!lock->initialized)
return EINVAL;
- err = pthread_mutex_destroy (&lock->recmutex);
+ int err = pthread_mutex_destroy (&lock->recmutex);
if (err != 0)
return err;
lock->initialized = 0;
@@ -639,9 +611,7 @@ glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock)
int
glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock)
{
- int err;
-
- err = pthread_mutex_init (&lock->mutex, NULL);
+ int err = pthread_mutex_init (&lock->mutex, NULL);
if (err != 0)
return err;
lock->owner = (pthread_t) 0;
@@ -655,9 +625,7 @@ glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock)
pthread_t self = pthread_self ();
if (lock->owner != self)
{
- int err;
-
- err = pthread_mutex_lock (&lock->mutex);
+ int err = pthread_mutex_lock (&lock->mutex);
if (err != 0)
return err;
lock->owner = self;
diff --git a/lib/glthread/lock.h b/lib/glthread/lock.h
index 1554115a..d8190b6c 100644
--- a/lib/glthread/lock.h
+++ b/lib/glthread/lock.h
@@ -1,5 +1,5 @@
/* Locking in multithreaded situations.
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/glthread/once.c b/lib/glthread/once.c
index 53211af8..b72a4a20 100644
--- a/lib/glthread/once.c
+++ b/lib/glthread/once.c
@@ -1,5 +1,5 @@
/* Once-only initialization in multithreaded situations.
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/glthread/once.h b/lib/glthread/once.h
index 943bd7a2..b6d9ab40 100644
--- a/lib/glthread/once.h
+++ b/lib/glthread/once.h
@@ -1,5 +1,5 @@
/* Once-only initialization in multithreaded situations.
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/glthread/threadlib.c b/lib/glthread/threadlib.c
index a6f7688b..5c0ba1f4 100644
--- a/lib/glthread/threadlib.c
+++ b/lib/glthread/threadlib.c
@@ -1,5 +1,5 @@
/* Multithreading primitives.
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/hard-locale.c b/lib/hard-locale.c
index 1e430889..6a3dad4f 100644
--- a/lib/hard-locale.c
+++ b/lib/hard-locale.c
@@ -1,6 +1,6 @@
/* hard-locale.c -- Determine whether a locale is hard.
- Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/hard-locale.h b/lib/hard-locale.h
index 29808da6..b8d7029d 100644
--- a/lib/hard-locale.h
+++ b/lib/hard-locale.h
@@ -1,6 +1,6 @@
/* Determine whether a locale is hard.
- Copyright (C) 1999, 2003-2004, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2003-2004, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iconv.c b/lib/iconv.c
index 5ebd1a59..03017df6 100644
--- a/lib/iconv.c
+++ b/lib/iconv.c
@@ -1,5 +1,5 @@
/* Character set conversion.
- Copyright (C) 1999-2001, 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2001, 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iconv.in.h b/lib/iconv.in.h
index 8ead6944..e0ad9e2f 100644
--- a/lib/iconv.in.h
+++ b/lib/iconv.in.h
@@ -1,6 +1,6 @@
/* A GNU-like <iconv.h>.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -58,7 +58,6 @@ _GL_CXXALIAS_SYS (iconv_open, iconv_t,
# endif
_GL_CXXALIASWARN (iconv_open);
#elif defined GNULIB_POSIXCHECK
-# undef iconv_open
# if HAVE_RAW_DECL_ICONV_OPEN
_GL_WARN_ON_USE (iconv_open, "iconv_open is not working correctly everywhere - "
"use gnulib module iconv for portability");
@@ -107,7 +106,6 @@ _GL_CXXALIASWARN (iconv);
# define ICONV_CONST @ICONV_CONST@
# endif
#elif defined GNULIB_POSIXCHECK
-# undef iconv
# if HAVE_RAW_DECL_ICONV
_GL_WARN_ON_USE (iconv, "iconv is not working correctly everywhere - "
"use gnulib module iconv for portability");
diff --git a/lib/iconv_close.c b/lib/iconv_close.c
index 0939ba11..6e3741b9 100644
--- a/lib/iconv_close.c
+++ b/lib/iconv_close.c
@@ -1,5 +1,5 @@
/* Character set conversion.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iconv_open-aix.gperf b/lib/iconv_open-aix.gperf
index e50842d5..ff7eb597 100644
--- a/lib/iconv_open-aix.gperf
+++ b/lib/iconv_open-aix.gperf
@@ -1,5 +1,5 @@
/* Character set conversion.
- Copyright (C) 2007, 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iconv_open-aix.h b/lib/iconv_open-aix.h
index 4f218045..4798fc19 100644
--- a/lib/iconv_open-aix.h
+++ b/lib/iconv_open-aix.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 iconv_open-aix.gperf */
/* Computed positions: -k'4,$' */
@@ -153,6 +153,10 @@ static const struct stringpool_t stringpool_contents =
};
#define stringpool ((const char *) &stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct mapping mappings[] =
{
{-1}, {-1}, {-1}, {-1}, {-1}, {-1},
@@ -226,6 +230,9 @@ static const struct mapping mappings[] =
#line 44 "iconv_open-aix.gperf"
{(int)(size_t)&((struct stringpool_t *)0)->stringpool_str44, "IBM-861"}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
const struct mapping *
mapping_lookup (register const char *str, register size_t len)
@@ -246,5 +253,5 @@ mapping_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct mapping *) 0;
}
diff --git a/lib/iconv_open-hpux.gperf b/lib/iconv_open-hpux.gperf
index 43bbe8d3..4bdb3602 100644
--- a/lib/iconv_open-hpux.gperf
+++ b/lib/iconv_open-hpux.gperf
@@ -1,5 +1,5 @@
/* Character set conversion.
- Copyright (C) 2007, 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iconv_open-hpux.h b/lib/iconv_open-hpux.h
index bae7bff6..0974ae4b 100644
--- a/lib/iconv_open-hpux.h
+++ b/lib/iconv_open-hpux.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 iconv_open-hpux.gperf */
/* Computed positions: -k'4,$' */
@@ -177,6 +177,10 @@ static const struct stringpool_t stringpool_contents =
};
#define stringpool ((const char *) &stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct mapping mappings[] =
{
{-1}, {-1}, {-1}, {-1}, {-1}, {-1},
@@ -269,6 +273,9 @@ static const struct mapping mappings[] =
#line 53 "iconv_open-hpux.gperf"
{(int)(size_t)&((struct stringpool_t *)0)->stringpool_str49, "cp1253"}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
const struct mapping *
mapping_lookup (register const char *str, register size_t len)
@@ -289,5 +296,5 @@ mapping_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct mapping *) 0;
}
diff --git a/lib/iconv_open-solaris.gperf b/lib/iconv_open-solaris.gperf
index 68218a7c..39504aaf 100644
--- a/lib/iconv_open-solaris.gperf
+++ b/lib/iconv_open-solaris.gperf
@@ -1,5 +1,5 @@
/* Character set conversion.
- Copyright (C) 2007, 2009, 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009, 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iconv_open-solaris.h b/lib/iconv_open-solaris.h
index e51f299c..3a9be522 100644
--- a/lib/iconv_open-solaris.h
+++ b/lib/iconv_open-solaris.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 iconv_open-solaris.gperf */
/* Computed positions: -k'10' */
@@ -84,9 +84,9 @@ mapping_hash (register const char *str, register size_t len)
{
default:
hval += asso_values[(unsigned char)str[9]];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -134,6 +134,10 @@ static const struct stringpool_t stringpool_contents =
};
#define stringpool ((const char *) &stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct mapping mappings[] =
{
{-1}, {-1}, {-1}, {-1}, {-1},
@@ -165,6 +169,9 @@ static const struct mapping mappings[] =
#line 37 "iconv_open-solaris.gperf"
{(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-2"}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
const struct mapping *
mapping_lookup (register const char *str, register size_t len)
@@ -185,5 +192,5 @@ mapping_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct mapping *) 0;
}
diff --git a/lib/iconv_open-zos.gperf b/lib/iconv_open-zos.gperf
index 1b37a9a9..8164dc0c 100644
--- a/lib/iconv_open-zos.gperf
+++ b/lib/iconv_open-zos.gperf
@@ -1,5 +1,5 @@
/* Character set conversion.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iconv_open-zos.h b/lib/iconv_open-zos.h
index 7bfa9ecc..1b76dc35 100644
--- a/lib/iconv_open-zos.h
+++ b/lib/iconv_open-zos.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 iconv_open-zos.gperf */
/* Computed positions: -k'4,$' */
@@ -85,9 +85,9 @@ mapping_hash (register const char *str, register size_t len)
{
default:
hval += asso_values[(unsigned char)str[3]+6];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -203,6 +203,10 @@ static const struct stringpool_t stringpool_contents =
};
#define stringpool ((const char *) &stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct mapping mappings[] =
{
{-1}, {-1}, {-1},
@@ -310,6 +314,9 @@ static const struct mapping mappings[] =
#line 60 "iconv_open-zos.gperf"
{(int)(size_t)&((struct stringpool_t *)0)->stringpool_str64, "IBM-1046"}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
const struct mapping *
mapping_lookup (register const char *str, register size_t len)
@@ -330,5 +337,5 @@ mapping_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct mapping *) 0;
}
diff --git a/lib/iconv_open.c b/lib/iconv_open.c
index c54b8ee6..50e21cb5 100644
--- a/lib/iconv_open.c
+++ b/lib/iconv_open.c
@@ -1,5 +1,5 @@
/* Character set conversion.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -44,11 +44,6 @@ iconv_t
rpl_iconv_open (const char *tocode, const char *fromcode)
#undef iconv_open
{
- char fromcode_upper[32];
- char tocode_upper[32];
- char *fromcode_upper_end;
- char *tocode_upper_end;
-
#if REPLACE_ICONV_UTF
/* Special handling of conversion between UTF-8 and UTF-{16,32}{BE,LE}.
We do not need to handle conversion between arbitrary encodings and
@@ -113,6 +108,8 @@ rpl_iconv_open (const char *tocode, const char *fromcode)
/* Convert the encodings to upper case, because
1. in the arguments of iconv_open() on AIX and HP-UX, the case matters,
2. it makes searching in the table faster. */
+ char fromcode_upper[32];
+ char *fromcode_upper_end;
{
const char *p = fromcode;
char *q = fromcode_upper;
@@ -129,6 +126,8 @@ rpl_iconv_open (const char *tocode, const char *fromcode)
fromcode_upper_end = q;
}
+ char tocode_upper[32];
+ char *tocode_upper_end;
{
const char *p = tocode;
char *q = tocode_upper;
diff --git a/lib/iconveh.h b/lib/iconveh.h
index 3b3dd26d..4a9d98b6 100644
--- a/lib/iconveh.h
+++ b/lib/iconveh.h
@@ -1,5 +1,5 @@
/* Character set conversion handler type.
- Copyright (C) 2001-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/idx.h b/lib/idx.h
index 639b6cf0..deb7dc4c 100644
--- a/lib/idx.h
+++ b/lib/idx.h
@@ -1,5 +1,5 @@
/* A type for indices and sizes.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/lib/intprops-internal.h b/lib/intprops-internal.h
index 26098030..0df385b9 100644
--- a/lib/intprops-internal.h
+++ b/lib/intprops-internal.h
@@ -1,6 +1,6 @@
/* intprops-internal.h -- properties of integer types not visible to users
- Copyright (C) 2001-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2026 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
@@ -116,8 +116,8 @@
#endif
/* True if __builtin_mul_overflow (A, B, P) works when P is non-null. */
-#if defined __clang_major__ && __clang_major__ < 14
-/* Work around Clang bug <https://bugs.llvm.org/show_bug.cgi?id=16404>. */
+#if defined __clang_major__ && __clang_major__ < 21
+/* Work around Clang bug <https://github.com/llvm/llvm-project/issues/16778>. */
# define _GL_HAS_BUILTIN_MUL_OVERFLOW 0
#else
# define _GL_HAS_BUILTIN_MUL_OVERFLOW _GL_HAS_BUILTIN_ADD_OVERFLOW
@@ -179,9 +179,9 @@
_GL_INT_OP_WRAPV (a, b, r, *, _GL_INT_MULTIPLY_RANGE_OVERFLOW)
#endif
-/* Nonzero if this compiler has GCC bug 68193 or Clang bug 25390. See:
+/* Nonzero if this compiler has GCC bug 68193 or Clang bug 25764. See:
https://gcc.gnu.org/PR68193
- https://llvm.org/bugs/show_bug.cgi?id=25390
+ https://github.com/llvm/llvm-project/issues/25764
For now, assume GCC < 14 and all Clang versions generate bogus
warnings for _Generic. This matters only for compilers that
lack relevant builtins. */
diff --git a/lib/inttypes.in.h b/lib/inttypes.in.h
index 5520ebc5..cbe5a6f0 100644
--- a/lib/inttypes.in.h
+++ b/lib/inttypes.in.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2026 Free Software Foundation, Inc.
Written by Paul Eggert, Bruno Haible, Derek Price.
This file is part of gnulib.
@@ -925,7 +925,6 @@ _GL_CXXALIAS_SYS (imaxabs, intmax_t, (intmax_t x));
_GL_CXXALIASWARN (imaxabs);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef imaxabs
# if HAVE_RAW_DECL_IMAXABS
_GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - "
"use gnulib module imaxabs for portability");
@@ -956,7 +955,6 @@ _GL_CXXALIAS_SYS (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom));
_GL_CXXALIASWARN (imaxdiv);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef imaxdiv
# if HAVE_RAW_DECL_IMAXDIV
_GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - "
"use gnulib module imaxdiv for portability");
@@ -986,7 +984,6 @@ _GL_CXXALIAS_SYS (strtoimax, intmax_t,
# endif
_GL_CXXALIASWARN (strtoimax);
#elif defined GNULIB_POSIXCHECK
-# undef strtoimax
# if HAVE_RAW_DECL_STRTOIMAX
_GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - "
"use gnulib module strtoimax for portability");
@@ -1016,7 +1013,6 @@ _GL_CXXALIAS_SYS (strtoumax, uintmax_t,
# endif
_GL_CXXALIASWARN (strtoumax);
#elif defined GNULIB_POSIXCHECK
-# undef strtoumax
# if HAVE_RAW_DECL_STRTOUMAX
_GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - "
"use gnulib module strtoumax for portability");
diff --git a/lib/isnan.c b/lib/isnan.c
index 915187ba..491dc6dc 100644
--- a/lib/isnan.c
+++ b/lib/isnan.c
@@ -1,5 +1,5 @@
/* Test for NaN that does not need libm.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -105,10 +105,8 @@ FUNC (DOUBLE x)
The NaN bit pattern is:
- exponent = 0x7FFF, mantissa >= 0x8000000000000001. */
memory_double m;
- unsigned int exponent;
-
m.value = x;
- exponent = (m.word[EXPBIT0_WORD] >> EXPBIT0_BIT) & EXP_MASK;
+ unsigned int exponent = (m.word[EXPBIT0_WORD] >> EXPBIT0_BIT) & EXP_MASK;
# ifdef WORDS_BIGENDIAN
/* Big endian: EXPBIT0_WORD = 0, EXPBIT0_BIT = 16. */
if (exponent == 0)
@@ -138,9 +136,9 @@ FUNC (DOUBLE x)
Visual C/C++ compiler also fails when constant-folding 1.0 / 0.0 even
when constant-folding is not required. */
static DOUBLE zero = L_(0.0);
- memory_double nan;
DOUBLE plus_inf = L_(1.0) / zero;
DOUBLE minus_inf = -L_(1.0) / zero;
+ memory_double nan;
nan.value = zero / zero;
# else
static memory_double nan = { L_(0.0) / L_(0.0) };
@@ -149,10 +147,10 @@ FUNC (DOUBLE x)
# endif
{
memory_double m;
+ m.value = x;
/* A NaN can be recognized through its exponent. But exclude +Infinity and
-Infinity, which have the same exponent. */
- m.value = x;
if (((m.word[EXPBIT0_WORD] ^ nan.word[EXPBIT0_WORD])
& (EXP_MASK << EXPBIT0_BIT))
== 0)
@@ -171,12 +169,13 @@ FUNC (DOUBLE x)
# if defined USE_LONG_DOUBLE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
/* Detect any special bit patterns that pass ==; see comment above. */
memory_double m1;
- memory_double m2;
-
memset (&m1.value, 0, SIZE);
- memset (&m2.value, 0, SIZE);
m1.value = x;
+
+ memory_double m2;
+ memset (&m2.value, 0, SIZE);
m2.value = x + (x ? 0.0L : -0.0L);
+
if (!memeq (&m1.value, &m2.value, SIZE))
return 1;
# endif
diff --git a/lib/isnand-nolibm.h b/lib/isnand-nolibm.h
index b9ba9eef..70c5ecb4 100644
--- a/lib/isnand-nolibm.h
+++ b/lib/isnand-nolibm.h
@@ -1,5 +1,5 @@
/* Test for NaN that does not need libm.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/isnand.c b/lib/isnand.c
index 9ce3bc74..331c4c43 100644
--- a/lib/isnand.c
+++ b/lib/isnand.c
@@ -1,5 +1,5 @@
/* Test for NaN that does not need libm.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/isnanf-nolibm.h b/lib/isnanf-nolibm.h
index d2e57644..0ed965db 100644
--- a/lib/isnanf-nolibm.h
+++ b/lib/isnanf-nolibm.h
@@ -1,5 +1,5 @@
/* Test for NaN that does not need libm.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/isnanf.c b/lib/isnanf.c
index 5e74254e..959b8062 100644
--- a/lib/isnanf.c
+++ b/lib/isnanf.c
@@ -1,5 +1,5 @@
/* Test for NaN that does not need libm.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/isnanl-nolibm.h b/lib/isnanl-nolibm.h
index 0fb679ec..640f959e 100644
--- a/lib/isnanl-nolibm.h
+++ b/lib/isnanl-nolibm.h
@@ -1,5 +1,5 @@
/* Test for NaN that does not need libm.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/isnanl.c b/lib/isnanl.c
index 812fc8c8..cd9ded7a 100644
--- a/lib/isnanl.c
+++ b/lib/isnanl.c
@@ -1,5 +1,5 @@
/* Test for NaN that does not need libm.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iswblank.c b/lib/iswblank.c
index 6e361f43..c09f33bd 100644
--- a/lib/iswblank.c
+++ b/lib/iswblank.c
@@ -1,5 +1,5 @@
/* Test wide character for being blank.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iswdigit.c b/lib/iswdigit.c
index 6bba487b..65616822 100644
--- a/lib/iswdigit.c
+++ b/lib/iswdigit.c
@@ -1,5 +1,5 @@
/* Test wide character for being a digit.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iswpunct.c b/lib/iswpunct.c
index 2b9258a9..5308ddae 100644
--- a/lib/iswpunct.c
+++ b/lib/iswpunct.c
@@ -1,5 +1,5 @@
/* Test wide character for being a punctuation or symbol character.
- Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ Copyright (C) 2023-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/iswxdigit.c b/lib/iswxdigit.c
index e154ac80..7db2f676 100644
--- a/lib/iswxdigit.c
+++ b/lib/iswxdigit.c
@@ -1,5 +1,5 @@
/* Test wide character for being a hexadecimal digit.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/itold.c b/lib/itold.c
index 084eba23..d240fb7e 100644
--- a/lib/itold.c
+++ b/lib/itold.c
@@ -1,5 +1,5 @@
/* Replacement for 'int' to 'long double' conversion routine.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/lc-charset-dispatch.c b/lib/lc-charset-dispatch.c
index 91ab6d72..09f83f18 100644
--- a/lib/lc-charset-dispatch.c
+++ b/lib/lc-charset-dispatch.c
@@ -1,5 +1,5 @@
/* Dispatching based on the current locale's character encoding.
- Copyright (C) 2018-2025 Free Software Foundation, Inc.
+ Copyright (C) 2018-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -24,7 +24,7 @@
#if GNULIB_defined_mbstate_t
# include "localcharset.h"
-# include "streq.h"
+# include "streq-opt.h"
# if GNULIB_WCHAR_SINGLE_LOCALE
/* When we know that the locale does not change, provide a speedup by
diff --git a/lib/lc-charset-dispatch.h b/lib/lc-charset-dispatch.h
index 554137b6..665da408 100644
--- a/lib/lc-charset-dispatch.h
+++ b/lib/lc-charset-dispatch.h
@@ -1,5 +1,5 @@
/* Dispatching based on the current locale's character encoding.
- Copyright (C) 2018-2025 Free Software Foundation, Inc.
+ Copyright (C) 2018-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/limits.in.h b/lib/limits.in.h
index 693df998..66bd63ee 100644
--- a/lib/limits.in.h
+++ b/lib/limits.in.h
@@ -1,6 +1,6 @@
/* A GNU-like <limits.h>.
- Copyright 2016-2025 Free Software Foundation, Inc.
+ Copyright 2016-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/localcharset.c b/lib/localcharset.c
index 79a55c5e..22dc38d3 100644
--- a/lib/localcharset.c
+++ b/lib/localcharset.c
@@ -1,6 +1,6 @@
/* Determine a canonical name for the current locale's character encoding.
- Copyright (C) 2000-2006, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2000-2006, 2008-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -813,10 +813,9 @@ locale_charset (void)
environment variables (if present) or the codepage as a number. */
if (codeset != NULL && streq (codeset, "US-ASCII"))
{
- const char *locale;
static char resultbuf[2 + 10 + 1];
- locale = getenv ("LC_ALL");
+ const char *locale = getenv ("LC_ALL");
if (locale == NULL || locale[0] == '\0')
{
locale = getenv ("LC_CTYPE");
@@ -912,16 +911,13 @@ locale_charset (void)
# elif defined OS2
- const char *locale;
static char resultbuf[2 + 10 + 1];
- ULONG cp[3];
- ULONG cplen;
codeset = NULL;
/* Allow user to override the codeset, as set in the operating system,
with standard language environment variables. */
- locale = getenv ("LC_ALL");
+ const char *locale = getenv ("LC_ALL");
if (locale == NULL || locale[0] == '\0')
{
locale = getenv ("LC_CTYPE");
@@ -958,6 +954,9 @@ locale_charset (void)
if (codeset == NULL)
{
+ ULONG cp[3];
+ ULONG cplen;
+
/* OS/2 has a function returning the locale's codepage as a number. */
if (DosQueryCp (sizeof (cp), cp, &cplen))
codeset = "";
diff --git a/lib/localcharset.h b/lib/localcharset.h
index 6bc18afe..59f748d7 100644
--- a/lib/localcharset.h
+++ b/lib/localcharset.h
@@ -1,5 +1,5 @@
/* Determine a canonical name for the current locale's character encoding.
- Copyright (C) 2000-2003, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2000-2003, 2009-2026 Free Software Foundation, Inc.
This file is part of the GNU CHARSET Library.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/locale.in.h b/lib/locale.in.h
index 34f8c5b6..c264493e 100644
--- a/lib/locale.in.h
+++ b/lib/locale.in.h
@@ -1,5 +1,5 @@
/* A POSIX <locale.h>.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -264,7 +264,6 @@ _GL_CXXALIASWARN (localeconv);
# define localeconv localeconv_used_without_requesting_gnulib_module_localeconv
# endif
#elif defined GNULIB_POSIXCHECK
-# undef localeconv
# if HAVE_RAW_DECL_LOCALECONV
_GL_WARN_ON_USE (localeconv,
"localeconv returns too few information on some platforms - "
@@ -288,7 +287,6 @@ _GL_CXXALIAS_SYS (setlocale, char *, (int category, const char *locale));
_GL_CXXALIASWARN (setlocale);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef setlocale
# if HAVE_RAW_DECL_SETLOCALE
_GL_WARN_ON_USE (setlocale, "setlocale works differently on native Windows - "
"use gnulib module setlocale for portability");
@@ -325,7 +323,6 @@ _GL_CXXALIAS_SYS (newlocale, locale_t,
_GL_CXXALIASWARN (newlocale);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef newlocale
# if HAVE_RAW_DECL_NEWLOCALE
_GL_WARN_ON_USE (newlocale, "newlocale is not portable");
# endif
@@ -350,7 +347,6 @@ _GL_CXXALIAS_SYS (duplocale, locale_t, (locale_t locale));
_GL_CXXALIASWARN (duplocale);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef duplocale
# if HAVE_RAW_DECL_DUPLOCALE
_GL_WARN_ON_USE (duplocale, "duplocale is unportable and buggy on some glibc systems - "
"use gnulib module duplocale for portability");
@@ -378,7 +374,6 @@ _GL_CXXALIAS_SYS_CAST (freelocale, void, (locale_t locale));
_GL_CXXALIASWARN (freelocale);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef freelocale
# if HAVE_RAW_DECL_FREELOCALE
_GL_WARN_ON_USE (freelocale, "freelocale is not portable");
# endif
@@ -408,7 +403,6 @@ _GL_CXXALIAS_SYS (getlocalename_l, const char *,
_GL_CXXALIASWARN (getlocalename_l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getlocalename_l
# if HAVE_RAW_DECL_GETLOCALENAME_L
_GL_WARN_ON_USE (getlocalename_l, "getlocalename_l is not portable");
# endif
diff --git a/lib/localeconv.c b/lib/localeconv.c
index a6bbdced..bf6271ee 100644
--- a/lib/localeconv.c
+++ b/lib/localeconv.c
@@ -1,5 +1,5 @@
/* Query locale dependent information for formatting numbers.
- Copyright (C) 2012-2025 Free Software Foundation, Inc.
+ Copyright (C) 2012-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/localename-environ.c b/lib/localename-environ.c
index 0d35d6bb..8985fe48 100644
--- a/lib/localename-environ.c
+++ b/lib/localename-environ.c
@@ -1,5 +1,5 @@
/* Determine name of the currently selected locale.
- Copyright (C) 1995-2025 Free Software Foundation, Inc.
+ Copyright (C) 1995-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -27,32 +27,36 @@
const char *
gl_locale_name_environ (_GL_UNUSED int category, const char *categoryname)
{
- const char *retval;
-
/* Setting of LC_ALL overrides all other. */
- retval = getenv ("LC_ALL");
- if (retval != NULL && retval[0] != '\0')
- return retval;
+ {
+ const char *retval = getenv ("LC_ALL");
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+ }
/* Next comes the name of the desired category. */
- retval = getenv (categoryname);
- if (retval != NULL && retval[0] != '\0')
- return retval;
+ {
+ const char *retval = getenv (categoryname);
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+ }
/* Last possibility is the LANG environment variable. */
- retval = getenv ("LANG");
- if (retval != NULL && retval[0] != '\0')
- {
+ {
+ const char *retval = getenv ("LANG");
+ if (retval != NULL && retval[0] != '\0')
+ {
#if HAVE_CFPREFERENCESCOPYAPPVALUE
- /* Mac OS X 10.2 or newer.
- Ignore invalid LANG value set by the Terminal application. */
- if (!streq (retval, "UTF-8"))
+ /* Mac OS X 10.2 or newer.
+ Ignore invalid LANG value set by the Terminal application. */
+ if (!streq (retval, "UTF-8"))
#endif
#if defined __CYGWIN__
- /* Cygwin.
- Ignore dummy LANG value set by ~/.profile. */
- if (!streq (retval, "C.UTF-8"))
+ /* Cygwin.
+ Ignore dummy LANG value set by ~/.profile. */
+ if (!streq (retval, "C.UTF-8"))
#endif
- return retval;
- }
+ return retval;
+ }
+ }
return NULL;
}
diff --git a/lib/localename-table.c b/lib/localename-table.c
index bc062804..3779841d 100644
--- a/lib/localename-table.c
+++ b/lib/localename-table.c
@@ -1,5 +1,5 @@
/* Table that maps a locale object to the names of the locale categories.
- Copyright (C) 2018-2025 Free Software Foundation, Inc.
+ Copyright (C) 2018-2026 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
diff --git a/lib/localename-table.h b/lib/localename-table.h
index c9982be1..59ae0a2f 100644
--- a/lib/localename-table.h
+++ b/lib/localename-table.h
@@ -1,5 +1,5 @@
/* Table that maps a locale object to the names of the locale categories.
- Copyright (C) 2018-2025 Free Software Foundation, Inc.
+ Copyright (C) 2018-2026 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
diff --git a/lib/localename-unsafe.c b/lib/localename-unsafe.c
index 08db8585..12748cba 100644
--- a/lib/localename-unsafe.c
+++ b/lib/localename-unsafe.c
@@ -1,5 +1,5 @@
/* Determine name of the currently selected locale.
- Copyright (C) 1995-2025 Free Software Foundation, Inc.
+ Copyright (C) 1995-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -1153,7 +1153,7 @@ void
gl_locale_name_canonicalize (char *name)
{
/* This conversion is based on a posting by
- Deborah GoldSmith <goldsmit@apple.com> on 2005-03-08,
+ Deborah Goldsmith <goldsmit@apple.com> on 2005-03-08,
https://lists.apple.com/archives/carbon-dev/2005/Mar/msg00293.html */
/* Convert legacy (NeXTstep inherited) English names to Unix (ISO 639 and
@@ -1387,51 +1387,55 @@ gl_locale_name_canonicalize (char *name)
/* Step 2: Convert using langtag_table and script_table. */
if (strlen (name) == 7 && name[2] == '-')
{
- unsigned int i1, i2;
- i1 = 0;
- i2 = sizeof (langtag_table) / sizeof (langtag_entry);
- while (i2 - i1 > 1)
- {
- /* At this point we know that if name occurs in langtag_table,
- its index must be >= i1 and < i2. */
- unsigned int i = (i1 + i2) >> 1;
- const langtag_entry *p = &langtag_table[i];
- if (strcmp (name, p->langtag) < 0)
- i2 = i;
- else
- i1 = i;
- }
- if (streq (name, langtag_table[i1].langtag))
- {
- strcpy (name, langtag_table[i1].unixy);
- return;
- }
+ {
+ unsigned int i1, i2;
+ i1 = 0;
+ i2 = sizeof (langtag_table) / sizeof (langtag_entry);
+ while (i2 - i1 > 1)
+ {
+ /* At this point we know that if name occurs in langtag_table,
+ its index must be >= i1 and < i2. */
+ unsigned int i = (i1 + i2) >> 1;
+ const langtag_entry *p = &langtag_table[i];
+ if (strcmp (name, p->langtag) < 0)
+ i2 = i;
+ else
+ i1 = i;
+ }
+ if (streq (name, langtag_table[i1].langtag))
+ {
+ strcpy (name, langtag_table[i1].unixy);
+ return;
+ }
+ }
- i1 = 0;
- i2 = sizeof (script_table) / sizeof (script_entry);
- while (i2 - i1 > 1)
- {
- /* At this point we know that if (name + 3) occurs in script_table,
- its index must be >= i1 and < i2. */
- unsigned int i = (i1 + i2) >> 1;
- const script_entry *p = &script_table[i];
- if (strcmp (name + 3, p->script) < 0)
- i2 = i;
- else
- i1 = i;
- }
- if (streq (name + 3, script_table[i1].script))
- {
- name[2] = '@';
- strcpy (name + 3, script_table[i1].unixy);
- return;
- }
+ {
+ unsigned int i1, i2;
+ i1 = 0;
+ i2 = sizeof (script_table) / sizeof (script_entry);
+ while (i2 - i1 > 1)
+ {
+ /* At this point we know that if (name + 3) occurs in script_table,
+ its index must be >= i1 and < i2. */
+ unsigned int i = (i1 + i2) >> 1;
+ const script_entry *p = &script_table[i];
+ if (strcmp (name + 3, p->script) < 0)
+ i2 = i;
+ else
+ i1 = i;
+ }
+ if (streq (name + 3, script_table[i1].script))
+ {
+ name[2] = '@';
+ strcpy (name + 3, script_table[i1].unixy);
+ return;
+ }
+ }
}
/* Step 3: Convert new-style dash to Unix underscore. */
{
- char *p;
- for (p = name; *p != '\0'; p++)
+ for (char *p = name; *p != '\0'; p++)
if (*p == '-')
*p = '_';
}
@@ -1454,9 +1458,7 @@ gl_locale_name_canonicalize (char *name)
{
/* FIXME: This is probably incomplete: it does not handle "zh-Hans" and
"zh-Hant". */
- char *p;
-
- for (p = name; *p != '\0'; p++)
+ for (char *p = name; *p != '\0'; p++)
if (*p == '-')
{
*p = '_';
@@ -1511,11 +1513,9 @@ gl_locale_name_from_win32_LANGID (LANGID langid)
#define N(name) (is_utf8 ? name ".UTF-8" : name)
#define NM(name,modifier) (is_utf8 ? name ".UTF-8" modifier : name modifier)
{
- int primary, sub;
-
/* Split into language and territory part. */
- primary = PRIMARYLANGID (langid);
- sub = SUBLANGID (langid);
+ int primary = PRIMARYLANGID (langid);
+ int sub = SUBLANGID (langid);
/* Dispatch on language.
See also https://www.unicode.org/unicode/onlinedat/languages.html .
@@ -2532,10 +2532,8 @@ static
const char *
gl_locale_name_from_win32_LCID (LCID lcid)
{
- LANGID langid;
-
/* Strip off the sorting rules, keep only the language part. */
- langid = LANGIDFROMLCID (lcid);
+ LANGID langid = LANGIDFROMLCID (lcid);
return gl_locale_name_from_win32_LANGID (langid);
}
@@ -2552,11 +2550,11 @@ static BOOL CALLBACK
enum_locales_fn (LPSTR locale_num_str)
{
char *endp;
- char locval[2 * LOCALE_NAME_MAX_LENGTH + 1 + 1];
LCID try_lcid = strtoul (locale_num_str, &endp, 16);
+ char locval[2 * LOCALE_NAME_MAX_LENGTH + 1 + 1];
if (GetLocaleInfo (try_lcid, LOCALE_SENGLANGUAGE,
- locval, LOCALE_NAME_MAX_LENGTH))
+ locval, LOCALE_NAME_MAX_LENGTH))
{
strcat (locval, "_");
if (GetLocaleInfo (try_lcid, LOCALE_SENGCOUNTRY,
@@ -2582,33 +2580,111 @@ static glwthread_mutex_t get_lcid_lock = GLWTHREAD_MUTEX_INIT;
/* Return the Locale ID (LCID) number given the locale's name, a
string, in LOCALE_NAME. This works by enumerating all the locales
supported by the system, until we find one whose name matches
- LOCALE_NAME. */
+ LOCALE_NAME. Return 0 if LOCALE_NAME does not correspond to a locale
+ supported by the system. */
static LCID
get_lcid (const char *locale_name)
{
- /* A simple cache. */
- static LCID last_lcid;
- static char last_locale[1000];
-
- /* Lock while looking for an LCID, to protect access to static
- variables: last_lcid, last_locale, found_lcid, and lname. */
+ /* A least-recently-used cache with at most N = 6 entries.
+ (Because there are 6 locale categories.) */
+
+ /* Number of bits for a index into the cache. */
+ enum { nbits = 3 };
+ /* Maximum number of entries in the cache. */
+ enum { N = 6 }; /* <= (1 << nbits) */
+ /* An entry in the cache. */
+ typedef struct { LCID e_lcid; char e_locale[sizeof (lname)]; } entry_t;
+ /* An unsigned integer type with at least N * nbits bits.
+ Used as an array:
+ element [0] = bits nbits-1 .. 0,
+ element [1] = bits 2*nbits-1 .. nbits,
+ element [2] = bits 3*nbits-1 .. 2*nbits,
+ and so on. */
+ typedef unsigned int indices_t;
+
+ /* Number of entries in the cache. */
+ static size_t n; /* <= N */
+ /* The entire cache. Only elements 0..n-1 are in use. */
+ static entry_t lru[N];
+ /* Indices of used cache entries. Only elements 0..n-1 are in use. */
+ static indices_t indices;
+
+ /* Lock while looking for an LCID, to protect access to static variables:
+ found_lcid, lname, and the cache. */
glwthread_mutex_lock (&get_lcid_lock);
- if (last_lcid > 0 && streq (locale_name, last_locale))
+
+ /* Look up locale_name in the cache. */
+ size_t found = (size_t)(-1);
+ size_t i;
+ for (i = 0; i < n; i++)
{
- glwthread_mutex_unlock (&get_lcid_lock);
- return last_lcid;
+ size_t j = /* indices[i] */
+ (indices >> (nbits * i)) & ((1U << nbits) - 1U);
+ if (streq (locale_name, lru[j].e_locale))
+ {
+ found = j;
+ break;
+ }
}
- strncpy (lname, locale_name, sizeof (lname) - 1);
- lname[sizeof (lname) - 1] = '\0';
- found_lcid = 0;
- EnumSystemLocales (enum_locales_fn, LCID_SUPPORTED);
- if (found_lcid > 0)
+ LCID result;
+ if (i < n)
{
- last_lcid = found_lcid;
- strcpy (last_locale, locale_name);
+ /* We have a cache hit. 0 <= found < n. */
+ result = lru[found].e_lcid;
+ if (i > 0)
+ {
+ /* Perform these assignments in parallel:
+ indices[0] := indices[i]
+ indices[1] := indices[0]
+ ...
+ indices[i] := indices[i-1] */
+ indices = (indices & (-1U << (nbits * (i + 1))))
+ | ((indices & ((1U << (nbits * i)) - 1U)) << nbits)
+ | found;
+ }
+ }
+ else
+ {
+ /* We have a cache miss. */
+ strncpy (lname, locale_name, sizeof (lname) - 1);
+ lname[sizeof (lname) - 1] = '\0';
+
+ found_lcid = 0;
+ EnumSystemLocales (enum_locales_fn, LCID_SUPPORTED);
+
+ size_t j;
+ if (n < N)
+ {
+ /* There is still room in the cache. */
+ j = n;
+ /* Perform these assignments in parallel:
+ indices[0] := n
+ indices[1] := indices[0]
+ ...
+ indices[n] := indices[n-1] */
+ indices = (indices << nbits) | n;
+ n++;
+ }
+ else /* n == N */
+ {
+ /* The cache is full. Drop the least recently used entry and
+ reuse it. */
+ j = /* indices[N-1] */
+ (indices >> (nbits * (N - 1))) & ((1U << nbits) - 1U);
+ /* Perform these assignments in parallel:
+ indices[0] := j
+ indices[1] := indices[0]
+ ...
+ indices[N-1] := indices[N-2] */
+ indices = ((indices & ((1U << (nbits * (N - 1))) - 1U)) << nbits) | j;
+ }
+ strcpy (lru[j].e_locale, lname);
+ lru[j].e_lcid = found_lcid;
+
+ result = found_lcid;
}
glwthread_mutex_unlock (&get_lcid_lock);
- return found_lcid;
+ return result;
}
# endif
@@ -2849,19 +2925,21 @@ gl_locale_name_default (void)
const char *
gl_locale_name_unsafe (int category, const char *categoryname)
{
- const char *retval;
-
if (category == LC_ALL)
/* Invalid argument. */
abort ();
- retval = gl_locale_name_thread_unsafe (category, categoryname);
- if (retval != NULL)
- return retval;
+ {
+ const char *retval = gl_locale_name_thread_unsafe (category, categoryname);
+ if (retval != NULL)
+ return retval;
+ }
- retval = gl_locale_name_posix_unsafe (category, categoryname);
- if (retval != NULL)
- return retval;
+ {
+ const char *retval = gl_locale_name_posix_unsafe (category, categoryname);
+ if (retval != NULL)
+ return retval;
+ }
return gl_locale_name_default ();
}
diff --git a/lib/localename.c b/lib/localename.c
index 2590410f..8fd3fe72 100644
--- a/lib/localename.c
+++ b/lib/localename.c
@@ -1,5 +1,5 @@
/* Determine name of the currently selected locale.
- Copyright (C) 1995-2025 Free Software Foundation, Inc.
+ Copyright (C) 1995-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -71,19 +71,21 @@ gl_locale_name_posix (int category, const char *categoryname)
const char *
gl_locale_name (int category, const char *categoryname)
{
- const char *retval;
-
if (category == LC_ALL)
/* Invalid argument. */
abort ();
- retval = gl_locale_name_thread (category, categoryname);
- if (retval != NULL)
- return retval;
-
- retval = gl_locale_name_posix (category, categoryname);
- if (retval != NULL)
- return retval;
+ {
+ const char *retval = gl_locale_name_thread (category, categoryname);
+ if (retval != NULL)
+ return retval;
+ }
+
+ {
+ const char *retval = gl_locale_name_posix (category, categoryname);
+ if (retval != NULL)
+ return retval;
+ }
return gl_locale_name_default ();
}
diff --git a/lib/localename.h b/lib/localename.h
index f2627ccc..8a53bc0b 100644
--- a/lib/localename.h
+++ b/lib/localename.h
@@ -1,5 +1,5 @@
/* Determine name of the currently selected locale.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
diff --git a/lib/malloc.c b/lib/malloc.c
index 5642c83c..f7d11921 100644
--- a/lib/malloc.c
+++ b/lib/malloc.c
@@ -1,6 +1,6 @@
/* malloc() function that is glibc compatible.
- Copyright (C) 1997-1998, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1997-1998, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/malloca.c b/lib/malloca.c
index 4bce9a3d..943140c8 100644
--- a/lib/malloca.c
+++ b/lib/malloca.c
@@ -1,5 +1,5 @@
/* Safe automatic memory allocation.
- Copyright (C) 2003, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2003, 2018.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/malloca.h b/lib/malloca.h
index f131fd5a..1ebe6916 100644
--- a/lib/malloca.h
+++ b/lib/malloca.h
@@ -1,5 +1,5 @@
/* Safe automatic memory allocation.
- Copyright (C) 2003-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2003-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2003.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/math.c b/lib/math.c
index febdf82a..8f0c9d78 100644
--- a/lib/math.c
+++ b/lib/math.c
@@ -1,6 +1,6 @@
/* Inline functions for <math.h>.
- Copyright (C) 2012-2025 Free Software Foundation, Inc.
+ Copyright (C) 2012-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/math.in.h b/lib/math.in.h
index fae66de5..14218ea0 100644
--- a/lib/math.in.h
+++ b/lib/math.in.h
@@ -1,6 +1,6 @@
/* A GNU-like <math.h>.
- Copyright (C) 2002-2003, 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002-2003, 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -288,7 +288,6 @@ _GL_CXXALIAS_SYS (acosf, float, (float x));
# endif
_GL_CXXALIASWARN (acosf);
#elif defined GNULIB_POSIXCHECK
-# undef acosf
# if HAVE_RAW_DECL_ACOSF
_GL_WARN_ON_USE (acosf, "acosf is unportable - "
"use gnulib module acosf for portability");
@@ -305,7 +304,6 @@ _GL_CXXALIAS_SYS (acosl, long double, (long double x));
_GL_CXXALIASWARN (acosl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef acosl
# if HAVE_RAW_DECL_ACOSL
_GL_WARN_ON_USE (acosl, "acosl is unportable - "
"use gnulib module acosl for portability");
@@ -330,7 +328,6 @@ _GL_CXXALIAS_SYS (asinf, float, (float x));
# endif
_GL_CXXALIASWARN (asinf);
#elif defined GNULIB_POSIXCHECK
-# undef asinf
# if HAVE_RAW_DECL_ASINF
_GL_WARN_ON_USE (asinf, "asinf is unportable - "
"use gnulib module asinf for portability");
@@ -347,7 +344,6 @@ _GL_CXXALIAS_SYS (asinl, long double, (long double x));
_GL_CXXALIASWARN (asinl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef asinl
# if HAVE_RAW_DECL_ASINL
_GL_WARN_ON_USE (asinl, "asinl is unportable - "
"use gnulib module asinl for portability");
@@ -372,7 +368,6 @@ _GL_CXXALIAS_SYS (atanf, float, (float x));
# endif
_GL_CXXALIASWARN (atanf);
#elif defined GNULIB_POSIXCHECK
-# undef atanf
# if HAVE_RAW_DECL_ATANF
_GL_WARN_ON_USE (atanf, "atanf is unportable - "
"use gnulib module atanf for portability");
@@ -389,7 +384,6 @@ _GL_CXXALIAS_SYS (atanl, long double, (long double x));
_GL_CXXALIASWARN (atanl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef atanl
# if HAVE_RAW_DECL_ATANL
_GL_WARN_ON_USE (atanl, "atanl is unportable - "
"use gnulib module atanl for portability");
@@ -414,7 +408,6 @@ _GL_CXXALIAS_SYS (atan2f, float, (float y, float x));
# endif
_GL_CXXALIASWARN (atan2f);
#elif defined GNULIB_POSIXCHECK
-# undef atan2f
# if HAVE_RAW_DECL_ATAN2F
_GL_WARN_ON_USE (atan2f, "atan2f is unportable - "
"use gnulib module atan2f for portability");
@@ -438,7 +431,6 @@ _GL_CXXALIAS_SYS (cbrtf, float, (float x));
# endif
_GL_CXXALIASWARN (cbrtf);
#elif defined GNULIB_POSIXCHECK
-# undef cbrtf
# if HAVE_RAW_DECL_CBRTF
_GL_WARN_ON_USE (cbrtf, "cbrtf is unportable - "
"use gnulib module cbrtf for portability");
@@ -454,7 +446,6 @@ _GL_CXXALIAS_SYS (cbrt, double, (double x));
_GL_CXXALIASWARN1 (cbrt, double, (double x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef cbrt
# if HAVE_RAW_DECL_CBRT
_GL_WARN_ON_USE (cbrt, "cbrt is unportable - "
"use gnulib module cbrt for portability");
@@ -479,7 +470,6 @@ _GL_CXXALIAS_SYS (cbrtl, long double, (long double x));
_GL_CXXALIASWARN (cbrtl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef cbrtl
# if HAVE_RAW_DECL_CBRTL
_GL_WARN_ON_USE (cbrtl, "cbrtl is unportable - "
"use gnulib module cbrtl for portability");
@@ -504,7 +494,6 @@ _GL_CXXALIAS_SYS (ceilf, float, (float x));
# endif
_GL_CXXALIASWARN (ceilf);
#elif defined GNULIB_POSIXCHECK
-# undef ceilf
# if HAVE_RAW_DECL_CEILF
_GL_WARN_ON_USE (ceilf, "ceilf is unportable - "
"use gnulib module ceilf for portability");
@@ -546,7 +535,6 @@ _GL_CXXALIAS_SYS (ceill, long double, (long double x));
_GL_CXXALIASWARN (ceill);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef ceill
# if HAVE_RAW_DECL_CEILL
_GL_WARN_ON_USE (ceill, "ceill is unportable - "
"use gnulib module ceill for portability");
@@ -562,7 +550,6 @@ _GL_FUNCDECL_SYS (copysignf, float, (float x, float y), );
_GL_CXXALIAS_SYS (copysignf, float, (float x, float y));
_GL_CXXALIASWARN (copysignf);
#elif defined GNULIB_POSIXCHECK
-# undef copysignf
# if HAVE_RAW_DECL_COPYSIGNF
_GL_WARN_ON_USE (copysignf, "copysignf is unportable - "
"use gnulib module copysignf for portability");
@@ -578,7 +565,6 @@ _GL_CXXALIAS_SYS (copysign, double, (double x, double y));
_GL_CXXALIASWARN1 (copysign, double, (double x, double y));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef copysign
# if HAVE_RAW_DECL_COPYSIGN
_GL_WARN_ON_USE (copysign, "copysign is unportable - "
"use gnulib module copysign for portability");
@@ -594,7 +580,6 @@ _GL_CXXALIAS_SYS (copysignl, long double, (long double x, long double y));
_GL_CXXALIASWARN (copysignl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef copysignl
# if HAVE_RAW_DECL_COPYSIGNL
_GL_WARN_ON_USE (copysign, "copysignl is unportable - "
"use gnulib module copysignl for portability");
@@ -619,7 +604,6 @@ _GL_CXXALIAS_SYS (cosf, float, (float x));
# endif
_GL_CXXALIASWARN (cosf);
#elif defined GNULIB_POSIXCHECK
-# undef cosf
# if HAVE_RAW_DECL_COSF
_GL_WARN_ON_USE (cosf, "cosf is unportable - "
"use gnulib module cosf for portability");
@@ -636,7 +620,6 @@ _GL_CXXALIAS_SYS (cosl, long double, (long double x));
_GL_CXXALIASWARN (cosl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef cosl
# if HAVE_RAW_DECL_COSL
_GL_WARN_ON_USE (cosl, "cosl is unportable - "
"use gnulib module cosl for portability");
@@ -661,7 +644,6 @@ _GL_CXXALIAS_SYS (coshf, float, (float x));
# endif
_GL_CXXALIASWARN (coshf);
#elif defined GNULIB_POSIXCHECK
-# undef coshf
# if HAVE_RAW_DECL_COSHF
_GL_WARN_ON_USE (coshf, "coshf is unportable - "
"use gnulib module coshf for portability");
@@ -686,7 +668,6 @@ _GL_CXXALIAS_SYS (expf, float, (float x));
# endif
_GL_CXXALIASWARN (expf);
#elif defined GNULIB_POSIXCHECK
-# undef expf
# if HAVE_RAW_DECL_EXPF
_GL_WARN_ON_USE (expf, "expf is unportable - "
"use gnulib module expf for portability");
@@ -712,7 +693,6 @@ _GL_CXXALIAS_SYS (expl, long double, (long double x));
_GL_CXXALIASWARN (expl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef expl
# if HAVE_RAW_DECL_EXPL
_GL_WARN_ON_USE (expl, "expl is unportable - "
"use gnulib module expl for portability");
@@ -727,7 +707,6 @@ _GL_FUNCDECL_SYS (exp2f, float, (float x), );
_GL_CXXALIAS_SYS (exp2f, float, (float x));
_GL_CXXALIASWARN (exp2f);
#elif defined GNULIB_POSIXCHECK
-# undef exp2f
# if HAVE_RAW_DECL_EXP2F
_GL_WARN_ON_USE (exp2f, "exp2f is unportable - "
"use gnulib module exp2f for portability");
@@ -752,7 +731,6 @@ _GL_CXXALIAS_SYS (exp2, double, (double x));
_GL_CXXALIASWARN1 (exp2, double, (double x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef exp2
# if HAVE_RAW_DECL_EXP2
_GL_WARN_ON_USE (exp2, "exp2 is unportable - "
"use gnulib module exp2 for portability");
@@ -778,7 +756,6 @@ _GL_CXXALIAS_SYS (exp2l, long double, (long double x));
_GL_CXXALIASWARN (exp2l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef exp2l
# if HAVE_RAW_DECL_EXP2L
_GL_WARN_ON_USE (exp2l, "exp2l is unportable - "
"use gnulib module exp2l for portability");
@@ -802,7 +779,6 @@ _GL_CXXALIAS_SYS (expm1f, float, (float x));
# endif
_GL_CXXALIASWARN (expm1f);
#elif defined GNULIB_POSIXCHECK
-# undef expm1f
# if HAVE_RAW_DECL_EXPM1F
_GL_WARN_ON_USE (expm1f, "expm1f is unportable - "
"use gnulib module expm1f for portability");
@@ -827,7 +803,6 @@ _GL_CXXALIAS_SYS (expm1, double, (double x));
_GL_CXXALIASWARN1 (expm1, double, (double x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef expm1
# if HAVE_RAW_DECL_EXPM1
_GL_WARN_ON_USE (expm1, "expm1 is unportable - "
"use gnulib module expm1 for portability");
@@ -855,7 +830,6 @@ _GL_CXXALIAS_SYS (expm1l, long double, (long double x));
_GL_CXXALIASWARN (expm1l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef expm1l
# if HAVE_RAW_DECL_EXPM1L
_GL_WARN_ON_USE (expm1l, "expm1l is unportable - "
"use gnulib module expm1l for portability");
@@ -873,7 +847,6 @@ _GL_CXXALIAS_SYS (fabsf, float, (float x));
_GL_CXXALIASWARN (fabsf);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef fabsf
# if HAVE_RAW_DECL_FABSF
_GL_WARN_ON_USE (fabsf, "fabsf is unportable - "
"use gnulib module fabsf for portability");
@@ -899,7 +872,6 @@ _GL_CXXALIAS_SYS (fabsl, long double, (long double x));
_GL_CXXALIASWARN (fabsl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef fabsl
# if HAVE_RAW_DECL_FABSL
_GL_WARN_ON_USE (fabsl, "fabsl is unportable - "
"use gnulib module fabsl for portability");
@@ -924,7 +896,6 @@ _GL_CXXALIAS_SYS (floorf, float, (float x));
# endif
_GL_CXXALIASWARN (floorf);
#elif defined GNULIB_POSIXCHECK
-# undef floorf
# if HAVE_RAW_DECL_FLOORF
_GL_WARN_ON_USE (floorf, "floorf is unportable - "
"use gnulib module floorf for portability");
@@ -966,7 +937,6 @@ _GL_CXXALIAS_SYS (floorl, long double, (long double x));
_GL_CXXALIASWARN (floorl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef floorl
# if HAVE_RAW_DECL_FLOORL
_GL_WARN_ON_USE (floorl, "floorl is unportable - "
"use gnulib module floorl for portability");
@@ -991,7 +961,6 @@ _GL_CXXALIAS_SYS (fmaf, float, (float x, float y, float z));
# endif
_GL_CXXALIASWARN (fmaf);
#elif defined GNULIB_POSIXCHECK
-# undef fmaf
# if HAVE_RAW_DECL_FMAF
_GL_WARN_ON_USE (fmaf, "fmaf is unportable - "
"use gnulib module fmaf for portability");
@@ -1017,7 +986,6 @@ _GL_CXXALIAS_SYS (fma, double, (double x, double y, double z));
_GL_CXXALIASWARN1 (fma, double, (double x, double y, double z));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef fma
# if HAVE_RAW_DECL_FMA
_GL_WARN_ON_USE (fma, "fma is unportable - "
"use gnulib module fma for portability");
@@ -1049,7 +1017,6 @@ _GL_CXXALIAS_SYS (fmal, long double,
_GL_CXXALIASWARN (fmal);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef fmal
# if HAVE_RAW_DECL_FMAL
_GL_WARN_ON_USE (fmal, "fmal is unportable - "
"use gnulib module fmal for portability");
@@ -1074,7 +1041,6 @@ _GL_CXXALIAS_SYS (fmodf, float, (float x, float y));
# endif
_GL_CXXALIASWARN (fmodf);
#elif defined GNULIB_POSIXCHECK
-# undef fmodf
# if HAVE_RAW_DECL_FMODF
_GL_WARN_ON_USE (fmodf, "fmodf is unportable - "
"use gnulib module fmodf for portability");
@@ -1096,7 +1062,6 @@ _GL_CXXALIAS_SYS (fmod, double, (double x, double y));
_GL_CXXALIASWARN1 (fmod, double, (double x, double y));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef fmod
# if HAVE_RAW_DECL_FMOD
_GL_WARN_ON_USE (fmod, "fmod has portability problems - "
"use gnulib module fmod for portability");
@@ -1122,7 +1087,6 @@ _GL_CXXALIAS_SYS (fmodl, long double, (long double x, long double y));
_GL_CXXALIASWARN (fmodl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef fmodl
# if HAVE_RAW_DECL_FMODL
_GL_WARN_ON_USE (fmodl, "fmodl is unportable - "
"use gnulib module fmodl for portability");
@@ -1156,7 +1120,6 @@ _GL_CXXALIAS_SYS (frexpf, float, (float x, int *expptr));
_GL_CXXALIASWARN (frexpf);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef frexpf
# if HAVE_RAW_DECL_FREXPF
_GL_WARN_ON_USE (frexpf, "frexpf is unportable - "
"use gnulib module frexpf for portability");
@@ -1188,8 +1151,10 @@ _GL_CXXALIASWARN1 (frexp, double, (double x, int *expptr));
#elif defined GNULIB_POSIXCHECK
# undef frexp
/* Assume frexp is always declared. */
-_GL_WARN_ON_USE (frexp, "frexp is unportable - "
- "use gnulib module frexp for portability");
+_GL_WARN_ON_USE_CXX (frexp,
+ double, double, (double, int *),
+ "frexp is unportable - "
+ "use gnulib module frexp for portability");
#endif
/* Write x as
@@ -1222,7 +1187,6 @@ _GL_CXXALIASWARN (frexpl);
# endif
#endif
#if !@GNULIB_FREXPL@ && defined GNULIB_POSIXCHECK
-# undef frexpl
# if HAVE_RAW_DECL_FREXPL
_GL_WARN_ON_USE (frexpl, "frexpl is unportable - "
"use gnulib module frexpl for portability");
@@ -1249,7 +1213,6 @@ _GL_CXXALIAS_SYS (hypotf, float, (float x, float y));
_GL_CXXALIASWARN (hypotf);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef hypotf
# if HAVE_RAW_DECL_HYPOTF
_GL_WARN_ON_USE (hypotf, "hypotf is unportable - "
"use gnulib module hypotf for portability");
@@ -1272,7 +1235,6 @@ _GL_CXXALIAS_SYS (hypot, double, (double x, double y));
_GL_CXXALIASWARN1 (hypot, double, (double x, double y));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef hypot
# if HAVE_RAW_DECL_HYPOT
_GL_WARN_ON_USE (hypotf, "hypot has portability problems - "
"use gnulib module hypot for portability");
@@ -1298,7 +1260,6 @@ _GL_CXXALIAS_SYS (hypotl, long double, (long double x, long double y));
_GL_CXXALIASWARN (hypotl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef hypotl
# if HAVE_RAW_DECL_HYPOTL
_GL_WARN_ON_USE (hypotl, "hypotl is unportable - "
"use gnulib module hypotl for portability");
@@ -1322,7 +1283,6 @@ _GL_CXXALIAS_SYS (ilogbf, int, (float x));
# endif
_GL_CXXALIASWARN (ilogbf);
#elif defined GNULIB_POSIXCHECK
-# undef ilogbf
# if HAVE_RAW_DECL_ILOGBF
_GL_WARN_ON_USE (ilogbf, "ilogbf is unportable - "
"use gnulib module ilogbf for portability");
@@ -1347,7 +1307,6 @@ _GL_CXXALIAS_SYS (ilogb, int, (double x));
_GL_CXXALIASWARN1 (ilogb, int, (double x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef ilogb
# if HAVE_RAW_DECL_ILOGB
_GL_WARN_ON_USE (ilogb, "ilogb is unportable - "
"use gnulib module ilogb for portability");
@@ -1373,7 +1332,6 @@ _GL_CXXALIAS_SYS (ilogbl, int, (long double x));
_GL_CXXALIASWARN (ilogbl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef ilogbl
# if HAVE_RAW_DECL_ILOGBL
_GL_WARN_ON_USE (ilogbl, "ilogbl is unportable - "
"use gnulib module ilogbl for portability");
@@ -1441,7 +1399,6 @@ _GL_CXXALIAS_SYS (ldexpf, float, (float x, int exp));
_GL_CXXALIASWARN (ldexpf);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef ldexpf
# if HAVE_RAW_DECL_LDEXPF
_GL_WARN_ON_USE (ldexpf, "ldexpf is unportable - "
"use gnulib module ldexpf for portability");
@@ -1467,8 +1424,10 @@ _GL_CXXALIASWARN1 (ldexp, double, (double x, int exp));
#elif defined GNULIB_POSIXCHECK
# undef ldexp
/* Assume ldexp is always declared. */
-_GL_WARN_ON_USE (ldexp, "ldexp is unportable - "
- "use gnulib module ldexp for portability");
+_GL_WARN_ON_USE_CXX (ldexp,
+ double, double, (double, int),
+ "ldexp is unportable - "
+ "use gnulib module ldexp for portability");
#endif
/* Return x * 2^exp. */
@@ -1493,7 +1452,6 @@ _GL_CXXALIASWARN (ldexpl);
# endif
#endif
#if !@GNULIB_LDEXPL@ && defined GNULIB_POSIXCHECK
-# undef ldexpl
# if HAVE_RAW_DECL_LDEXPL
_GL_WARN_ON_USE (ldexpl, "ldexpl is unportable - "
"use gnulib module ldexpl for portability");
@@ -1518,7 +1476,6 @@ _GL_CXXALIAS_SYS (logf, float, (float x));
# endif
_GL_CXXALIASWARN (logf);
#elif defined GNULIB_POSIXCHECK
-# undef logf
# if HAVE_RAW_DECL_LOGF
_GL_WARN_ON_USE (logf, "logf is unportable - "
"use gnulib module logf for portability");
@@ -1540,7 +1497,6 @@ _GL_CXXALIAS_SYS (log, double, (double x));
_GL_CXXALIASWARN1 (log, double, (double x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef log
# if HAVE_RAW_DECL_LOG
_GL_WARN_ON_USE (log, "log has portability problems - "
"use gnulib module log for portability");
@@ -1566,7 +1522,6 @@ _GL_CXXALIAS_SYS (logl, long double, (long double x));
_GL_CXXALIASWARN (logl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef logl
# if HAVE_RAW_DECL_LOGL
_GL_WARN_ON_USE (logl, "logl is unportable - "
"use gnulib module logl for portability");
@@ -1591,7 +1546,6 @@ _GL_CXXALIAS_SYS (log10f, float, (float x));
# endif
_GL_CXXALIASWARN (log10f);
#elif defined GNULIB_POSIXCHECK
-# undef log10f
# if HAVE_RAW_DECL_LOG10F
_GL_WARN_ON_USE (log10f, "log10f is unportable - "
"use gnulib module log10f for portability");
@@ -1613,7 +1567,6 @@ _GL_CXXALIAS_SYS (log10, double, (double x));
_GL_CXXALIASWARN1 (log10, double, (double x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef log10
# if HAVE_RAW_DECL_LOG10
_GL_WARN_ON_USE (log10, "log10 has portability problems - "
"use gnulib module log10 for portability");
@@ -1639,7 +1592,6 @@ _GL_CXXALIAS_SYS (log10l, long double, (long double x));
_GL_CXXALIASWARN (log10l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef log10l
# if HAVE_RAW_DECL_LOG10L
_GL_WARN_ON_USE (log10l, "log10l is unportable - "
"use gnulib module log10l for portability");
@@ -1663,7 +1615,6 @@ _GL_CXXALIAS_SYS (log1pf, float, (float x));
# endif
_GL_CXXALIASWARN (log1pf);
#elif defined GNULIB_POSIXCHECK
-# undef log1pf
# if HAVE_RAW_DECL_LOG1PF
_GL_WARN_ON_USE (log1pf, "log1pf is unportable - "
"use gnulib module log1pf for portability");
@@ -1688,7 +1639,6 @@ _GL_CXXALIAS_SYS (log1p, double, (double x));
_GL_CXXALIASWARN1 (log1p, double, (double x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef log1p
# if HAVE_RAW_DECL_LOG1P
_GL_WARN_ON_USE (log1p, "log1p has portability problems - "
"use gnulib module log1p for portability");
@@ -1713,7 +1663,6 @@ _GL_CXXALIAS_SYS (log1pl, long double, (long double x));
_GL_CXXALIASWARN (log1pl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef log1pl
# if HAVE_RAW_DECL_LOG1PL
_GL_WARN_ON_USE (log1pl, "log1pl has portability problems - "
"use gnulib module log1pl for portability");
@@ -1740,7 +1689,6 @@ _GL_CXXALIAS_SYS (log2f, float, (float x));
_GL_CXXALIASWARN (log2f);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef log2f
# if HAVE_RAW_DECL_LOG2F
_GL_WARN_ON_USE (log2f, "log2f is unportable - "
"use gnulib module log2f for portability");
@@ -1766,7 +1714,6 @@ _GL_CXXALIAS_SYS (log2, double, (double x));
_GL_CXXALIASWARN1 (log2, double, (double x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef log2
# if HAVE_RAW_DECL_LOG2
_GL_WARN_ON_USE (log2, "log2 is unportable - "
"use gnulib module log2 for portability");
@@ -1791,7 +1738,6 @@ _GL_CXXALIAS_SYS (log2l, long double, (long double x));
_GL_CXXALIASWARN (log2l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef log2l
# if HAVE_RAW_DECL_LOG2L
_GL_WARN_ON_USE (log2l, "log2l is unportable - "
"use gnulib module log2l for portability");
@@ -1815,7 +1761,6 @@ _GL_CXXALIAS_SYS (logbf, float, (float x));
# endif
_GL_CXXALIASWARN (logbf);
#elif defined GNULIB_POSIXCHECK
-# undef logbf
# if HAVE_RAW_DECL_LOGBF
_GL_WARN_ON_USE (logbf, "logbf is unportable - "
"use gnulib module logbf for portability");
@@ -1840,7 +1785,6 @@ _GL_CXXALIAS_SYS (logb, double, (double x));
_GL_CXXALIASWARN1 (logb, double, (double x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef logb
# if HAVE_RAW_DECL_LOGB
_GL_WARN_ON_USE (logb, "logb is unportable - "
"use gnulib module logb for portability");
@@ -1865,7 +1809,6 @@ _GL_CXXALIAS_SYS (logbl, long double, (long double x));
_GL_CXXALIASWARN (logbl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef logbl
# if HAVE_RAW_DECL_LOGBL
_GL_WARN_ON_USE (logbl, "logbl is unportable - "
"use gnulib module logbl for portability");
@@ -1882,7 +1825,6 @@ _GL_CXXALIAS_SYS (logp1f, float, (float x));
_GL_CXXALIASWARN1 (logp1f, float, (float x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef logp1f
# if HAVE_RAW_DECL_LOGP1F
_GL_WARN_ON_USE (logp1f, "logp1f is unportable - "
"use gnulib module logp1f for portability");
@@ -1898,7 +1840,6 @@ _GL_CXXALIAS_SYS (logp1, double, (double x));
_GL_CXXALIASWARN1 (logp1, double, (double x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef logp1
# if HAVE_RAW_DECL_LOGP1
_GL_WARN_ON_USE (logp1, "logp1 is unportable - "
"use gnulib module logp1 for portability");
@@ -1914,7 +1855,6 @@ _GL_CXXALIAS_SYS (logp1l, long double, (long double x));
_GL_CXXALIASWARN1 (logp1l, long double, (long double x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef logp1l
# if HAVE_RAW_DECL_LOGP1L
_GL_WARN_ON_USE (logp1l, "logp1l is unportable - "
"use gnulib module logp1l for portability");
@@ -1939,7 +1879,6 @@ _GL_CXXALIAS_SYS (modff, float, (float x, float *iptr));
# endif
_GL_CXXALIASWARN (modff);
#elif defined GNULIB_POSIXCHECK
-# undef modff
# if HAVE_RAW_DECL_MODFF
_GL_WARN_ON_USE (modff, "modff is unportable - "
"use gnulib module modff for portability");
@@ -1962,7 +1901,6 @@ _GL_CXXALIAS_SYS (modf, double, (double x, double *iptr));
_GL_CXXALIASWARN1 (modf, double, (double x, double *iptr));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef modf
# if HAVE_RAW_DECL_MODF
_GL_WARN_ON_USE (modf, "modf has portability problems - "
"use gnulib module modf for portability");
@@ -1990,7 +1928,6 @@ _GL_CXXALIAS_SYS (modfl, long double, (long double x, long double *iptr));
_GL_CXXALIASWARN (modfl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef modfl
# if HAVE_RAW_DECL_MODFL
_GL_WARN_ON_USE (modfl, "modfl is unportable - "
"use gnulib module modfl for portability");
@@ -2006,7 +1943,6 @@ _GL_FUNCDECL_SYS (powf, float, (float x, float y), );
_GL_CXXALIAS_SYS (powf, float, (float x, float y));
_GL_CXXALIASWARN (powf);
#elif defined GNULIB_POSIXCHECK
-# undef powf
# if HAVE_RAW_DECL_POWF
_GL_WARN_ON_USE (powf, "powf is unportable - "
"use gnulib module powf for portability");
@@ -2030,7 +1966,6 @@ _GL_CXXALIAS_SYS (remainderf, float, (float x, float y));
# endif
_GL_CXXALIASWARN (remainderf);
#elif defined GNULIB_POSIXCHECK
-# undef remainderf
# if HAVE_RAW_DECL_REMAINDERF
_GL_WARN_ON_USE (remainderf, "remainderf is unportable - "
"use gnulib module remainderf for portability");
@@ -2055,7 +1990,6 @@ _GL_CXXALIAS_SYS (remainder, double, (double x, double y));
_GL_CXXALIASWARN1 (remainder, double, (double x, double y));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef remainder
# if HAVE_RAW_DECL_REMAINDER
_GL_WARN_ON_USE (remainder, "remainder is unportable - "
"use gnulib module remainder for portability");
@@ -2083,7 +2017,6 @@ _GL_CXXALIAS_SYS (remainderl, long double, (long double x, long double y));
_GL_CXXALIASWARN (remainderl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef remainderl
# if HAVE_RAW_DECL_REMAINDERL
_GL_WARN_ON_USE (remainderl, "remainderl is unportable - "
"use gnulib module remainderl for portability");
@@ -2098,7 +2031,6 @@ _GL_FUNCDECL_SYS (rintf, float, (float x), );
_GL_CXXALIAS_SYS (rintf, float, (float x));
_GL_CXXALIASWARN (rintf);
#elif defined GNULIB_POSIXCHECK
-# undef rintf
# if HAVE_RAW_DECL_RINTF
_GL_WARN_ON_USE (rintf, "rintf is unportable - "
"use gnulib module rintf for portability");
@@ -2114,7 +2046,6 @@ _GL_CXXALIAS_SYS (rint, double, (double x));
_GL_CXXALIASWARN1 (rint, double, (double x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef rint
# if HAVE_RAW_DECL_RINT
_GL_WARN_ON_USE (rint, "rint is unportable - "
"use gnulib module rint for portability");
@@ -2139,7 +2070,6 @@ _GL_CXXALIAS_SYS (rintl, long double, (long double x));
_GL_CXXALIASWARN (rintl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef rintl
# if HAVE_RAW_DECL_RINTL
_GL_WARN_ON_USE (rintl, "rintl is unportable - "
"use gnulib module rintl for portability");
@@ -2163,7 +2093,6 @@ _GL_CXXALIAS_SYS (roundf, float, (float x));
# endif
_GL_CXXALIASWARN (roundf);
#elif defined GNULIB_POSIXCHECK
-# undef roundf
# if HAVE_RAW_DECL_ROUNDF
_GL_WARN_ON_USE (roundf, "roundf is unportable - "
"use gnulib module roundf for portability");
@@ -2188,7 +2117,6 @@ _GL_CXXALIAS_SYS (round, double, (double x));
_GL_CXXALIASWARN1 (round, double, (double x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef round
# if HAVE_RAW_DECL_ROUND
_GL_WARN_ON_USE (round, "round is unportable - "
"use gnulib module round for portability");
@@ -2216,7 +2144,6 @@ _GL_CXXALIAS_SYS (roundl, long double, (long double x));
_GL_CXXALIASWARN (roundl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef roundl
# if HAVE_RAW_DECL_ROUNDL
_GL_WARN_ON_USE (roundl, "roundl is unportable - "
"use gnulib module roundl for portability");
@@ -2241,7 +2168,6 @@ _GL_CXXALIAS_SYS (sinf, float, (float x));
# endif
_GL_CXXALIASWARN (sinf);
#elif defined GNULIB_POSIXCHECK
-# undef sinf
# if HAVE_RAW_DECL_SINF
_GL_WARN_ON_USE (sinf, "sinf is unportable - "
"use gnulib module sinf for portability");
@@ -2249,16 +2175,24 @@ _GL_WARN_ON_USE (sinf, "sinf is unportable - "
#endif
#if @GNULIB_SINL@
-# if !@HAVE_SINL@ || !@HAVE_DECL_SINL@
-# undef sinl
+# if @REPLACE_SINL@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef sinl
+# define sinl rpl_sinl
+# endif
+_GL_FUNCDECL_RPL (sinl, long double, (long double x), );
+_GL_CXXALIAS_RPL (sinl, long double, (long double x));
+# else
+# if !@HAVE_SINL@ || !@HAVE_DECL_SINL@
+# undef sinl
_GL_FUNCDECL_SYS (sinl, long double, (long double x), );
-# endif
+# endif
_GL_CXXALIAS_SYS (sinl, long double, (long double x));
+# endif
# if __GLIBC__ >= 2
_GL_CXXALIASWARN (sinl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef sinl
# if HAVE_RAW_DECL_SINL
_GL_WARN_ON_USE (sinl, "sinl is unportable - "
"use gnulib module sinl for portability");
@@ -2283,7 +2217,6 @@ _GL_CXXALIAS_SYS (sinhf, float, (float x));
# endif
_GL_CXXALIASWARN (sinhf);
#elif defined GNULIB_POSIXCHECK
-# undef sinhf
# if HAVE_RAW_DECL_SINHF
_GL_WARN_ON_USE (sinhf, "sinhf is unportable - "
"use gnulib module sinhf for portability");
@@ -2308,7 +2241,6 @@ _GL_CXXALIAS_SYS (sqrtf, float, (float x));
# endif
_GL_CXXALIASWARN (sqrtf);
#elif defined GNULIB_POSIXCHECK
-# undef sqrtf
# if HAVE_RAW_DECL_SQRTF
_GL_WARN_ON_USE (sqrtf, "sqrtf is unportable - "
"use gnulib module sqrtf for portability");
@@ -2334,7 +2266,6 @@ _GL_CXXALIAS_SYS (sqrtl, long double, (long double x));
_GL_CXXALIASWARN (sqrtl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef sqrtl
# if HAVE_RAW_DECL_SQRTL
_GL_WARN_ON_USE (sqrtl, "sqrtl is unportable - "
"use gnulib module sqrtl for portability");
@@ -2359,7 +2290,6 @@ _GL_CXXALIAS_SYS (tanf, float, (float x));
# endif
_GL_CXXALIASWARN (tanf);
#elif defined GNULIB_POSIXCHECK
-# undef tanf
# if HAVE_RAW_DECL_TANF
_GL_WARN_ON_USE (tanf, "tanf is unportable - "
"use gnulib module tanf for portability");
@@ -2376,7 +2306,6 @@ _GL_CXXALIAS_SYS (tanl, long double, (long double x));
_GL_CXXALIASWARN (tanl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef tanl
# if HAVE_RAW_DECL_TANL
_GL_WARN_ON_USE (tanl, "tanl is unportable - "
"use gnulib module tanl for portability");
@@ -2401,7 +2330,6 @@ _GL_CXXALIAS_SYS (tanhf, float, (float x));
# endif
_GL_CXXALIASWARN (tanhf);
#elif defined GNULIB_POSIXCHECK
-# undef tanhf
# if HAVE_RAW_DECL_TANHF
_GL_WARN_ON_USE (tanhf, "tanhf is unportable - "
"use gnulib module tanhf for portability");
@@ -2425,7 +2353,6 @@ _GL_CXXALIAS_SYS (truncf, float, (float x));
# endif
_GL_CXXALIASWARN (truncf);
#elif defined GNULIB_POSIXCHECK
-# undef truncf
# if HAVE_RAW_DECL_TRUNCF
_GL_WARN_ON_USE (truncf, "truncf is unportable - "
"use gnulib module truncf for portability");
@@ -2450,7 +2377,6 @@ _GL_CXXALIAS_SYS (trunc, double, (double x));
_GL_CXXALIASWARN1 (trunc, double, (double x));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef trunc
# if HAVE_RAW_DECL_TRUNC
_GL_WARN_ON_USE (trunc, "trunc is unportable - "
"use gnulib module trunc for portability");
@@ -2475,7 +2401,6 @@ _GL_CXXALIAS_SYS (truncl, long double, (long double x));
_GL_CXXALIASWARN (truncl);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef truncl
# if HAVE_RAW_DECL_TRUNCL
_GL_WARN_ON_USE (truncl, "truncl is unportable - "
"use gnulib module truncl for portability");
@@ -2536,22 +2461,29 @@ _GL_CXXALIASWARN (yn);
declarations. */
-#if @GNULIB_ISFINITE@
+#if @GNULIB_ISFINITE@ || @GNULIB_ISFINITE_NO_CXX@
# if @REPLACE_ISFINITE@
_GL_EXTERN_C int gl_isfinitef (float x);
_GL_EXTERN_C int gl_isfinited (double x);
_GL_EXTERN_C int gl_isfinitel (long double x);
-# undef isfinite
-# define isfinite(x) \
- (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \
- sizeof (x) == sizeof (double) ? gl_isfinited (x) : \
- gl_isfinitef (x))
+# ifdef __cplusplus
+template <typename T> int isfinite (T);
+template <> inline int isfinite<float> (float x) { return gl_isfinitef (x); }
+template <> inline int isfinite<double> (double x) { return gl_isfinited (x); }
+template <> inline int isfinite<long double> (long double x) { return gl_isfinitel (x); }
+# else
+# undef isfinite
+# define isfinite(x) \
+ (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \
+ sizeof (x) == sizeof (double) ? gl_isfinited (x) : \
+ gl_isfinitef (x))
+# endif
# endif
-# ifdef __cplusplus
+# if @GNULIB_ISFINITE@ && defined __cplusplus
# if defined isfinite || defined GNULIB_NAMESPACE
_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite)
# undef isfinite
-# if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined _AIX || (defined _WIN32 && !defined __CYGWIN__)))
+# if __GNUC__ >= 6 || (defined __clang__ && (__clang_major__ >= 19 || !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined _AIX || (defined _WIN32 && !defined __CYGWIN__))))
/* This platform's <cmath> possibly defines isfinite through a set of inline
functions. */
_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, rpl_isfinite, bool)
@@ -2571,18 +2503,25 @@ _GL_WARN_REAL_FLOATING_DECL (isfinite);
#endif
-#if @GNULIB_ISINF@
+#if @GNULIB_ISINF@ || @GNULIB_ISINF_NO_CXX@
# if @REPLACE_ISINF@
_GL_EXTERN_C int gl_isinff (float x);
_GL_EXTERN_C int gl_isinfd (double x);
_GL_EXTERN_C int gl_isinfl (long double x);
-# undef isinf
-# define isinf(x) \
- (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \
- sizeof (x) == sizeof (double) ? gl_isinfd (x) : \
- gl_isinff (x))
+# ifdef __cplusplus
+template <typename T> int isinf (T);
+template <> inline int isinf<float> (float x) { return gl_isinff (x); }
+template <> inline int isinf<double> (double x) { return gl_isinfd (x); }
+template <> inline int isinf<long double> (long double x) { return gl_isinfl (x); }
+# else
+# undef isinf
+# define isinf(x) \
+ (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \
+ sizeof (x) == sizeof (double) ? gl_isinfd (x) : \
+ gl_isinff (x))
+# endif
# endif
-# ifdef __cplusplus
+# if @GNULIB_ISINF@ && defined __cplusplus
# if defined isinf || defined GNULIB_NAMESPACE
_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf)
# undef isinf
@@ -2686,7 +2625,7 @@ _GL_EXTERN_C int isnanl (long double x) _GL_ATTRIBUTE_CONST;
#endif
/* This must come *after* the snippets for GNULIB_ISNANF and GNULIB_ISNANL! */
-#if @GNULIB_ISNAN@
+#if @GNULIB_ISNAN@ || @GNULIB_ISNAN_NO_CXX@
# if @REPLACE_ISNAN@
/* We can't just use the isnanf macro (e.g.) as exposed by
isnanf.h (e.g.) here, because those may end up being macros
@@ -2710,19 +2649,35 @@ _GL_EXTERN_C int rpl_isnand (double x);
_GL_EXTERN_C int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST;
# define gl_isnan_l(x) rpl_isnanl (x)
# endif
-# undef isnan
-# define isnan(x) \
- (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \
- sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \
- gl_isnan_f (x))
+# ifdef __cplusplus
+# undef isnan
+template <typename T> int isnan (T);
+template <> inline int isnan<float> (float x) { return gl_isnan_f (x); }
+template <> inline int isnan<double> (double x) { return gl_isnan_d (x); }
+template <> inline int isnan<long double> (long double x) { return gl_isnan_l (x); }
+# else
+# undef isnan
+# define isnan(x) \
+ (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \
+ sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \
+ gl_isnan_f (x))
+# endif
# elif (__GNUC__ >= 4) || (__clang_major__ >= 4)
-# undef isnan
-# define isnan(x) \
- (sizeof (x) == sizeof (long double) ? __builtin_isnan ((long double)(x)) : \
- sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \
- __builtin_isnan ((float)(x)))
+# ifdef __cplusplus
+# undef isnan
+template <typename T> int isnan (T);
+template <> inline int isnan<float> (float x) { return __builtin_isnan (x); }
+template <> inline int isnan<double> (double x) { return __builtin_isnan (x); }
+template <> inline int isnan<long double> (long double x) { return __builtin_isnan (x); }
+# else
+# undef isnan
+# define isnan(x) \
+ (sizeof (x) == sizeof (long double) ? __builtin_isnan ((long double)(x)) : \
+ sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \
+ __builtin_isnan ((float)(x)))
+# endif
# endif
-# ifdef __cplusplus
+# if @GNULIB_ISNAN@ && defined __cplusplus
# if defined isnan || defined GNULIB_NAMESPACE
_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan)
# undef isnan
@@ -2756,15 +2711,22 @@ _GL_WARN_REAL_FLOATING_DECL (isnan);
#endif
-#if @GNULIB_SIGNBIT@
+#if @GNULIB_SIGNBIT@ || @GNULIB_SIGNBIT_NO_CXX@
# if (@REPLACE_SIGNBIT_USING_BUILTINS@ \
&& (!defined __cplusplus || __cplusplus < 201103))
# undef signbit
/* GCC >= 4.0 and clang provide three built-ins for signbit. */
-# define signbit(x) \
- (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \
- sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \
- __builtin_signbitf (x))
+# if defined __cplusplus && !defined __clang__
+template <typename T> int signbit (T);
+template <> inline int signbit<float> (float x) { return __builtin_signbitf (x); }
+template <> inline int signbit<double> (double x) { return __builtin_signbit (x); }
+template <> inline int signbit<long double> (long double x) { return __builtin_signbitl (x); }
+# else
+# define signbit(x) \
+ (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \
+ sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \
+ __builtin_signbitf (x))
+# endif
# endif
# if @REPLACE_SIGNBIT@ && !GNULIB_defined_signbit
# undef signbit
@@ -2808,13 +2770,20 @@ _GL_EXTERN_C int gl_signbitl (long double arg);
})
# endif
# endif
-# define signbit(x) \
- (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \
- sizeof (x) == sizeof (double) ? gl_signbitd (x) : \
- gl_signbitf (x))
+# if defined __cplusplus && !defined __clang__
+template <typename T> int signbit (T);
+template <> inline int signbit<float> (float x) { return gl_signbitf (x); }
+template <> inline int signbit<double> (double x) { return gl_signbitd (x); }
+template <> inline int signbit<long double> (long double x) { return gl_signbitl (x); }
+# else
+# define signbit(x) \
+ (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \
+ sizeof (x) == sizeof (double) ? gl_signbitd (x) : \
+ gl_signbitf (x))
+# endif
# define GNULIB_defined_signbit 1
# endif
-# ifdef __cplusplus
+# if @GNULIB_SIGNBIT@ && defined __cplusplus
# if defined signbit || defined GNULIB_NAMESPACE
_GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit)
# undef signbit
@@ -2854,7 +2823,6 @@ _GL_CXXALIAS_SYS (getpayloadf, float, (const float *));
# endif
_GL_CXXALIASWARN (getpayloadf);
#elif defined GNULIB_POSIXCHECK
-# undef getpayloadf
# if HAVE_RAW_DECL_GETPAYLOADF
_GL_WARN_ON_USE (getpayloadf, "getpayloadf is unportable - "
"use gnulib module getpayloadf for portability");
@@ -2877,7 +2845,6 @@ _GL_CXXALIAS_SYS (getpayload, double, (const double *));
# endif
_GL_CXXALIASWARN (getpayload);
#elif defined GNULIB_POSIXCHECK
-# undef getpayload
# if HAVE_RAW_DECL_GETPAYLOAD
_GL_WARN_ON_USE (getpayload, "getpayload is unportable - "
"use gnulib module getpayload for portability");
@@ -2900,7 +2867,6 @@ _GL_CXXALIAS_SYS (getpayloadl, long double, (const long double *));
# endif
_GL_CXXALIASWARN (getpayloadl);
#elif defined GNULIB_POSIXCHECK
-# undef getpayloadl
# if HAVE_RAW_DECL_GETPAYLOADL
_GL_WARN_ON_USE (getpayloadl, "getpayloadl is unportable - "
"use gnulib module getpayloadl for portability");
@@ -2915,7 +2881,6 @@ _GL_FUNCDECL_SYS (setpayloadf, int, (float *, float), );
_GL_CXXALIAS_SYS (setpayloadf, int, (float *, float));
_GL_CXXALIASWARN (setpayloadf);
#elif defined GNULIB_POSIXCHECK
-# undef setpayloadf
# if HAVE_RAW_DECL_SETPAYLOADF
_GL_WARN_ON_USE (setpayloadf, "setpayloadf is unportable - "
"use gnulib module setpayloadf for portability");
@@ -2929,7 +2894,6 @@ _GL_FUNCDECL_SYS (setpayload, int, (double *, double), );
_GL_CXXALIAS_SYS (setpayload, int, (double *, double));
_GL_CXXALIASWARN (setpayload);
#elif defined GNULIB_POSIXCHECK
-# undef setpayload
# if HAVE_RAW_DECL_SETPAYLOAD
_GL_WARN_ON_USE (setpayload, "setpayload is unportable - "
"use gnulib module setpayload for portability");
@@ -2943,7 +2907,6 @@ _GL_FUNCDECL_SYS (setpayloadl, int, (long double *, long double), );
_GL_CXXALIAS_SYS (setpayloadl, int, (long double *, long double));
_GL_CXXALIASWARN (setpayloadl);
#elif defined GNULIB_POSIXCHECK
-# undef setpayloadl
# if HAVE_RAW_DECL_SETPAYLOADL
_GL_WARN_ON_USE (setpayloadl, "setpayloadl is unportable - "
"use gnulib module setpayloadl for portability");
@@ -2958,7 +2921,6 @@ _GL_FUNCDECL_SYS (setpayloadsigf, int, (float *, float), );
_GL_CXXALIAS_SYS (setpayloadsigf, int, (float *, float));
_GL_CXXALIASWARN (setpayloadsigf);
#elif defined GNULIB_POSIXCHECK
-# undef setpayloadsigf
# if HAVE_RAW_DECL_SETPAYLOADSIGF
_GL_WARN_ON_USE (setpayloadsigf, "setpayloadsigf is unportable - "
"use gnulib module setpayloadsigf for portability");
@@ -2972,7 +2934,6 @@ _GL_FUNCDECL_SYS (setpayloadsig, int, (double *, double), );
_GL_CXXALIAS_SYS (setpayloadsig, int, (double *, double));
_GL_CXXALIASWARN (setpayloadsig);
#elif defined GNULIB_POSIXCHECK
-# undef setpayloadsig
# if HAVE_RAW_DECL_SETPAYLOADSIG
_GL_WARN_ON_USE (setpayloadsig, "setpayloadsig is unportable - "
"use gnulib module setpayloadsig for portability");
@@ -2986,7 +2947,6 @@ _GL_FUNCDECL_SYS (setpayloadsigl, int, (long double *, long double), );
_GL_CXXALIAS_SYS (setpayloadsigl, int, (long double *, long double));
_GL_CXXALIASWARN (setpayloadsigl);
#elif defined GNULIB_POSIXCHECK
-# undef setpayloadsigl
# if HAVE_RAW_DECL_SETPAYLOADSIGL
_GL_WARN_ON_USE (setpayloadsigl, "setpayloadsigl is unportable - "
"use gnulib module setpayloadsigl for portability");
@@ -3010,7 +2970,6 @@ _GL_CXXALIAS_SYS (totalorderf, int, (float const *, float const *));
# endif
_GL_CXXALIASWARN (totalorderf);
#elif defined GNULIB_POSIXCHECK
-# undef totalorderf
# if HAVE_RAW_DECL_TOTALORDERF
_GL_WARN_ON_USE (totalorderf, "totalorderf is unportable - "
"use gnulib module totalorderf for portability");
@@ -3035,7 +2994,6 @@ _GL_CXXALIAS_SYS (totalorder, int, (double const *, double const *));
_GL_CXXALIASWARN1 (totalorder, int, (double const *, double const *));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef totalorder
# if HAVE_RAW_DECL_TOTALORDER
_GL_WARN_ON_USE (totalorder, "totalorder is unportable - "
"use gnulib module totalorder for portability");
@@ -3062,7 +3020,6 @@ _GL_CXXALIAS_SYS (totalorderl, int,
# endif
_GL_CXXALIASWARN (totalorderl);
#elif defined GNULIB_POSIXCHECK
-# undef totalorderl
# if HAVE_RAW_DECL_TOTALORDERL
_GL_WARN_ON_USE (totalorderl, "totalorderl is unportable - "
"use gnulib module totalorderl for portability");
@@ -3088,7 +3045,6 @@ _GL_CXXALIAS_SYS (totalordermagf, int, (float const *, float const *));
_GL_CXXALIASWARN1 (totalordermagf, int, (float const *, float const *));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef totalordermagf
# if HAVE_RAW_DECL_TOTALORDERMAGF
_GL_WARN_ON_USE (totalordermagf, "totalordermagf is unportable - "
"use gnulib module totalordermagf for portability");
@@ -3113,7 +3069,6 @@ _GL_CXXALIAS_SYS (totalordermag, int, (double const *, double const *));
_GL_CXXALIASWARN1 (totalordermag, int, (double const *, double const *));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef totalordermag
# if HAVE_RAW_DECL_TOTALORDERMAG
_GL_WARN_ON_USE (totalordermag, "totalordermag is unportable - "
"use gnulib module totalordermag for portability");
@@ -3143,7 +3098,6 @@ _GL_CXXALIASWARN1 (totalordermagl, int,
(long double const *, long double const *));
# endif
#elif defined GNULIB_POSIXCHECK
-# undef totalordermagl
# if HAVE_RAW_DECL_TOTALORDERMAGL
_GL_WARN_ON_USE (totalordermagl, "totalordermagl is unportable - "
"use gnulib module totalordermagl for portability");
diff --git a/lib/mbchar.c b/lib/mbchar.c
index 713c2f74..db9e2718 100644
--- a/lib/mbchar.c
+++ b/lib/mbchar.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2006, 2009-2025 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2006, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -14,9 +14,8 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define MBCHAR_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <limits.h>
diff --git a/lib/mbchar.h b/lib/mbchar.h
index ba142425..20e28e5f 100644
--- a/lib/mbchar.h
+++ b/lib/mbchar.h
@@ -1,5 +1,5 @@
/* Multibyte character data type.
- Copyright (C) 2001, 2005-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/mbiterf.c b/lib/mbiterf.c
index ad354c55..bb0a5cc3 100644
--- a/lib/mbiterf.c
+++ b/lib/mbiterf.c
@@ -1,6 +1,6 @@
/* Iterating through multibyte strings: macros for multi-byte encodings.
- Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ Copyright (C) 2023-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -15,7 +15,6 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define MBITERF_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "mbiterf.h"
diff --git a/lib/mbiterf.h b/lib/mbiterf.h
index d0d2484a..50a39c0f 100644
--- a/lib/mbiterf.h
+++ b/lib/mbiterf.h
@@ -1,5 +1,5 @@
/* Iterating through multibyte strings, faster: macros for multi-byte encodings.
- Copyright (C) 2001, 2005, 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005, 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/mbrtoc32.c b/lib/mbrtoc32.c
index dd6e46cf..f3570f73 100644
--- a/lib/mbrtoc32.c
+++ b/lib/mbrtoc32.c
@@ -1,5 +1,5 @@
/* Convert multibyte character to 32-bit wide character.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -87,7 +87,7 @@ mbrtoc32 (char32_t *pwc, const char *s, size_t n, mbstate_t *ps)
# include <wchar.h>
# include "localcharset.h"
-# include "streq.h"
+# include "streq-opt.h"
# if MBRTOC32_IN_C_LOCALE_MAYBE_EILSEQ
# include "hard-locale.h"
@@ -165,7 +165,6 @@ mbrtoc32 (char32_t *pwc, const char *s, size_t n, mbstate_t *ps)
char buf[4];
const char *p;
size_t m;
- int res;
switch (nstate)
{
@@ -198,6 +197,7 @@ mbrtoc32 (char32_t *pwc, const char *s, size_t n, mbstate_t *ps)
/* Here m > 0. */
+ int res;
{
# define FITS_IN_CHAR_TYPE(wc) 1
# include "mbrtowc-impl-utf8.h"
diff --git a/lib/mbrtowc-impl-utf8.h b/lib/mbrtowc-impl-utf8.h
index 98858e22..ad96ca84 100644
--- a/lib/mbrtowc-impl-utf8.h
+++ b/lib/mbrtowc-impl-utf8.h
@@ -1,5 +1,5 @@
/* Convert multibyte character to wide character.
- Copyright (C) 1999-2002, 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/mbrtowc-impl.h b/lib/mbrtowc-impl.h
index 61be6599..21a3998c 100644
--- a/lib/mbrtowc-impl.h
+++ b/lib/mbrtowc-impl.h
@@ -1,5 +1,5 @@
/* Convert multibyte character to wide character.
- Copyright (C) 1999-2002, 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -41,8 +41,6 @@
char buf[4];
const char *p;
size_t m;
- enc_t enc;
- int res;
switch (nstate)
{
@@ -75,7 +73,8 @@
/* Here m > 0. */
- enc = locale_encoding_classification ();
+ enc_t enc = locale_encoding_classification ();
+ int res;
if (enc == enc_utf8) /* UTF-8 */
{
@@ -89,17 +88,19 @@
{
/* The hidden internal state of mbtowc would make this function not
multi-thread safe. Achieve multi-thread safety through a lock. */
- wchar_t wc;
- res = mbtowc_with_lock (&wc, p, m);
+ {
+ wchar_t wc;
+ res = mbtowc_with_lock (&wc, p, m);
- if (res >= 0)
- {
- if ((wc == 0) != (res == 0))
- abort ();
- if (pwc != NULL)
- *pwc = wc;
- goto success;
- }
+ if (res >= 0)
+ {
+ if ((wc == 0) != (res == 0))
+ abort ();
+ if (pwc != NULL)
+ *pwc = wc;
+ goto success;
+ }
+ }
/* mbtowc does not distinguish between invalid and incomplete multibyte
sequences. But mbrtowc needs to make this distinction.
diff --git a/lib/mbrtowc.c b/lib/mbrtowc.c
index 30432049..49831706 100644
--- a/lib/mbrtowc.c
+++ b/lib/mbrtowc.c
@@ -1,5 +1,5 @@
/* Convert multibyte character to wide character.
- Copyright (C) 1999-2002, 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2005-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This file is free software: you can redistribute it and/or modify
@@ -81,9 +81,6 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
size_t
rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
{
- size_t ret;
- wchar_t wc;
-
# if MBRTOWC_RETVAL_BUG || MBRTOWC_EMPTY_INPUT_BUG
if (s == NULL)
{
@@ -98,6 +95,7 @@ rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
return (size_t) -2;
# endif
+ wchar_t wc;
if (! pwc)
pwc = &wc;
@@ -116,7 +114,7 @@ rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
size_t count = 0;
for (; n > 0; s++, n--)
{
- ret = mbrtowc (&wc, s, 1, ps);
+ size_t ret = mbrtowc (&wc, s, 1, ps);
if (ret == (size_t)(-1))
return (size_t)(-1);
@@ -133,6 +131,7 @@ rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
}
# endif
+ size_t ret;
# if MBRTOWC_STORES_INCOMPLETE_BUG
ret = mbrtowc (&wc, s, n, ps);
if (ret < (size_t) -2 && pwc != NULL)
diff --git a/lib/mbsinit.c b/lib/mbsinit.c
index 2df30b32..6252aa7a 100644
--- a/lib/mbsinit.c
+++ b/lib/mbsinit.c
@@ -1,5 +1,5 @@
/* Test for initial conversion state.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/mbsnlen.c b/lib/mbsnlen.c
index 9c25465a..bcca569b 100644
--- a/lib/mbsnlen.c
+++ b/lib/mbsnlen.c
@@ -1,5 +1,5 @@
/* Counting the multibyte characters in a string.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/mbszero.c b/lib/mbszero.c
index 36fc9200..b63b2c04 100644
--- a/lib/mbszero.c
+++ b/lib/mbszero.c
@@ -1,5 +1,5 @@
/* Put an mbstate_t into an initial conversion state.
- Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ Copyright (C) 2023-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/mbtowc-lock.c b/lib/mbtowc-lock.c
index e350608b..14106188 100644
--- a/lib/mbtowc-lock.c
+++ b/lib/mbtowc-lock.c
@@ -1,5 +1,5 @@
/* Return the internal lock used by mbrtowc and mbrtoc32.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/mbtowc-lock.h b/lib/mbtowc-lock.h
index 1e67c96e..b3e4e28e 100644
--- a/lib/mbtowc-lock.h
+++ b/lib/mbtowc-lock.h
@@ -1,5 +1,5 @@
/* Use the internal lock used by mbrtowc and mbrtoc32.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -50,10 +50,9 @@ static int
mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m)
{
CRITICAL_SECTION *lock = gl_get_mbtowc_lock ();
- int ret;
EnterCriticalSection (lock);
- ret = mbtowc_unlocked (pwc, p, m);
+ int ret = mbtowc_unlocked (pwc, p, m);
LeaveCriticalSection (lock);
return ret;
@@ -89,11 +88,10 @@ mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m)
if (pthread_in_use())
{
pthread_mutex_t *lock = gl_get_mbtowc_lock ();
- int ret;
if (pthread_mutex_lock (lock))
abort ();
- ret = mbtowc_unlocked (pwc, p, m);
+ int ret = mbtowc_unlocked (pwc, p, m);
if (pthread_mutex_unlock (lock))
abort ();
@@ -111,11 +109,10 @@ static int
mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m)
{
mtx_t *lock = gl_get_mbtowc_lock ();
- int ret;
if (mtx_lock (lock) != thrd_success)
abort ();
- ret = mbtowc_unlocked (pwc, p, m);
+ int ret = mbtowc_unlocked (pwc, p, m);
if (mtx_unlock (lock) != thrd_success)
abort ();
diff --git a/lib/memchr.c b/lib/memchr.c
index ef0d15f7..6adac7e1 100644
--- a/lib/memchr.c
+++ b/lib/memchr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2025
+/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2026
Free Software Foundation, Inc.
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
@@ -65,105 +65,103 @@ __memchr (void const *s, int c_in, size_t n)
performance. */
typedef unsigned long int longword;
- const unsigned char *char_ptr;
- const longword *longword_ptr;
- longword repeated_one;
- longword repeated_c;
- unsigned reg_char c;
+ unsigned reg_char c = (unsigned char) c_in;
- c = (unsigned char) c_in;
+ const longword *longword_ptr;
/* Handle the first few bytes by reading one byte at a time.
Do this until CHAR_PTR is aligned on a longword boundary. */
- for (char_ptr = (const unsigned char *) s;
- n > 0 && (size_t) char_ptr % sizeof (longword) != 0;
- --n, ++char_ptr)
- if (*char_ptr == c)
- return (void *) char_ptr;
+ {
+ const unsigned char *char_ptr;
+ for (char_ptr = (const unsigned char *) s;
+ n > 0 && (size_t) char_ptr % sizeof (longword) != 0;
+ --n, ++char_ptr)
+ if (*char_ptr == c)
+ return (void *) char_ptr;
- longword_ptr = (const longword *) char_ptr;
+ longword_ptr = (const longword *) char_ptr;
+ }
/* All these elucidatory comments refer to 4-byte longwords,
but the theory applies equally well to any size longwords. */
-
- /* Compute auxiliary longword values:
- repeated_one is a value which has a 1 in every byte.
- repeated_c has c in every byte. */
- repeated_one = 0x01010101;
- repeated_c = c | (c << 8);
- repeated_c |= repeated_c << 16;
- if (0xffffffffU < (longword) -1)
- {
- repeated_one |= repeated_one << 31 << 1;
- repeated_c |= repeated_c << 31 << 1;
- if (8 < sizeof (longword))
- {
- size_t i;
-
- for (i = 64; i < sizeof (longword) * 8; i *= 2)
+ {
+ /* Compute auxiliary longword values:
+ repeated_one is a value which has a 1 in every byte.
+ repeated_c has c in every byte. */
+ longword repeated_one = 0x01010101;
+ longword repeated_c = c | (c << 8);
+ repeated_c |= repeated_c << 16;
+ if (0xffffffffU < (longword) -1)
+ {
+ repeated_one |= repeated_one << 31 << 1;
+ repeated_c |= repeated_c << 31 << 1;
+ if (8 < sizeof (longword))
+ for (size_t i = 64; i < sizeof (longword) * 8; i *= 2)
{
repeated_one |= repeated_one << i;
repeated_c |= repeated_c << i;
}
- }
- }
-
- /* Instead of the traditional loop which tests each byte, we will test a
- longword at a time. The tricky part is testing if *any of the four*
- bytes in the longword in question are equal to c. We first use an xor
- with repeated_c. This reduces the task to testing whether *any of the
- four* bytes in longword1 is zero.
-
- We compute tmp =
- ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7).
- That is, we perform the following operations:
- 1. Subtract repeated_one.
- 2. & ~longword1.
- 3. & a mask consisting of 0x80 in every byte.
- Consider what happens in each byte:
- - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff,
- and step 3 transforms it into 0x80. A carry can also be propagated
- to more significant bytes.
- - If a byte of longword1 is nonzero, let its lowest 1 bit be at
- position k (0 <= k <= 7); so the lowest k bits are 0. After step 1,
- the byte ends in a single bit of value 0 and k bits of value 1.
- After step 2, the result is just k bits of value 1: 2^k - 1. After
- step 3, the result is 0. And no carry is produced.
- So, if longword1 has only non-zero bytes, tmp is zero.
- Whereas if longword1 has a zero byte, call j the position of the least
- significant zero byte. Then the result has a zero at positions 0, ...,
- j-1 and a 0x80 at position j. We cannot predict the result at the more
- significant bytes (positions j+1..3), but it does not matter since we
- already have a non-zero bit at position 8*j+7.
-
- So, the test whether any byte in longword1 is zero is equivalent to
- testing whether tmp is nonzero. */
-
- while (n >= sizeof (longword))
- {
- longword longword1 = *longword_ptr ^ repeated_c;
-
- if ((((longword1 - repeated_one) & ~longword1)
- & (repeated_one << 7)) != 0)
- break;
- longword_ptr++;
- n -= sizeof (longword);
- }
-
- char_ptr = (const unsigned char *) longword_ptr;
-
- /* At this point, we know that either n < sizeof (longword), or one of the
- sizeof (longword) bytes starting at char_ptr is == c. On little-endian
- machines, we could determine the first such byte without any further
- memory accesses, just by looking at the tmp result from the last loop
- iteration. But this does not work on big-endian machines. Choose code
- that works in both cases. */
-
- for (; n > 0; --n, ++char_ptr)
- {
- if (*char_ptr == c)
- return (void *) char_ptr;
- }
+ }
+
+ /* Instead of the traditional loop which tests each byte, we will test a
+ longword at a time. The tricky part is testing if *any of the four*
+ bytes in the longword in question are equal to c. We first use an xor
+ with repeated_c. This reduces the task to testing whether *any of the
+ four* bytes in longword1 is zero.
+
+ We compute tmp =
+ ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7).
+ That is, we perform the following operations:
+ 1. Subtract repeated_one.
+ 2. & ~longword1.
+ 3. & a mask consisting of 0x80 in every byte.
+ Consider what happens in each byte:
+ - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff,
+ and step 3 transforms it into 0x80. A carry can also be propagated
+ to more significant bytes.
+ - If a byte of longword1 is nonzero, let its lowest 1 bit be at
+ position k (0 <= k <= 7); so the lowest k bits are 0. After step 1,
+ the byte ends in a single bit of value 0 and k bits of value 1.
+ After step 2, the result is just k bits of value 1: 2^k - 1. After
+ step 3, the result is 0. And no carry is produced.
+ So, if longword1 has only non-zero bytes, tmp is zero.
+ Whereas if longword1 has a zero byte, call j the position of the least
+ significant zero byte. Then the result has a zero at positions 0, ...,
+ j-1 and a 0x80 at position j. We cannot predict the result at the more
+ significant bytes (positions j+1..3), but it does not matter since we
+ already have a non-zero bit at position 8*j+7.
+
+ So, the test whether any byte in longword1 is zero is equivalent to
+ testing whether tmp is nonzero. */
+
+ while (n >= sizeof (longword))
+ {
+ longword longword1 = *longword_ptr ^ repeated_c;
+
+ if ((((longword1 - repeated_one) & ~longword1)
+ & (repeated_one << 7)) != 0)
+ break;
+ longword_ptr++;
+ n -= sizeof (longword);
+ }
+ }
+
+ {
+ const unsigned char *char_ptr = (const unsigned char *) longword_ptr;
+
+ /* At this point, we know that either n < sizeof (longword), or one of the
+ sizeof (longword) bytes starting at char_ptr is == c. On little-endian
+ machines, we could determine the first such byte without any further
+ memory accesses, just by looking at the tmp result from the last loop
+ iteration. But this does not work on big-endian machines. Choose code
+ that works in both cases. */
+
+ for (; n > 0; --n, ++char_ptr)
+ {
+ if (*char_ptr == c)
+ return (void *) char_ptr;
+ }
+ }
return NULL;
}
diff --git a/lib/memchr.valgrind b/lib/memchr.valgrind
index 8e55c207..7ab1f6ff 100644
--- a/lib/memchr.valgrind
+++ b/lib/memchr.valgrind
@@ -1,6 +1,6 @@
# Suppress a valgrind message about use of uninitialized memory in memchr().
-# Copyright (C) 2009-2025 Free Software Foundation, Inc.
+# Copyright (C) 2009-2026 Free Software Foundation, Inc.
#
# This file is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
diff --git a/lib/memcmp2.c b/lib/memcmp2.c
index a7c59699..97b098fa 100644
--- a/lib/memcmp2.c
+++ b/lib/memcmp2.c
@@ -1,5 +1,5 @@
/* Compare two memory areas with possibly different lengths.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/memcmp2.h b/lib/memcmp2.h
index bcdc5c85..b99b6200 100644
--- a/lib/memcmp2.h
+++ b/lib/memcmp2.h
@@ -1,5 +1,5 @@
/* Compare two memory areas with possibly different lengths.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/minmax.h b/lib/minmax.h
index 7cafcea3..fd731fb7 100644
--- a/lib/minmax.h
+++ b/lib/minmax.h
@@ -1,5 +1,5 @@
/* MIN, MAX macros.
- Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2025 Free Software
+ Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2026 Free Software
Foundation, Inc.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/printf-args.c b/lib/printf-args.c
index b83ec1e8..2f7bf3da 100644
--- a/lib/printf-args.c
+++ b/lib/printf-args.c
@@ -1,5 +1,5 @@
/* Decomposed printf argument list.
- Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2025 Free Software
+ Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2026 Free Software
Foundation, Inc.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/printf-args.h b/lib/printf-args.h
index 6edc570c..e72863ef 100644
--- a/lib/printf-args.h
+++ b/lib/printf-args.h
@@ -1,5 +1,5 @@
/* Decomposed printf argument list.
- Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2025 Free Software
+ Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2026 Free Software
Foundation, Inc.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/printf-frexp.c b/lib/printf-frexp.c
index af5a0b4f..a2a9a717 100644
--- a/lib/printf-frexp.c
+++ b/lib/printf-frexp.c
@@ -1,5 +1,5 @@
/* Split a double into fraction and mantissa, for hexadecimal printf.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -66,11 +66,12 @@
DOUBLE
FUNC (DOUBLE x, int *expptr)
{
- int exponent;
DECL_ROUNDING
BEGIN_ROUNDING ();
+ int exponent;
+
#ifdef USE_FREXP_LDEXP
/* frexp and ldexp are usually faster than the loop below. */
x = FREXP (x, &exponent);
diff --git a/lib/printf-frexp.h b/lib/printf-frexp.h
index 3bedeffd..bbc3d6af 100644
--- a/lib/printf-frexp.h
+++ b/lib/printf-frexp.h
@@ -1,5 +1,5 @@
/* Split a double into fraction and mantissa, for hexadecimal printf.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/printf-frexpl.c b/lib/printf-frexpl.c
index 36181b84..3a26d43b 100644
--- a/lib/printf-frexpl.c
+++ b/lib/printf-frexpl.c
@@ -1,5 +1,5 @@
/* Split a 'long double' into fraction and mantissa, for hexadecimal printf.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/printf-frexpl.h b/lib/printf-frexpl.h
index ea63de49..ae31478f 100644
--- a/lib/printf-frexpl.h
+++ b/lib/printf-frexpl.h
@@ -1,5 +1,5 @@
/* Split a 'long double' into fraction and mantissa, for hexadecimal printf.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/printf-parse.c b/lib/printf-parse.c
index 79b35034..34d241a6 100644
--- a/lib/printf-parse.c
+++ b/lib/printf-parse.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999-2000, 2002-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2000, 2002-2003, 2006-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -323,8 +323,6 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
}
{
- arg_type type;
-
/* Parse argument type/size specifiers. */
/* Relevant for the conversion characters d, i. */
arg_type signed_type = TYPE_INT;
@@ -561,6 +559,7 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
(void) pointer_type;
/* Read the conversion character. */
+ arg_type type;
c = *cp++;
switch (c)
{
@@ -654,17 +653,14 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
d->count++;
if (d->count >= d_allocated)
{
- size_t memory_size;
- DIRECTIVE *memory;
-
d_allocated = xtimes (d_allocated, 2);
- memory_size = xtimes (d_allocated, sizeof (DIRECTIVE));
+ size_t memory_size = xtimes (d_allocated, sizeof (DIRECTIVE));
if (size_overflow_p (memory_size))
/* Overflow, would lead to out of memory. */
goto out_of_memory;
- memory = (DIRECTIVE *) (d->dir != d->direct_alloc_dir
- ? realloc (d->dir, memory_size)
- : malloc (memory_size));
+ DIRECTIVE *memory = (DIRECTIVE *) (d->dir != d->direct_alloc_dir
+ ? realloc (d->dir, memory_size)
+ : malloc (memory_size));
if (memory == NULL)
/* Out of memory. */
goto out_of_memory;
diff --git a/lib/printf-parse.h b/lib/printf-parse.h
index 673053b8..17164f0e 100644
--- a/lib/printf-parse.h
+++ b/lib/printf-parse.h
@@ -1,5 +1,5 @@
/* Parse printf format string.
- Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2025 Free Software
+ Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2026 Free Software
Foundation, Inc.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/pthread-once.c b/lib/pthread-once.c
index b19dae50..823f0639 100644
--- a/lib/pthread-once.c
+++ b/lib/pthread-once.c
@@ -1,5 +1,5 @@
/* POSIX once-only control.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/pthread.in.h b/lib/pthread.in.h
index 28592cfc..37deab82 100644
--- a/lib/pthread.in.h
+++ b/lib/pthread.in.h
@@ -1,6 +1,6 @@
/* Implement the most essential subset of POSIX pthread.h.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -522,7 +522,6 @@ _GL_CXXALIAS_SYS_CAST (pthread_create, int,
_GL_CXXALIASWARN (pthread_create);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_create
# if HAVE_RAW_DECL_PTHREAD_CREATE
_GL_WARN_ON_USE (pthread_create, "pthread_create is not portable - "
"use gnulib module pthread-thread for portability");
@@ -549,7 +548,6 @@ _GL_CXXALIAS_SYS (pthread_attr_init, int, (pthread_attr_t *attr));
_GL_CXXALIASWARN (pthread_attr_init);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_attr_init
# if HAVE_RAW_DECL_PTHREAD_ATTR_INIT
_GL_WARN_ON_USE (pthread_attr_init, "pthread_attr_init is not portable - "
"use gnulib module pthread-thread for portability");
@@ -580,7 +578,6 @@ _GL_CXXALIAS_SYS (pthread_attr_getdetachstate, int,
_GL_CXXALIASWARN (pthread_attr_getdetachstate);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_attr_getdetachstate
# if HAVE_RAW_DECL_PTHREAD_ATTR_GETDETACHSTATE
_GL_WARN_ON_USE (pthread_attr_getdetachstate, "pthread_attr_getdetachstate is not portable - "
"use gnulib module pthread-thread for portability");
@@ -611,7 +608,6 @@ _GL_CXXALIAS_SYS (pthread_attr_setdetachstate, int,
_GL_CXXALIASWARN (pthread_attr_setdetachstate);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_attr_setdetachstate
# if HAVE_RAW_DECL_PTHREAD_ATTR_SETDETACHSTATE
_GL_WARN_ON_USE (pthread_attr_setdetachstate, "pthread_attr_setdetachstate is not portable - "
"use gnulib module pthread-thread for portability");
@@ -638,7 +634,6 @@ _GL_CXXALIAS_SYS (pthread_attr_destroy, int, (pthread_attr_t *attr));
_GL_CXXALIASWARN (pthread_attr_destroy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_attr_destroy
# if HAVE_RAW_DECL_PTHREAD_ATTR_DESTROY
_GL_WARN_ON_USE (pthread_attr_destroy, "pthread_attr_destroy is not portable - "
"use gnulib module pthread-thread for portability");
@@ -663,7 +658,6 @@ _GL_CXXALIAS_SYS (pthread_self, pthread_t, (void));
_GL_CXXALIASWARN (pthread_self);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_self
# if HAVE_RAW_DECL_PTHREAD_SELF
_GL_WARN_ON_USE (pthread_self, "pthread_self is not portable - "
"use gnulib module pthread-thread for portability");
@@ -688,7 +682,6 @@ _GL_CXXALIAS_SYS (pthread_equal, int, (pthread_t thread1, pthread_t thread2));
_GL_CXXALIASWARN (pthread_equal);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_equal
# if HAVE_RAW_DECL_PTHREAD_EQUAL
_GL_WARN_ON_USE (pthread_equal, "pthread_equal is not portable - "
"use gnulib module pthread-thread for portability");
@@ -713,7 +706,6 @@ _GL_CXXALIAS_SYS (pthread_detach, int, (pthread_t thread));
_GL_CXXALIASWARN (pthread_detach);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_detach
# if HAVE_RAW_DECL_PTHREAD_DETACH
_GL_WARN_ON_USE (pthread_detach, "pthread_detach is not portable - "
"use gnulib module pthread-thread for portability");
@@ -738,7 +730,6 @@ _GL_CXXALIAS_SYS (pthread_join, int, (pthread_t thread, void **valuep));
_GL_CXXALIASWARN (pthread_join);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_join
# if HAVE_RAW_DECL_PTHREAD_JOIN
_GL_WARN_ON_USE (pthread_join, "pthread_join is not portable - "
"use gnulib module pthread-thread for portability");
@@ -764,7 +755,6 @@ _GL_CXXALIAS_SYS_CAST (pthread_exit, void, (void *value));
_GL_CXXALIASWARN (pthread_exit);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_exit
# if HAVE_RAW_DECL_PTHREAD_EXIT
_GL_WARN_ON_USE (pthread_exit, "pthread_exit is not portable - "
"use gnulib module pthread-thread for portability");
@@ -798,7 +788,6 @@ _GL_CXXALIAS_SYS_CAST (pthread_once, int,
_GL_CXXALIASWARN (pthread_once);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_once
# if HAVE_RAW_DECL_PTHREAD_ONCE
_GL_WARN_ON_USE (pthread_once, "pthread_once is not portable - "
"use gnulib module pthread-once for portability");
@@ -835,7 +824,6 @@ _GL_CXXALIAS_SYS (pthread_mutex_init, int,
_GL_CXXALIASWARN (pthread_mutex_init);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutex_init
# if HAVE_RAW_DECL_PTHREAD_MUTEX_INIT
_GL_WARN_ON_USE (pthread_mutex_init, "pthread_mutex_init is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -862,7 +850,6 @@ _GL_CXXALIAS_SYS (pthread_mutexattr_init, int, (pthread_mutexattr_t *attr));
_GL_CXXALIASWARN (pthread_mutexattr_init);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutexattr_init
# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_INIT
_GL_WARN_ON_USE (pthread_mutexattr_init, "pthread_mutexattr_init is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -899,7 +886,6 @@ _GL_CXXALIAS_SYS_CAST (pthread_mutexattr_gettype, int,
_GL_CXXALIASWARN (pthread_mutexattr_gettype);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutexattr_gettype
# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_GETTYPE
_GL_WARN_ON_USE (pthread_mutexattr_gettype, "pthread_mutexattr_gettype is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -928,7 +914,6 @@ _GL_CXXALIAS_SYS (pthread_mutexattr_settype, int,
_GL_CXXALIASWARN (pthread_mutexattr_settype);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutexattr_settype
# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_SETTYPE
_GL_WARN_ON_USE (pthread_mutexattr_settype, "pthread_mutexattr_settype is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -965,7 +950,6 @@ _GL_CXXALIAS_SYS_CAST (pthread_mutexattr_getrobust, int,
_GL_CXXALIASWARN (pthread_mutexattr_getrobust);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutexattr_getrobust
# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_GETROBUST
_GL_WARN_ON_USE (pthread_mutexattr_getrobust, "pthread_mutexattr_getrobust is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -996,7 +980,6 @@ _GL_CXXALIAS_SYS (pthread_mutexattr_setrobust, int,
_GL_CXXALIASWARN (pthread_mutexattr_setrobust);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutexattr_setrobust
# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_SETROBUST
_GL_WARN_ON_USE (pthread_mutexattr_setrobust, "pthread_mutexattr_setrobust is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -1023,7 +1006,6 @@ _GL_CXXALIAS_SYS (pthread_mutexattr_destroy, int, (pthread_mutexattr_t *attr));
_GL_CXXALIASWARN (pthread_mutexattr_destroy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutexattr_destroy
# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_DESTROY
_GL_WARN_ON_USE (pthread_mutexattr_destroy, "pthread_mutexattr_destroy is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -1050,7 +1032,6 @@ _GL_CXXALIAS_SYS (pthread_mutex_lock, int, (pthread_mutex_t *mutex));
_GL_CXXALIASWARN (pthread_mutex_lock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutex_lock
# if HAVE_RAW_DECL_PTHREAD_MUTEX_LOCK
_GL_WARN_ON_USE (pthread_mutex_lock, "pthread_mutex_lock is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -1077,7 +1058,6 @@ _GL_CXXALIAS_SYS (pthread_mutex_trylock, int, (pthread_mutex_t *mutex));
_GL_CXXALIASWARN (pthread_mutex_trylock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutex_trylock
# if HAVE_RAW_DECL_PTHREAD_MUTEX_TRYLOCK
_GL_WARN_ON_USE (pthread_mutex_trylock, "pthread_mutex_trylock is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -1112,7 +1092,6 @@ _GL_CXXALIAS_SYS (pthread_mutex_timedlock, int,
_GL_CXXALIASWARN (pthread_mutex_timedlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutex_timedlock
# if HAVE_RAW_DECL_PTHREAD_MUTEX_TIMEDLOCK
_GL_WARN_ON_USE (pthread_mutex_timedlock, "pthread_mutex_timedlock is not portable - "
"use gnulib module pthread_mutex_timedlock for portability");
@@ -1139,7 +1118,6 @@ _GL_CXXALIAS_SYS (pthread_mutex_unlock, int, (pthread_mutex_t *mutex));
_GL_CXXALIASWARN (pthread_mutex_unlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutex_unlock
# if HAVE_RAW_DECL_PTHREAD_MUTEX_UNLOCK
_GL_WARN_ON_USE (pthread_mutex_unlock, "pthread_mutex_unlock is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -1166,7 +1144,6 @@ _GL_CXXALIAS_SYS (pthread_mutex_destroy, int, (pthread_mutex_t *mutex));
_GL_CXXALIASWARN (pthread_mutex_destroy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_mutex_destroy
# if HAVE_RAW_DECL_PTHREAD_MUTEX_DESTROY
_GL_WARN_ON_USE (pthread_mutex_destroy, "pthread_mutex_destroy is not portable - "
"use gnulib module pthread-mutex for portability");
@@ -1203,7 +1180,6 @@ _GL_CXXALIAS_SYS (pthread_rwlock_init, int,
_GL_CXXALIASWARN (pthread_rwlock_init);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlock_init
# if HAVE_RAW_DECL_PTHREAD_RWLOCK_INIT
_GL_WARN_ON_USE (pthread_rwlock_init, "pthread_rwlock_init is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1230,7 +1206,6 @@ _GL_CXXALIAS_SYS (pthread_rwlockattr_init, int, (pthread_rwlockattr_t *attr));
_GL_CXXALIASWARN (pthread_rwlockattr_init);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlockattr_init
# if HAVE_RAW_DECL_PTHREAD_RWLOCKATTR_INIT
_GL_WARN_ON_USE (pthread_rwlockattr_init, "pthread_rwlockattr_init is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1259,7 +1234,6 @@ _GL_CXXALIAS_SYS (pthread_rwlockattr_destroy, int,
_GL_CXXALIASWARN (pthread_rwlockattr_destroy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlockattr_destroy
# if HAVE_RAW_DECL_PTHREAD_RWLOCKATTR_DESTROY
_GL_WARN_ON_USE (pthread_rwlockattr_destroy, "pthread_rwlockattr_destroy is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1286,7 +1260,6 @@ _GL_CXXALIAS_SYS (pthread_rwlock_rdlock, int, (pthread_rwlock_t *lock));
_GL_CXXALIASWARN (pthread_rwlock_rdlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlock_rdlock
# if HAVE_RAW_DECL_PTHREAD_RWLOCK_RDLOCK
_GL_WARN_ON_USE (pthread_rwlock_rdlock, "pthread_rwlock_rdlock is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1313,7 +1286,6 @@ _GL_CXXALIAS_SYS (pthread_rwlock_wrlock, int, (pthread_rwlock_t *lock));
_GL_CXXALIASWARN (pthread_rwlock_wrlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlock_wrlock
# if HAVE_RAW_DECL_PTHREAD_RWLOCK_WRLOCK
_GL_WARN_ON_USE (pthread_rwlock_wrlock, "pthread_rwlock_wrlock is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1340,7 +1312,6 @@ _GL_CXXALIAS_SYS (pthread_rwlock_tryrdlock, int, (pthread_rwlock_t *lock));
_GL_CXXALIASWARN (pthread_rwlock_tryrdlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlock_tryrdlock
# if HAVE_RAW_DECL_PTHREAD_RWLOCK_TRYRDLOCK
_GL_WARN_ON_USE (pthread_rwlock_tryrdlock, "pthread_rwlock_tryrdlock is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1367,7 +1338,6 @@ _GL_CXXALIAS_SYS (pthread_rwlock_trywrlock, int, (pthread_rwlock_t *lock));
_GL_CXXALIASWARN (pthread_rwlock_trywrlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlock_trywrlock
# if HAVE_RAW_DECL_PTHREAD_RWLOCK_TRYWRLOCK
_GL_WARN_ON_USE (pthread_rwlock_trywrlock, "pthread_rwlock_trywrlock is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1402,7 +1372,6 @@ _GL_CXXALIAS_SYS (pthread_rwlock_timedrdlock, int,
_GL_CXXALIASWARN (pthread_rwlock_timedrdlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlock_timedrdlock
# if HAVE_RAW_DECL_PTHREAD_RWLOCK_TIMEDRDLOCK
_GL_WARN_ON_USE (pthread_rwlock_timedrdlock, "pthread_rwlock_timedrdlock is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1437,7 +1406,6 @@ _GL_CXXALIAS_SYS (pthread_rwlock_timedwrlock, int,
_GL_CXXALIASWARN (pthread_rwlock_timedwrlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlock_timedwrlock
# if HAVE_RAW_DECL_PTHREAD_RWLOCK_TIMEDWRLOCK
_GL_WARN_ON_USE (pthread_rwlock_timedwrlock, "pthread_rwlock_timedwrlock is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1464,7 +1432,6 @@ _GL_CXXALIAS_SYS (pthread_rwlock_unlock, int, (pthread_rwlock_t *lock));
_GL_CXXALIASWARN (pthread_rwlock_unlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlock_unlock
# if HAVE_RAW_DECL_PTHREAD_RWLOCK_UNLOCK
_GL_WARN_ON_USE (pthread_rwlock_unlock, "pthread_rwlock_unlock is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1491,7 +1458,6 @@ _GL_CXXALIAS_SYS (pthread_rwlock_destroy, int, (pthread_rwlock_t *lock));
_GL_CXXALIASWARN (pthread_rwlock_destroy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_rwlock_destroy
# if HAVE_RAW_DECL_PTHREAD_RWLOCK_DESTROY
_GL_WARN_ON_USE (pthread_rwlock_destroy, "pthread_rwlock_destroy is not portable - "
"use gnulib module pthread-rwlock for portability");
@@ -1528,7 +1494,6 @@ _GL_CXXALIAS_SYS (pthread_cond_init, int,
_GL_CXXALIASWARN (pthread_cond_init);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_cond_init
# if HAVE_RAW_DECL_PTHREAD_COND_INIT
_GL_WARN_ON_USE (pthread_cond_init, "pthread_cond_init is not portable - "
"use gnulib module pthread-cond for portability");
@@ -1555,7 +1520,6 @@ _GL_CXXALIAS_SYS (pthread_condattr_init, int, (pthread_condattr_t *attr));
_GL_CXXALIASWARN (pthread_condattr_init);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_condattr_init
# if HAVE_RAW_DECL_PTHREAD_CONDATTR_INIT
_GL_WARN_ON_USE (pthread_condattr_init, "pthread_condattr_init is not portable - "
"use gnulib module pthread-cond for portability");
@@ -1582,7 +1546,6 @@ _GL_CXXALIAS_SYS (pthread_condattr_destroy, int, (pthread_condattr_t *attr));
_GL_CXXALIASWARN (pthread_condattr_destroy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_condattr_destroy
# if HAVE_RAW_DECL_PTHREAD_CONDATTR_DESTROY
_GL_WARN_ON_USE (pthread_condattr_destroy, "pthread_condattr_destroy is not portable - "
"use gnulib module pthread-cond for portability");
@@ -1617,7 +1580,6 @@ _GL_CXXALIAS_SYS (pthread_cond_wait, int,
_GL_CXXALIASWARN (pthread_cond_wait);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_cond_wait
# if HAVE_RAW_DECL_PTHREAD_COND_WAIT
_GL_WARN_ON_USE (pthread_cond_wait, "pthread_cond_wait is not portable - "
"use gnulib module pthread-cond for portability");
@@ -1656,7 +1618,6 @@ _GL_CXXALIAS_SYS (pthread_cond_timedwait, int,
_GL_CXXALIASWARN (pthread_cond_timedwait);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_cond_timedwait
# if HAVE_RAW_DECL_PTHREAD_COND_TIMEDWAIT
_GL_WARN_ON_USE (pthread_cond_timedwait, "pthread_cond_timedwait is not portable - "
"use gnulib module pthread-cond for portability");
@@ -1683,7 +1644,6 @@ _GL_CXXALIAS_SYS (pthread_cond_signal, int, (pthread_cond_t *cond));
_GL_CXXALIASWARN (pthread_cond_signal);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_cond_signal
# if HAVE_RAW_DECL_PTHREAD_COND_SIGNAL
_GL_WARN_ON_USE (pthread_cond_signal, "pthread_cond_signal is not portable - "
"use gnulib module pthread-cond for portability");
@@ -1710,7 +1670,6 @@ _GL_CXXALIAS_SYS (pthread_cond_broadcast, int, (pthread_cond_t *cond));
_GL_CXXALIASWARN (pthread_cond_broadcast);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_cond_broadcast
# if HAVE_RAW_DECL_PTHREAD_COND_BROADCAST
_GL_WARN_ON_USE (pthread_cond_broadcast, "pthread_cond_broadcast is not portable - "
"use gnulib module pthread-cond for portability");
@@ -1737,7 +1696,6 @@ _GL_CXXALIAS_SYS (pthread_cond_destroy, int, (pthread_cond_t *cond));
_GL_CXXALIASWARN (pthread_cond_destroy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_cond_destroy
# if HAVE_RAW_DECL_PTHREAD_COND_DESTROY
_GL_WARN_ON_USE (pthread_cond_destroy, "pthread_cond_destroy is not portable - "
"use gnulib module pthread-cond for portability");
@@ -1770,7 +1728,6 @@ _GL_CXXALIAS_SYS_CAST (pthread_key_create, int,
_GL_CXXALIASWARN (pthread_key_create);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_key_create
# if HAVE_RAW_DECL_PTHREAD_KEY_CREATE
_GL_WARN_ON_USE (pthread_key_create, "pthread_key_create is not portable - "
"use gnulib module pthread-tss for portability");
@@ -1799,7 +1756,6 @@ _GL_CXXALIAS_SYS (pthread_setspecific, int,
_GL_CXXALIASWARN (pthread_setspecific);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_setspecific
# if HAVE_RAW_DECL_PTHREAD_SETSPECIFIC
_GL_WARN_ON_USE (pthread_setspecific, "pthread_setspecific is not portable - "
"use gnulib module pthread-tss for portability");
@@ -1824,7 +1780,6 @@ _GL_CXXALIAS_SYS (pthread_getspecific, void *, (pthread_key_t key));
_GL_CXXALIASWARN (pthread_getspecific);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_getspecific
# if HAVE_RAW_DECL_PTHREAD_GETSPECIFIC
_GL_WARN_ON_USE (pthread_getspecific, "pthread_getspecific is not portable - "
"use gnulib module pthread-tss for portability");
@@ -1849,7 +1804,6 @@ _GL_CXXALIAS_SYS (pthread_key_delete, int, (pthread_key_t key));
_GL_CXXALIASWARN (pthread_key_delete);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_key_delete
# if HAVE_RAW_DECL_PTHREAD_KEY_DELETE
_GL_WARN_ON_USE (pthread_key_delete, "pthread_key_delete is not portable - "
"use gnulib module pthread-tss for portability");
@@ -1882,7 +1836,6 @@ _GL_CXXALIAS_SYS (pthread_spin_init, int,
_GL_CXXALIASWARN (pthread_spin_init);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_spin_init
# if HAVE_RAW_DECL_PTHREAD_SPIN_INIT
_GL_WARN_ON_USE (pthread_spin_init, "pthread_spin_init is not portable - "
"use gnulib module pthread-spin for portability");
@@ -1909,7 +1862,6 @@ _GL_CXXALIAS_SYS (pthread_spin_lock, int, (pthread_spinlock_t *lock));
_GL_CXXALIASWARN (pthread_spin_lock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_spin_lock
# if HAVE_RAW_DECL_PTHREAD_SPIN_LOCK
_GL_WARN_ON_USE (pthread_spin_lock, "pthread_spin_lock is not portable - "
"use gnulib module pthread-spin for portability");
@@ -1936,7 +1888,6 @@ _GL_CXXALIAS_SYS (pthread_spin_trylock, int, (pthread_spinlock_t *lock));
_GL_CXXALIASWARN (pthread_spin_trylock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_spin_trylock
# if HAVE_RAW_DECL_PTHREAD_SPIN_TRYLOCK
_GL_WARN_ON_USE (pthread_spin_trylock, "pthread_spin_trylock is not portable - "
"use gnulib module pthread-spin for portability");
@@ -1963,7 +1914,6 @@ _GL_CXXALIAS_SYS (pthread_spin_unlock, int, (pthread_spinlock_t *lock));
_GL_CXXALIASWARN (pthread_spin_unlock);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_spin_unlock
# if HAVE_RAW_DECL_PTHREAD_SPIN_UNLOCK
_GL_WARN_ON_USE (pthread_spin_unlock, "pthread_spin_unlock is not portable - "
"use gnulib module pthread-spin for portability");
@@ -1990,7 +1940,6 @@ _GL_CXXALIAS_SYS (pthread_spin_destroy, int, (pthread_spinlock_t *lock));
_GL_CXXALIASWARN (pthread_spin_destroy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_spin_destroy
# if HAVE_RAW_DECL_PTHREAD_SPIN_DESTROY
_GL_WARN_ON_USE (pthread_spin_destroy, "pthread_spin_destroy is not portable - "
"use gnulib module pthread-spin for portability");
diff --git a/lib/relocatable.c b/lib/relocatable.c
index 15b3bc44..3483d0ad 100644
--- a/lib/relocatable.c
+++ b/lib/relocatable.c
@@ -1,5 +1,5 @@
/* Provide relocatable packages.
- Copyright (C) 2003-2006, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2003-2006, 2008-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2003.
This file is free software: you can redistribute it and/or modify
@@ -55,6 +55,10 @@
# define strncmp strnicmp
#endif
+#if HAVE_DLADDR_IN_LIBC
+# include <dlfcn.h>
+#endif
+
#if DEPENDS_ON_LIBCHARSET
# include <libcharset.h>
#endif
@@ -101,9 +105,8 @@
/* Whether to enable the more costly support for relocatable libraries.
It allows libraries to be have been installed with a different original
- prefix than the program. But it is quite costly, especially on Cygwin
- platforms, see below. Therefore we enable it by default only on native
- Windows platforms. */
+ prefix than the program. But it is quite costly, see below. Therefore
+ we enable it by default only on native Windows platforms. */
#ifndef ENABLE_COSTLY_RELOCATABLE
# if defined _WIN32 && !defined __CYGWIN__
# define ENABLE_COSTLY_RELOCATABLE 1
@@ -136,11 +139,9 @@ set_this_relocation_prefix (const char *orig_prefix_arg,
&& strcmp (orig_prefix_arg, curr_prefix_arg) != 0)
{
/* Duplicate the argument strings. */
- char *memory;
-
orig_prefix_len = strlen (orig_prefix_arg);
curr_prefix_len = strlen (curr_prefix_arg);
- memory = (char *) xmalloc (orig_prefix_len + 1 + curr_prefix_len + 1);
+ char *memory = (char *) xmalloc (orig_prefix_len + 1 + curr_prefix_len + 1);
#ifdef NO_XMALLOC
if (memory != NULL)
#endif
@@ -197,9 +198,6 @@ compute_curr_prefix (const char *orig_installprefix,
const char *orig_installdir,
const char *curr_pathname)
{
- char *curr_installdir;
- const char *rel_installdir;
-
if (curr_pathname == NULL)
return NULL;
@@ -210,9 +208,10 @@ compute_curr_prefix (const char *orig_installprefix,
!= 0)
/* Shouldn't happen - nothing should be installed outside $(prefix). */
return NULL;
- rel_installdir = orig_installdir + strlen (orig_installprefix);
+ const char *rel_installdir = orig_installdir + strlen (orig_installprefix);
/* Determine the current installation directory. */
+ char *curr_installdir;
{
const char *p_base = curr_pathname + FILE_SYSTEM_PREFIX_LEN (curr_pathname);
const char *p = curr_pathname + strlen (curr_pathname);
@@ -318,9 +317,9 @@ static char *shared_library_fullname;
#if defined _WIN32 && !defined __CYGWIN__
/* Native Windows only.
- On Cygwin, it is better to use the Cygwin provided /proc interface, than
- to use native Windows API and cygwin_conv_to_posix_path, because it
- supports longer file names
+ On Cygwin, it is better to use either dladdr() or the Cygwin provided /proc
+ interface, than to use native Windows API and cygwin_conv_to_posix_path,
+ because it supports longer file names
(see <https://cygwin.com/ml/cygwin/2011-01/msg00410.html>). */
/* Determine the full pathname of the shared library when it is loaded.
@@ -402,39 +401,44 @@ _DLL_InitTerm (unsigned long hModule, unsigned long ulFlag)
static void
find_shared_library_fullname ()
{
-#if (defined __linux__ && (__GLIBC__ >= 2 || defined __UCLIBC__)) || defined __CYGWIN__
+#if HAVE_DLADDR_IN_LIBC
+ /* glibc >= 2.34, musl, macOS, FreeBSD, NetBSD, OpenBSD, Solaris, Cygwin, Minix */
+ /* We can use dladdr() without introducing extra link dependencies. */
+ Dl_info info;
+ /* It is OK to use a 'static' function — that does not appear in the
+ dynamic symbol table of any ELF object — as argument of dladdr() here,
+ because we don't access the fields info.dli_sname and info.dli_saddr. */
+ int ret = dladdr (find_shared_library_fullname, &info);
+ if (ret != 0 && info.dli_fname != NULL)
+ shared_library_fullname = strdup (info.dli_fname);
+#elif (defined __linux__ && (__GLIBC__ >= 2 || defined __UCLIBC__)) || defined __CYGWIN__
/* Linux has /proc/self/maps. glibc 2 and uClibc have the getline()
function.
- Cygwin >= 1.5 has /proc/self/maps and the getline() function too.
- But it is costly: ca. 0.3 ms on Linux, 3 ms on Cygwin 1.5, and 5 ms on
- Cygwin 1.7. */
- FILE *fp;
+ But it is costly: ca. 0.3 ms. */
/* Open the current process' maps file. It describes one VMA per line. */
- fp = fopen ("/proc/self/maps", "r");
+ FILE *fp = fopen ("/proc/self/maps", "r");
if (fp)
{
unsigned long address = (unsigned long) &find_shared_library_fullname;
for (;;)
{
unsigned long start, end;
- int c;
if (fscanf (fp, "%lx-%lx", &start, &end) != 2)
break;
if (address >= start && address <= end - 1)
{
/* Found it. Now see if this line contains a filename. */
+ int c;
while (c = getc (fp), c != EOF && c != '\n' && c != '/')
continue;
if (c == '/')
{
- size_t size;
- int len;
-
ungetc (c, fp);
- shared_library_fullname = NULL; size = 0;
- len = getline (&shared_library_fullname, &size, fp);
+ shared_library_fullname = NULL;
+ size_t size = 0;
+ int len = getline (&shared_library_fullname, &size, fp);
if (len >= 0)
{
/* Success: filled shared_library_fullname. */
@@ -444,6 +448,7 @@ find_shared_library_fullname ()
}
break;
}
+ int c;
while (c = getc (fp), c != EOF && c != '\n')
continue;
}
@@ -452,15 +457,19 @@ find_shared_library_fullname ()
#endif
}
+# define find_shared_library_fullname find_shared_library_fullname
+
#endif /* Native Windows / EMX / Unix */
/* Return the full pathname of the current shared library.
Return NULL if unknown.
- Guaranteed to work only on Linux, EMX, Cygwin, and native Windows. */
+ Guaranteed to work only on
+ glibc >= 2.34, Linux, macOS, FreeBSD, NetBSD, OpenBSD, Solaris, Cygwin,
+ Minix, native Windows, EMX. */
static char *
get_shared_library_fullname ()
{
-#if !(defined _WIN32 && !defined __CYGWIN__) && !defined __EMX__
+#if defined find_shared_library_fullname
static bool tried_find_shared_library_fullname;
if (!tried_find_shared_library_fullname)
{
@@ -496,9 +505,7 @@ relocate (const char *pathname)
orig_prefix. */
const char *orig_installprefix = INSTALLPREFIX;
const char *orig_installdir = INSTALLDIR;
- char *curr_prefix_better;
-
- curr_prefix_better =
+ char *curr_prefix_better =
compute_curr_prefix (orig_installprefix, orig_installdir,
get_shared_library_fullname ());
diff --git a/lib/relocatable.h b/lib/relocatable.h
index 7d8e475f..8f5da75e 100644
--- a/lib/relocatable.h
+++ b/lib/relocatable.h
@@ -1,5 +1,5 @@
/* Provide relocatable packages.
- Copyright (C) 2003, 2005, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2005, 2008-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2003.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/relocatable.valgrind b/lib/relocatable.valgrind
index a9e57786..de798887 100644
--- a/lib/relocatable.valgrind
+++ b/lib/relocatable.valgrind
@@ -1,6 +1,6 @@
# Suppress a valgrind message about a memory leak in relocatable.c.
-# Copyright (C) 2017-2025 Free Software Foundation, Inc.
+# Copyright (C) 2017-2026 Free Software Foundation, Inc.
#
# This file is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
diff --git a/lib/sched.in.h b/lib/sched.in.h
index c4103128..cb8ceca0 100644
--- a/lib/sched.in.h
+++ b/lib/sched.in.h
@@ -1,5 +1,5 @@
/* A GNU-like <sched.h>.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -100,7 +100,6 @@ _GL_CXXALIAS_SYS (sched_yield, int, (void));
_GL_CXXALIASWARN (sched_yield);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef sched_yield
# if HAVE_RAW_DECL_SCHED_YIELD
_GL_WARN_ON_USE (sched_yield, "sched_yield is not portable - "
"use gnulib module sched_yield for portability");
diff --git a/lib/setlocale-fixes.c b/lib/setlocale-fixes.c
index caa18633..1ca15f76 100644
--- a/lib/setlocale-fixes.c
+++ b/lib/setlocale-fixes.c
@@ -1,5 +1,5 @@
/* Make the global locale minimally POSIX compliant.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -109,9 +109,8 @@ fill_lc_all_name (void)
else
{
/* Produce a mixed locale name. */
- size_t i;
- char *q;
- for (i = 0, q = lc_all_name; i < 12; i++)
+ char *q = lc_all_name;
+ for (size_t i = 0; i < 12; i++)
{
const char *p = cat_names[i];
size_t n = strlen (p);
@@ -178,10 +177,9 @@ setlocale_fixed (int category, const char *name)
if (name != NULL)
{
char single_name[256+1];
- int i;
/* Test whether NAME is valid. */
- for (i = 12-1; i >= 0; i--)
+ for (int i = 12-1; i >= 0; i--)
if (extract_single_name (single_name, index_to_cat (i), name) < 0)
return NULL;
/* Now single_name contains the one for the index 0,
@@ -190,7 +188,7 @@ setlocale_fixed (int category, const char *name)
return NULL;
/* Fill lc_cat_name[]. */
- for (i = 12-1; i >= 0; i--)
+ for (int i = 12-1; i >= 0; i--)
{
if (extract_single_name (single_name, index_to_cat (i), name) < 0)
abort ();
diff --git a/lib/setlocale-fixes.h b/lib/setlocale-fixes.h
index d3cd2477..d46a30db 100644
--- a/lib/setlocale-fixes.h
+++ b/lib/setlocale-fixes.h
@@ -1,5 +1,5 @@
/* Make the global locale minimally POSIX compliant.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/setlocale-lock.c b/lib/setlocale-lock.c
index 87e0048c..afbcc046 100644
--- a/lib/setlocale-lock.c
+++ b/lib/setlocale-lock.c
@@ -1,5 +1,5 @@
/* Return the internal lock used by setlocale_null_r.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/setlocale_null-unlocked.c b/lib/setlocale_null-unlocked.c
index 72729e6b..e7f155c7 100644
--- a/lib/setlocale_null-unlocked.c
+++ b/lib/setlocale_null-unlocked.c
@@ -1,5 +1,5 @@
/* Query the name of the current global locale, without locking.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -86,10 +86,8 @@ setlocale_null_r_unlocked (int category, char *buf, size_t bufsize)
size_t length = wcslen (result);
if (length < bufsize)
{
- size_t i;
-
/* Convert wchar_t[] -> char[], assuming plain ASCII. */
- for (i = 0; i <= length; i++)
+ for (size_t i = 0; i <= length; i++)
buf[i] = result[i];
return 0;
@@ -101,10 +99,8 @@ setlocale_null_r_unlocked (int category, char *buf, size_t bufsize)
/* Return a truncated result in BUF.
This is a convenience for callers that don't want to write
explicit code for handling ERANGE. */
- size_t i;
-
/* Convert wchar_t[] -> char[], assuming plain ASCII. */
- for (i = 0; i < bufsize; i++)
+ for (size_t i = 0; i < bufsize; i++)
buf[i] = result[i];
buf[bufsize - 1] = '\0';
}
diff --git a/lib/setlocale_null.c b/lib/setlocale_null.c
index 29889642..39b6766c 100644
--- a/lib/setlocale_null.c
+++ b/lib/setlocale_null.c
@@ -1,5 +1,5 @@
/* Query the name of the current global locale.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -77,10 +77,9 @@ static int
setlocale_null_r_with_lock (int category, char *buf, size_t bufsize)
{
CRITICAL_SECTION *lock = gl_get_setlocale_null_lock ();
- int ret;
EnterCriticalSection (lock);
- ret = setlocale_null_r_unlocked (category, buf, bufsize);
+ int ret = setlocale_null_r_unlocked (category, buf, bufsize);
LeaveCriticalSection (lock);
return ret;
@@ -116,11 +115,10 @@ setlocale_null_r_with_lock (int category, char *buf, size_t bufsize)
if (pthread_in_use())
{
pthread_mutex_t *lock = gl_get_setlocale_null_lock ();
- int ret;
if (pthread_mutex_lock (lock))
abort ();
- ret = setlocale_null_r_unlocked (category, buf, bufsize);
+ int ret = setlocale_null_r_unlocked (category, buf, bufsize);
if (pthread_mutex_unlock (lock))
abort ();
@@ -138,11 +136,10 @@ static int
setlocale_null_r_with_lock (int category, char *buf, size_t bufsize)
{
mtx_t *lock = gl_get_setlocale_null_lock ();
- int ret;
if (mtx_lock (lock) != thrd_success)
abort ();
- ret = setlocale_null_r_unlocked (category, buf, bufsize);
+ int ret = setlocale_null_r_unlocked (category, buf, bufsize);
if (mtx_unlock (lock) != thrd_success)
abort ();
@@ -252,9 +249,7 @@ setlocale_null (int category)
i;
char buf[SETLOCALE_NULL_MAX];
static char resultbuf[LC_INDICES_COUNT][SETLOCALE_NULL_MAX];
- int err;
-
- err = setlocale_null_r (category, buf, sizeof (buf));
+ int err = setlocale_null_r (category, buf, sizeof (buf));
if (err == EINVAL)
return NULL;
if (err)
diff --git a/lib/setlocale_null.h b/lib/setlocale_null.h
index 3fcb7a82..dbd646b3 100644
--- a/lib/setlocale_null.h
+++ b/lib/setlocale_null.h
@@ -1,5 +1,5 @@
/* Query the name of the current global locale.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/signbitd.c b/lib/signbitd.c
index 6cbfa107..18b7c8fe 100644
--- a/lib/signbitd.c
+++ b/lib/signbitd.c
@@ -1,5 +1,5 @@
/* signbit() macro: Determine the sign bit of a floating-point number.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/signbitf.c b/lib/signbitf.c
index d833b4b9..a6c867b9 100644
--- a/lib/signbitf.c
+++ b/lib/signbitf.c
@@ -1,5 +1,5 @@
/* signbit() macro: Determine the sign bit of a floating-point number.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/signbitl.c b/lib/signbitl.c
index 0b185421..16ab0c61 100644
--- a/lib/signbitl.c
+++ b/lib/signbitl.c
@@ -1,5 +1,5 @@
/* signbit() macro: Determine the sign bit of a floating-point number.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/size_max.h b/lib/size_max.h
index 93eb96a6..b627e5ff 100644
--- a/lib/size_max.h
+++ b/lib/size_max.h
@@ -1,5 +1,5 @@
/* size_max.h -- declare SIZE_MAX through system headers
- Copyright (C) 2005-2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2006, 2009-2026 Free Software Foundation, Inc.
Written by Simon Josefsson.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/stdckdint.in.h b/lib/stdckdint.in.h
index bb9089b4..1989f7b8 100644
--- a/lib/stdckdint.in.h
+++ b/lib/stdckdint.in.h
@@ -1,6 +1,6 @@
/* stdckdint.h -- checked integer arithmetic
- Copyright 2022-2025 Free Software Foundation, Inc.
+ Copyright 2022-2026 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
@@ -47,7 +47,7 @@
These are like the standard macros introduced in C23, except that
arguments should not have side effects. The C++26 standard is
- expected to add this header and it's macros. */
+ expected to add this header and its macros. */
# define ckd_add(r, a, b) ((bool) _GL_INT_ADD_WRAPV (a, b, r))
# define ckd_sub(r, a, b) ((bool) _GL_INT_SUBTRACT_WRAPV (a, b, r))
diff --git a/lib/stddef.in.h b/lib/stddef.in.h
index 9ad768d7..2fe9e044 100644
--- a/lib/stddef.in.h
+++ b/lib/stddef.in.h
@@ -1,6 +1,6 @@
/* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/stdint.in.h b/lib/stdint.in.h
index 4df64333..f6066094 100644
--- a/lib/stdint.in.h
+++ b/lib/stdint.in.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2002, 2004-2025 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2002, 2004-2026 Free Software Foundation, Inc.
Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
This file is part of gnulib.
diff --git a/lib/stdio-impl.h b/lib/stdio-impl.h
index 4abf9e68..c90f64df 100644
--- a/lib/stdio-impl.h
+++ b/lib/stdio-impl.h
@@ -1,5 +1,5 @@
/* Implementation details of FILE streams.
- Copyright (C) 2007-2008, 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2008, 2010-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -108,15 +108,59 @@
# define _flags pub._flags
# define _r pub._r
# define _w pub._w
-# elif defined __ANDROID__ || defined __OpenBSD__ /* Android, OpenBSD */
-# if defined __LP64__ && !defined __OpenBSD__
+# elif defined __OpenBSD__ /* OpenBSD */
+# if defined __sferror /* OpenBSD <= 7.7 */
+# define _gl_flags_file_t short
+# else /* OpenBSD >= 7.8 */
+# define _gl_flags_file_t int
+# endif
+ /* Up to this commit from 2025-07-16
+ <https://github.com/openbsd/src/commit/b7f6c2eb760a2da367dd51d539ef06f5f3553790>
+ the innards of FILE were public. After this commit, the innards of FILE
+ are hidden. In this commit
+ <https://github.com/openbsd/src/commit/9063a2f1ec94013fb0e2c7ec851495108e788a6e>
+ they were reshuffled. */
+# if defined __sferror /* OpenBSD <= 7.7 */
+# define fp_ ((struct { unsigned char *_p; \
+ int _r; \
+ int _w; \
+ _gl_flags_file_t _flags; \
+ _gl_flags_file_t _file; \
+ struct { unsigned char *_base; size_t _size; } _bf; \
+ int _lbfsize; \
+ void *_cookie; \
+ void *_close; \
+ void *_read; \
+ void *_seek; \
+ void *_write; \
+ struct { unsigned char *_base; size_t _size; } _ext; \
+ unsigned char *_up; \
+ int _ur; \
+ unsigned char _ubuf[3]; \
+ unsigned char _nbuf[1]; \
+ struct { unsigned char *_base; size_t _size; } _lb; \
+ int _blksize; \
+ fpos_t _offset; \
+ /* More fields, not relevant here. */ \
+ } *) fp)
+# else /* OpenBSD >= 7.8 */
+# define fp_ ((struct { _gl_flags_file_t _flags; \
+ _gl_flags_file_t _file; \
+ unsigned char *_p; \
+ int _r; \
+ int _w; \
+ struct { unsigned char *_base; size_t _size; } _bf; \
+ int _lbfsize; \
+ /* More fields, not relevant here. */ \
+ } *) fp)
+# endif
+# elif defined __ANDROID__ /* Android */
+# if defined __LP64__
# define _gl_flags_file_t int
# else
# define _gl_flags_file_t short
# endif
-# if defined __OpenBSD__
-# define _gl_file_offset_t fpos_t
-# elif defined __LP64__
+# if defined __LP64__
# define _gl_file_offset_t int64_t
# else
/* see https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md */
@@ -127,9 +171,7 @@
the innards of FILE were public,
see <https://android.googlesource.com/platform/bionic.git/+/e78392637d5086384a5631ddfdfa8d7ec8326ee3/libc/stdio/fileext.h>
and <https://android.googlesource.com/platform/bionic.git/+/e78392637d5086384a5631ddfdfa8d7ec8326ee3/libc/stdio/local.h>.
- After this commit, the innards of FILE are hidden. Likewise for OpenBSD
- up to this commit from 2025-07-16
- <https://github.com/openbsd/src/commit/b7f6c2eb760a2da367dd51d539ef06f5f3553790>. */
+ After this commit, the innards of FILE are hidden. */
# define fp_ ((struct { unsigned char *_p; \
int _r; \
int _w; \
diff --git a/lib/stdlib.c b/lib/stdlib.c
index 6a06f5ba..f51a25c3 100644
--- a/lib/stdlib.c
+++ b/lib/stdlib.c
@@ -1,6 +1,6 @@
/* Inline functions for <stdlib.h>.
- Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Copyright (C) 2024-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h
index bef0aaaf..95237f2a 100644
--- a/lib/stdlib.in.h
+++ b/lib/stdlib.in.h
@@ -1,6 +1,6 @@
/* A GNU-like <stdlib.h>.
- Copyright (C) 1995, 2001-2004, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 1995, 2001-2004, 2006-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -70,6 +70,11 @@
# include <sys/loadavg.h>
#endif
+/* QNX declares getprogname() in <sys/process.h>. */
+#if (@GNULIB_GETPROGNAME@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_PROCESS_H@
+# include <sys/process.h>
+#endif
+
/* Native Windows platforms declare _mktemp() in <io.h>. */
#if defined _WIN32 && !defined __CYGWIN__
# include <io.h>
@@ -224,9 +229,9 @@ _GL_INLINE_HEADER_BEGIN
/* Declarations for ISO C N3322. */
#if defined __GNUC__ && __GNUC__ >= 15 && !defined __clang__
-_GL_EXTERN_C void *bsearch (const void *__key,
- const void *__base, size_t __nmemb, size_t __size,
- int (*__compare) (const void *, const void *))
+_GL_EXTERN_C void *_GL_FUNCDECL_SYS_NAME (bsearch)
+ (const void *__key, const void *__base, size_t __nmemb, size_t __size,
+ int (*__compare) (const void *, const void *))
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3) _GL_ARG_NONNULL ((5));
_GL_EXTERN_C void qsort (void *__base, size_t __nmemb, size_t __size,
int (*__compare) (const void *, const void *))
@@ -254,7 +259,6 @@ _GL_CXXALIAS_SYS (_Exit, void, (int status));
_GL_CXXALIASWARN (_Exit);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef _Exit
# if HAVE_RAW_DECL__EXIT
_GL_WARN_ON_USE (_Exit, "_Exit is unportable - "
"use gnulib module _Exit for portability");
@@ -301,7 +305,6 @@ _GL_CXXALIAS_SYS (free, void, (void *ptr));
_GL_CXXALIASWARN (free);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef free
/* Assume free is always declared. */
_GL_WARN_ON_USE (free, "free is not POSIX:2024 compliant everywhere - "
"use gnulib module free-posix for portability");
@@ -359,7 +362,6 @@ _GL_FUNCDECL_SYS (aligned_alloc, void *,
# endif
# endif
# if defined GNULIB_POSIXCHECK
-# undef aligned_alloc
# if HAVE_RAW_DECL_ALIGNED_ALLOC
_GL_WARN_ON_USE (aligned_alloc, "aligned_alloc is not portable - "
"use gnulib module aligned_alloc for portability");
@@ -379,7 +381,6 @@ _GL_FUNCDECL_SYS (atoll, long long,
_GL_CXXALIAS_SYS (atoll, long long, (const char *string));
_GL_CXXALIASWARN (atoll);
#elif defined GNULIB_POSIXCHECK
-# undef atoll
# if HAVE_RAW_DECL_ATOLL
_GL_WARN_ON_USE (atoll, "atoll is unportable - "
"use gnulib module atoll for portability");
@@ -436,7 +437,6 @@ _GL_FUNCDECL_SYS (calloc, void *,
# endif
# endif
# if defined GNULIB_POSIXCHECK
-# undef calloc
/* Assume calloc is always declared. */
_GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - "
"use gnulib module calloc-posix for portability");
@@ -497,7 +497,6 @@ _GL_FUNCDECL_SYS (canonicalize_file_name, char *,
# endif
# endif
# if defined GNULIB_POSIXCHECK
-# undef canonicalize_file_name
# if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME
_GL_WARN_ON_USE (canonicalize_file_name,
"canonicalize_file_name is unportable - "
@@ -597,7 +596,6 @@ _GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem));
_GL_CXXALIASWARN (getloadavg);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getloadavg
# if HAVE_RAW_DECL_GETLOADAVG
_GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - "
"use gnulib module getloadavg for portability");
@@ -632,7 +630,6 @@ _GL_CXXALIAS_SYS (getprogname, const char *, (void));
_GL_CXXALIASWARN (getprogname);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getprogname
# if HAVE_RAW_DECL_GETPROGNAME
_GL_WARN_ON_USE (getprogname, "getprogname is unportable - "
"use gnulib module getprogname for portability");
@@ -674,7 +671,6 @@ _GL_CXXALIAS_SYS (getsubopt, int,
_GL_CXXALIASWARN (getsubopt);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getsubopt
# if HAVE_RAW_DECL_GETSUBOPT
_GL_WARN_ON_USE (getsubopt, "getsubopt is unportable - "
"use gnulib module getsubopt for portability");
@@ -690,7 +686,6 @@ _GL_FUNCDECL_SYS (grantpt, int, (int fd), );
_GL_CXXALIAS_SYS (grantpt, int, (int fd));
_GL_CXXALIASWARN (grantpt);
#elif defined GNULIB_POSIXCHECK
-# undef grantpt
# if HAVE_RAW_DECL_GRANTPT
_GL_WARN_ON_USE (grantpt, "grantpt is not portable - "
"use gnulib module grantpt for portability");
@@ -751,7 +746,6 @@ _GL_FUNCDECL_SYS (malloc, void *,
# endif
# endif
# if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
-# undef malloc
/* Assume malloc is always declared. */
_GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - "
"use gnulib module malloc-posix for portability");
@@ -802,7 +796,6 @@ _GL_CXXALIAS_SYS (mbstowcs, size_t,
_GL_CXXALIASWARN (mbstowcs);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mbstowcs
# if HAVE_RAW_DECL_MBSTOWCS
_GL_WARN_ON_USE (mbstowcs, "mbstowcs is unportable - "
"use gnulib module mbstowcs for portability");
@@ -832,7 +825,6 @@ _GL_CXXALIAS_SYS (mbtowc, int,
_GL_CXXALIASWARN (mbtowc);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mbtowc
# if HAVE_RAW_DECL_MBTOWC
_GL_WARN_ON_USE (mbtowc, "mbtowc is not portable - "
"use gnulib module mbtowc for portability");
@@ -853,7 +845,6 @@ _GL_FUNCDECL_SYS (mkdtemp, char *,
_GL_CXXALIAS_SYS (mkdtemp, char *, (char * /*template*/));
_GL_CXXALIASWARN (mkdtemp);
#elif defined GNULIB_POSIXCHECK
-# undef mkdtemp
# if HAVE_RAW_DECL_MKDTEMP
_GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - "
"use gnulib module mkdtemp for portability");
@@ -892,7 +883,6 @@ _GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/));
_GL_CXXALIASWARN (mkostemp);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mkostemp
# if HAVE_RAW_DECL_MKOSTEMP
_GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - "
"use gnulib module mkostemp for portability");
@@ -936,7 +926,6 @@ _GL_CXXALIAS_SYS (mkostemps, int,
_GL_CXXALIASWARN (mkostemps);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mkostemps
# if HAVE_RAW_DECL_MKOSTEMPS
_GL_WARN_ON_USE (mkostemps, "mkostemps is unportable - "
"use gnulib module mkostemps for portability");
@@ -969,7 +958,6 @@ _GL_CXXALIAS_SYS (mkstemp, int, (char * /*template*/));
# endif
_GL_CXXALIASWARN (mkstemp);
#elif defined GNULIB_POSIXCHECK
-# undef mkstemp
# if HAVE_RAW_DECL_MKSTEMP
_GL_WARN_ON_USE (mkstemp, "mkstemp is unportable - "
"use gnulib module mkstemp for portability");
@@ -994,7 +982,6 @@ _GL_FUNCDECL_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/),
_GL_CXXALIAS_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/));
_GL_CXXALIASWARN (mkstemps);
#elif defined GNULIB_POSIXCHECK
-# undef mkstemps
# if HAVE_RAW_DECL_MKSTEMPS
_GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - "
"use gnulib module mkstemps for portability");
@@ -1039,7 +1026,6 @@ _GL_CXXALIAS_SYS (posix_memalign, int,
_GL_CXXALIASWARN (posix_memalign);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef posix_memalign
# if HAVE_RAW_DECL_POSIX_MEMALIGN
_GL_WARN_ON_USE (posix_memalign, "posix_memalign is not portable - "
"use gnulib module posix_memalign for portability");
@@ -1066,7 +1052,6 @@ _GL_CXXALIAS_SYS (posix_openpt, int, (int flags));
_GL_CXXALIASWARN (posix_openpt);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef posix_openpt
# if HAVE_RAW_DECL_POSIX_OPENPT
_GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - "
"use gnulib module posix_openpt for portability");
@@ -1091,7 +1076,6 @@ _GL_CXXALIAS_SYS (ptsname, char *, (int fd));
# endif
_GL_CXXALIASWARN (ptsname);
#elif defined GNULIB_POSIXCHECK
-# undef ptsname
# if HAVE_RAW_DECL_PTSNAME
_GL_WARN_ON_USE (ptsname, "ptsname is not portable - "
"use gnulib module ptsname for portability");
@@ -1120,7 +1104,6 @@ _GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len));
# endif
_GL_CXXALIASWARN (ptsname_r);
#elif defined GNULIB_POSIXCHECK
-# undef ptsname_r
# if HAVE_RAW_DECL_PTSNAME_R
_GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - "
"use gnulib module ptsname_r for portability");
@@ -1214,7 +1197,6 @@ _GL_CXXALIAS_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size,
_GL_CXXALIASWARN (qsort_r);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef qsort_r
# if HAVE_RAW_DECL_QSORT_R
_GL_WARN_ON_USE (qsort_r, "qsort_r is not portable - "
"use gnulib module qsort_r for portability");
@@ -1266,7 +1248,6 @@ _GL_CXXALIAS_SYS_CAST (random, long, (void));
_GL_CXXALIASWARN (random);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef random
# if HAVE_RAW_DECL_RANDOM
_GL_WARN_ON_USE (random, "random is unportable - "
"use gnulib module random for portability");
@@ -1293,7 +1274,6 @@ _GL_CXXALIAS_SYS_CAST (srandom, void, (unsigned int seed));
_GL_CXXALIASWARN (srandom);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef srandom
# if HAVE_RAW_DECL_SRANDOM
_GL_WARN_ON_USE (srandom, "srandom is unportable - "
"use gnulib module random for portability");
@@ -1326,7 +1306,6 @@ _GL_CXXALIAS_SYS_CAST (initstate, char *,
_GL_CXXALIASWARN (initstate);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef initstate
# if HAVE_RAW_DECL_INITSTATE
_GL_WARN_ON_USE (initstate, "initstate is unportable - "
"use gnulib module random for portability");
@@ -1353,7 +1332,6 @@ _GL_CXXALIAS_SYS_CAST (setstate, char *, (char *arg_state));
_GL_CXXALIASWARN (setstate);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef setstate
# if HAVE_RAW_DECL_SETSTATE
_GL_WARN_ON_USE (setstate, "setstate is unportable - "
"use gnulib module random for portability");
@@ -1379,7 +1357,6 @@ _GL_CXXALIAS_SYS (random_r, int, (struct random_data *buf, int32_t *result));
# endif
_GL_CXXALIASWARN (random_r);
#elif defined GNULIB_POSIXCHECK
-# undef random_r
# if HAVE_RAW_DECL_RANDOM_R
_GL_WARN_ON_USE (random_r, "random_r is unportable - "
"use gnulib module random_r for portability");
@@ -1408,7 +1385,6 @@ _GL_CXXALIAS_SYS (srandom_r, int,
# endif
_GL_CXXALIASWARN (srandom_r);
#elif defined GNULIB_POSIXCHECK
-# undef srandom_r
# if HAVE_RAW_DECL_SRANDOM_R
_GL_WARN_ON_USE (srandom_r, "srandom_r is unportable - "
"use gnulib module random_r for portability");
@@ -1443,7 +1419,6 @@ _GL_CXXALIAS_SYS_CAST (initstate_r, int,
# endif
_GL_CXXALIASWARN (initstate_r);
#elif defined GNULIB_POSIXCHECK
-# undef initstate_r
# if HAVE_RAW_DECL_INITSTATE_R
_GL_WARN_ON_USE (initstate_r, "initstate_r is unportable - "
"use gnulib module random_r for portability");
@@ -1474,7 +1449,6 @@ _GL_CXXALIAS_SYS_CAST (setstate_r, int,
# endif
_GL_CXXALIASWARN (setstate_r);
#elif defined GNULIB_POSIXCHECK
-# undef setstate_r
# if HAVE_RAW_DECL_SETSTATE_R
_GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - "
"use gnulib module random_r for portability");
@@ -1544,7 +1518,6 @@ _GL_FUNCDECL_SYS (realloc, void *,
# endif
# endif
# if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
-# undef realloc
/* Assume realloc is always declared. */
_GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - "
"use gnulib module realloc-posix for portability");
@@ -1576,7 +1549,6 @@ _GL_CXXALIAS_SYS (reallocarray, void *,
_GL_CXXALIASWARN (reallocarray);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef reallocarray
# if HAVE_RAW_DECL_REALLOCARRAY
_GL_WARN_ON_USE (reallocarray, "reallocarray is not portable - "
"use gnulib module reallocarray for portability");
@@ -1604,7 +1576,6 @@ _GL_CXXALIAS_SYS (realpath, char *,
# endif
_GL_CXXALIASWARN (realpath);
#elif defined GNULIB_POSIXCHECK
-# undef realpath
# if HAVE_RAW_DECL_REALPATH
_GL_WARN_ON_USE (realpath, "realpath is unportable - use gnulib module "
"canonicalize or canonicalize-lgpl for portability");
@@ -1621,7 +1592,6 @@ _GL_FUNCDECL_SYS (rpmatch, int, (const char *response),
_GL_CXXALIAS_SYS (rpmatch, int, (const char *response));
_GL_CXXALIASWARN (rpmatch);
#elif defined GNULIB_POSIXCHECK
-# undef rpmatch
# if HAVE_RAW_DECL_RPMATCH
_GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - "
"use gnulib module rpmatch for portability");
@@ -1638,7 +1608,6 @@ _GL_FUNCDECL_SYS (secure_getenv, char *,
_GL_CXXALIAS_SYS (secure_getenv, char *, (char const *name));
_GL_CXXALIASWARN (secure_getenv);
#elif defined GNULIB_POSIXCHECK
-# undef secure_getenv
# if HAVE_RAW_DECL_SECURE_GETENV
_GL_WARN_ON_USE (secure_getenv, "secure_getenv is unportable - "
"use gnulib module secure_getenv for portability");
@@ -1671,7 +1640,6 @@ _GL_CXXALIAS_SYS (setenv, int,
_GL_CXXALIASWARN (setenv);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef setenv
# if HAVE_RAW_DECL_SETENV
_GL_WARN_ON_USE (setenv, "setenv is unportable - "
"use gnulib module setenv for portability");
@@ -1716,7 +1684,6 @@ _GL_CXXALIAS_SYS (strtod, double,
_GL_CXXALIASWARN (strtod);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strtod
# if HAVE_RAW_DECL_STRTOD
_GL_WARN_ON_USE (strtod, "strtod is unportable - "
"use gnulib module strtod for portability");
@@ -1748,7 +1715,6 @@ _GL_CXXALIAS_SYS (strtof, float,
_GL_CXXALIASWARN (strtof);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strtof
# if HAVE_RAW_DECL_STRTOF
_GL_WARN_ON_USE (strtof, "strtof is unportable - "
"use gnulib module strtof for portability");
@@ -1778,7 +1744,6 @@ _GL_CXXALIAS_SYS (strtold, long double,
# endif
_GL_CXXALIASWARN (strtold);
#elif defined GNULIB_POSIXCHECK
-# undef strtold
# if HAVE_RAW_DECL_STRTOLD
_GL_WARN_ON_USE (strtold, "strtold is unportable - "
"use gnulib module strtold for portability");
@@ -1821,7 +1786,6 @@ _GL_CXXALIAS_SYS (strtol, long,
_GL_CXXALIASWARN (strtol);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strtol
# if HAVE_RAW_DECL_STRTOL
_GL_WARN_ON_USE (strtol, "strtol is unportable - "
"use gnulib module strtol for portability");
@@ -1862,7 +1826,6 @@ _GL_CXXALIAS_SYS (strtoll, long long,
# endif
_GL_CXXALIASWARN (strtoll);
#elif defined GNULIB_POSIXCHECK
-# undef strtoll
# if HAVE_RAW_DECL_STRTOLL
_GL_WARN_ON_USE (strtoll, "strtoll is unportable - "
"use gnulib module strtoll for portability");
@@ -1904,7 +1867,6 @@ _GL_CXXALIAS_SYS (strtoul, unsigned long,
_GL_CXXALIASWARN (strtoul);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strtoul
# if HAVE_RAW_DECL_STRTOUL
_GL_WARN_ON_USE (strtoul, "strtoul is unportable - "
"use gnulib module strtoul for portability");
@@ -1945,7 +1907,6 @@ _GL_CXXALIAS_SYS (strtoull, unsigned long long,
# endif
_GL_CXXALIASWARN (strtoull);
#elif defined GNULIB_POSIXCHECK
-# undef strtoull
# if HAVE_RAW_DECL_STRTOULL
_GL_WARN_ON_USE (strtoull, "strtoull is unportable - "
"use gnulib module strtoull for portability");
@@ -1961,7 +1922,6 @@ _GL_FUNCDECL_SYS (unlockpt, int, (int fd), );
_GL_CXXALIAS_SYS (unlockpt, int, (int fd));
_GL_CXXALIASWARN (unlockpt);
#elif defined GNULIB_POSIXCHECK
-# undef unlockpt
# if HAVE_RAW_DECL_UNLOCKPT
_GL_WARN_ON_USE (unlockpt, "unlockpt is not portable - "
"use gnulib module unlockpt for portability");
@@ -1987,7 +1947,6 @@ _GL_CXXALIAS_SYS (unsetenv, int, (const char *name));
_GL_CXXALIASWARN (unsetenv);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef unsetenv
# if HAVE_RAW_DECL_UNSETENV
_GL_WARN_ON_USE (unsetenv, "unsetenv is unportable - "
"use gnulib module unsetenv for portability");
diff --git a/lib/str-two-way.h b/lib/str-two-way.h
index d13fb298..7cf91ffd 100644
--- a/lib/str-two-way.h
+++ b/lib/str-two-way.h
@@ -1,5 +1,5 @@
/* Byte-wise substring search, using the Two-Way algorithm.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Eric Blake <ebb9@byu.net>, 2008.
@@ -108,13 +108,6 @@ static size_t
critical_factorization (const unsigned char *needle, size_t needle_len,
size_t *period)
{
- /* Index of last byte of left half, or SIZE_MAX. */
- size_t max_suffix, max_suffix_rev;
- size_t j; /* Index into NEEDLE for current candidate suffix. */
- size_t k; /* Offset into current period. */
- size_t p; /* Intermediate period. */
- unsigned char a, b; /* Current comparison bytes. */
-
/* Special case NEEDLE_LEN of 1 or 2 (all callers already filtered
out 0-length needles. */
if (needle_len < 3)
@@ -133,73 +126,83 @@ critical_factorization (const unsigned char *needle, size_t needle_len,
*/
/* Perform lexicographic search. */
- max_suffix = SIZE_MAX;
- j = 0;
- k = p = 1;
- while (j + k < needle_len)
- {
- a = CANON_ELEMENT (needle[j + k]);
- b = CANON_ELEMENT (needle[max_suffix + k]);
- if (a < b)
- {
- /* Suffix is smaller, period is entire prefix so far. */
- j += k;
- k = 1;
- p = j - max_suffix;
- }
- else if (a == b)
- {
- /* Advance through repetition of the current period. */
- if (k != p)
- ++k;
- else
- {
- j += p;
- k = 1;
- }
- }
- else /* b < a */
- {
- /* Suffix is larger, start over from current location. */
- max_suffix = j++;
- k = p = 1;
- }
- }
- *period = p;
+ size_t max_suffix = /* Index of last byte of left half, or SIZE_MAX. */
+ SIZE_MAX;
+ {
+ size_t j = 0; /* Index into NEEDLE for current candidate suffix. */
+ size_t k = 1; /* Offset into current period. */
+ size_t p = 1; /* Intermediate period. */
+ while (j + k < needle_len)
+ {
+ unsigned char a = CANON_ELEMENT (needle[j + k]);
+ unsigned char b = CANON_ELEMENT (needle[max_suffix + k]);
+ if (a < b)
+ {
+ /* Suffix is smaller, period is entire prefix so far. */
+ j += k;
+ k = 1;
+ p = j - max_suffix;
+ }
+ else if (a == b)
+ {
+ /* Advance through repetition of the current period. */
+ if (k != p)
+ ++k;
+ else
+ {
+ j += p;
+ k = 1;
+ }
+ }
+ else /* b < a */
+ {
+ /* Suffix is larger, start over from current location. */
+ max_suffix = j++;
+ k = p = 1;
+ }
+ }
+ *period = p;
+ }
/* Perform reverse lexicographic search. */
- max_suffix_rev = SIZE_MAX;
- j = 0;
- k = p = 1;
- while (j + k < needle_len)
- {
- a = CANON_ELEMENT (needle[j + k]);
- b = CANON_ELEMENT (needle[max_suffix_rev + k]);
- if (b < a)
- {
- /* Suffix is smaller, period is entire prefix so far. */
- j += k;
- k = 1;
- p = j - max_suffix_rev;
- }
- else if (a == b)
- {
- /* Advance through repetition of the current period. */
- if (k != p)
- ++k;
- else
- {
- j += p;
- k = 1;
- }
- }
- else /* a < b */
- {
- /* Suffix is larger, start over from current location. */
- max_suffix_rev = j++;
- k = p = 1;
- }
- }
+ size_t max_suffix_rev = /* Index of last byte of left half, or SIZE_MAX. */
+ SIZE_MAX;
+ size_t p_rev;
+ {
+ size_t j = 0; /* Index into NEEDLE for current candidate suffix. */
+ size_t k = 1; /* Offset into current period. */
+ size_t p = 1; /* Intermediate period. */
+ while (j + k < needle_len)
+ {
+ unsigned char a = CANON_ELEMENT (needle[j + k]);
+ unsigned char b = CANON_ELEMENT (needle[max_suffix_rev + k]);
+ if (b < a)
+ {
+ /* Suffix is smaller, period is entire prefix so far. */
+ j += k;
+ k = 1;
+ p = j - max_suffix_rev;
+ }
+ else if (a == b)
+ {
+ /* Advance through repetition of the current period. */
+ if (k != p)
+ ++k;
+ else
+ {
+ j += p;
+ k = 1;
+ }
+ }
+ else /* a < b */
+ {
+ /* Suffix is larger, start over from current location. */
+ max_suffix_rev = j++;
+ k = p = 1;
+ }
+ }
+ p_rev = p;
+ }
/* Choose the shorter suffix. Return the index of the first byte of
the right half, rather than the last byte of the left half.
@@ -217,7 +220,7 @@ critical_factorization (const unsigned char *needle, size_t needle_len,
factorization. */
if (max_suffix_rev + 1 < max_suffix + 1)
return max_suffix + 1;
- *period = p;
+ *period = p_rev;
return max_suffix_rev + 1;
}
@@ -235,15 +238,12 @@ static RETURN_TYPE _GL_ATTRIBUTE_PURE
two_way_short_needle (const unsigned char *haystack, size_t haystack_len,
const unsigned char *needle, size_t needle_len)
{
- size_t i; /* Index into current byte of NEEDLE. */
- size_t j; /* Index into current window of HAYSTACK. */
- size_t period; /* The period of the right half of needle. */
- size_t suffix; /* The index of the right half of needle. */
-
/* Factor the needle into two halves, such that the left half is
smaller than the global period, and the right half is
periodic (with a period as large as NEEDLE_LEN - suffix). */
- suffix = critical_factorization (needle, needle_len, &period);
+ size_t period; /* The period of the right half of needle. */
+ size_t suffix = /* The index of the right half of needle. */
+ critical_factorization (needle, needle_len, &period);
/* Perform the search. Each iteration compares the right half
first. */
@@ -253,11 +253,12 @@ two_way_short_needle (const unsigned char *haystack, size_t haystack_len,
only advance by the period, so use memory to avoid rescanning
known occurrences of the period in the right half. */
size_t memory = 0;
- j = 0;
+ size_t j = 0; /* Index into current window of HAYSTACK. */
while (AVAILABLE (haystack, haystack_len, j, needle_len))
{
/* Scan for matches in right half. */
- i = MAX (suffix, memory);
+ size_t i = /* Index into current byte of NEEDLE. */
+ MAX (suffix, memory);
while (i < needle_len && (CANON_ELEMENT (needle[i])
== CANON_ELEMENT (haystack[i + j])))
++i;
@@ -287,11 +288,12 @@ two_way_short_needle (const unsigned char *haystack, size_t haystack_len,
/* The two halves of needle are distinct; no extra memory is
required, and any mismatch results in a maximal shift. */
period = MAX (suffix, needle_len - suffix) + 1;
- j = 0;
+ size_t j = 0; /* Index into current window of HAYSTACK. */
while (AVAILABLE (haystack, haystack_len, j, needle_len))
{
/* Scan for matches in right half. */
- i = suffix;
+ size_t i = /* Index into current byte of NEEDLE. */
+ suffix;
while (i < needle_len && (CANON_ELEMENT (needle[i])
== CANON_ELEMENT (haystack[i + j])))
++i;
@@ -329,24 +331,21 @@ static RETURN_TYPE _GL_ATTRIBUTE_PURE
two_way_long_needle (const unsigned char *haystack, size_t haystack_len,
const unsigned char *needle, size_t needle_len)
{
- size_t i; /* Index into current byte of NEEDLE. */
- size_t j; /* Index into current window of HAYSTACK. */
- size_t period; /* The period of the right half of needle. */
- size_t suffix; /* The index of the right half of needle. */
- size_t shift_table[1U << CHAR_BIT]; /* See below. */
-
/* Factor the needle into two halves, such that the left half is
smaller than the global period, and the right half is
periodic (with a period as large as NEEDLE_LEN - suffix). */
- suffix = critical_factorization (needle, needle_len, &period);
+ size_t period; /* The period of the right half of needle. */
+ size_t suffix = /* The index of the right half of needle. */
+ critical_factorization (needle, needle_len, &period);
/* Populate shift_table. For each possible byte value c,
shift_table[c] is the distance from the last occurrence of c to
the end of NEEDLE, or NEEDLE_LEN if c is absent from the NEEDLE.
shift_table[NEEDLE[NEEDLE_LEN - 1]] contains the only 0. */
- for (i = 0; i < 1U << CHAR_BIT; i++)
+ size_t shift_table[1U << CHAR_BIT];
+ for (size_t i = 0; i < 1U << CHAR_BIT; i++)
shift_table[i] = needle_len;
- for (i = 0; i < needle_len; i++)
+ for (size_t i = 0; i < needle_len; i++)
shift_table[CANON_ELEMENT (needle[i])] = needle_len - i - 1;
/* Perform the search. Each iteration compares the right half
@@ -357,13 +356,13 @@ two_way_long_needle (const unsigned char *haystack, size_t haystack_len,
only advance by the period, so use memory to avoid rescanning
known occurrences of the period in the right half. */
size_t memory = 0;
- size_t shift;
- j = 0;
+ size_t j = 0; /* Index into current window of HAYSTACK. */
while (AVAILABLE (haystack, haystack_len, j, needle_len))
{
/* Check the last byte first; if it does not match, then
shift to the next possible match location. */
- shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])];
+ size_t shift =
+ shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])];
if (0 < shift)
{
if (memory && shift < period)
@@ -375,32 +374,34 @@ two_way_long_needle (const unsigned char *haystack, size_t haystack_len,
}
memory = 0;
j += shift;
- continue;
- }
- /* Scan for matches in right half. The last byte has
- already been matched, by virtue of the shift table. */
- i = MAX (suffix, memory);
- while (i < needle_len - 1 && (CANON_ELEMENT (needle[i])
- == CANON_ELEMENT (haystack[i + j])))
- ++i;
- if (needle_len - 1 <= i)
- {
- /* Scan for matches in left half. */
- i = suffix - 1;
- while (memory < i + 1 && (CANON_ELEMENT (needle[i])
- == CANON_ELEMENT (haystack[i + j])))
- --i;
- if (i + 1 < memory + 1)
- return (RETURN_TYPE) (haystack + j);
- /* No match, so remember how many repetitions of period
- on the right half were scanned. */
- j += period;
- memory = needle_len - period;
}
else
{
- j += i - suffix + 1;
- memory = 0;
+ /* Scan for matches in right half. The last byte has
+ already been matched, by virtue of the shift table. */
+ size_t i = MAX (suffix, memory);
+ while (i < needle_len - 1 && (CANON_ELEMENT (needle[i])
+ == CANON_ELEMENT (haystack[i + j])))
+ ++i;
+ if (needle_len - 1 <= i)
+ {
+ /* Scan for matches in left half. */
+ i = suffix - 1;
+ while (memory < i + 1 && (CANON_ELEMENT (needle[i])
+ == CANON_ELEMENT (haystack[i + j])))
+ --i;
+ if (i + 1 < memory + 1)
+ return (RETURN_TYPE) (haystack + j);
+ /* No match, so remember how many repetitions of period
+ on the right half were scanned. */
+ j += period;
+ memory = needle_len - period;
+ }
+ else
+ {
+ j += i - suffix + 1;
+ memory = 0;
+ }
}
}
}
@@ -408,38 +409,40 @@ two_way_long_needle (const unsigned char *haystack, size_t haystack_len,
{
/* The two halves of needle are distinct; no extra memory is
required, and any mismatch results in a maximal shift. */
- size_t shift;
period = MAX (suffix, needle_len - suffix) + 1;
- j = 0;
+ size_t j = 0; /* Index into current window of HAYSTACK. */
while (AVAILABLE (haystack, haystack_len, j, needle_len))
{
/* Check the last byte first; if it does not match, then
shift to the next possible match location. */
- shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])];
+ size_t shift =
+ shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])];
if (0 < shift)
{
j += shift;
- continue;
}
- /* Scan for matches in right half. The last byte has
- already been matched, by virtue of the shift table. */
- i = suffix;
- while (i < needle_len - 1 && (CANON_ELEMENT (needle[i])
- == CANON_ELEMENT (haystack[i + j])))
- ++i;
- if (needle_len - 1 <= i)
+ else
{
- /* Scan for matches in left half. */
- i = suffix - 1;
- while (i != SIZE_MAX && (CANON_ELEMENT (needle[i])
- == CANON_ELEMENT (haystack[i + j])))
- --i;
- if (i == SIZE_MAX)
- return (RETURN_TYPE) (haystack + j);
- j += period;
+ /* Scan for matches in right half. The last byte has
+ already been matched, by virtue of the shift table. */
+ size_t i = suffix;
+ while (i < needle_len - 1 && (CANON_ELEMENT (needle[i])
+ == CANON_ELEMENT (haystack[i + j])))
+ ++i;
+ if (needle_len - 1 <= i)
+ {
+ /* Scan for matches in left half. */
+ i = suffix - 1;
+ while (i != SIZE_MAX && (CANON_ELEMENT (needle[i])
+ == CANON_ELEMENT (haystack[i + j])))
+ --i;
+ if (i == SIZE_MAX)
+ return (RETURN_TYPE) (haystack + j);
+ j += period;
+ }
+ else
+ j += i - suffix + 1;
}
- else
- j += i - suffix + 1;
}
}
return NULL;
diff --git a/lib/streq.h b/lib/streq-opt.h
index eb0df460..31f0e775 100644
--- a/lib/streq.h
+++ b/lib/streq-opt.h
@@ -1,5 +1,5 @@
/* Optimized string comparison.
- Copyright (C) 2001-2002, 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -16,8 +16,8 @@
/* Written by Bruno Haible <bruno@clisp.org>. */
-#ifndef _GL_STREQ_H
-#define _GL_STREQ_H
+#ifndef _GL_STREQ_OPT_H
+#define _GL_STREQ_OPT_H
#include <string.h>
@@ -183,4 +183,4 @@ streq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23,
}
#endif
-#endif /* _GL_STREQ_H */
+#endif /* _GL_STREQ_OPT_H */
diff --git a/lib/striconveh.c b/lib/striconveh.c
index 9289591b..b345923d 100644
--- a/lib/striconveh.c
+++ b/lib/striconveh.c
@@ -1,5 +1,5 @@
/* Character set conversion with error handling.
- Copyright (C) 2001-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2026 Free Software Foundation, Inc.
Written by Bruno Haible and Simon Josefsson.
This file is free software: you can redistribute it and/or modify
@@ -46,12 +46,9 @@
int
iconveh_open (const char *to_codeset, const char *from_codeset, iconveh_t *cdp)
{
- iconv_t cd;
- iconv_t cd1;
- iconv_t cd2;
-
- cd = iconv_open (to_codeset, from_codeset);
+ iconv_t cd = iconv_open (to_codeset, from_codeset);
+ iconv_t cd1;
if (STRCASEEQ (from_codeset, "UTF-8", 'U','T','F','-','8',0,0,0,0))
cd1 = (iconv_t)(-1);
else
@@ -67,6 +64,7 @@ iconveh_open (const char *to_codeset, const char *from_codeset, iconveh_t *cdp)
}
}
+ iconv_t cd2;
if (STRCASEEQ (to_codeset, "UTF-8", 'U','T','F','-','8',0,0,0,0)
# if (((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2) \
&& !defined __UCLIBC__) \
@@ -148,12 +146,10 @@ iconv_carefully (iconv_t cd,
do
{
- size_t insize;
-
inptr_before = inptr;
res = (size_t)(-1);
- for (insize = 1; inptr + insize <= inptr_end; insize++)
+ for (size_t insize = 1; inptr + insize <= inptr_end; insize++)
{
res = iconv (cd,
(ICONV_CONST char **) &inptr, &insize,
@@ -215,9 +211,8 @@ iconv_carefully_1 (iconv_t cd,
char *outptr = *outbuf;
size_t outsize = *outbytesleft;
size_t res = (size_t)(-1);
- size_t insize;
- for (insize = 1; inptr_before + insize <= inptr_end; insize++)
+ for (size_t insize = 1; inptr_before + insize <= inptr_end; insize++)
{
inptr = inptr_before;
res = iconv (cd,
@@ -279,16 +274,11 @@ utf8conv_carefully (bool one_character_only,
size_t insize = *inbytesleft;
char *outptr = *outbuf;
size_t outsize = *outbytesleft;
- size_t res;
-
- res = 0;
+ size_t res = 0;
do
{
ucs4_t uc;
- int n;
- int m;
-
- n = u8_mbtoucr (&uc, (const uint8_t *) inptr, insize);
+ int n = u8_mbtoucr (&uc, (const uint8_t *) inptr, insize);
if (n < 0)
{
errno = (n == -2 ? EINVAL : EILSEQ);
@@ -306,7 +296,7 @@ utf8conv_carefully (bool one_character_only,
*incremented = false;
break;
}
- m = u8_uctomb ((uint8_t *) outptr, uc, outsize);
+ int m = u8_uctomb ((uint8_t *) outptr, uc, outsize);
if (m == -2)
{
errno = E2BIG;
@@ -355,11 +345,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
# define tmpbuf tmp.buf
char *initial_result;
- char *result;
size_t allocated;
- size_t length;
- size_t last_length = (size_t)(-1); /* only needed if offsets != NULL */
-
if (*resultp != NULL && *lengthp >= sizeof (tmpbuf))
{
initial_result = *resultp;
@@ -370,40 +356,39 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
initial_result = tmpbuf;
allocated = sizeof (tmpbuf);
}
- result = initial_result;
+
+ char *result = initial_result;
/* Test whether a direct conversion is possible at all. */
if (cd == (iconv_t)(-1))
goto indirectly;
+ size_t last_length = (size_t)(-1); /* only needed if offsets != NULL */
if (offsets != NULL)
{
- size_t i;
-
- for (i = 0; i < srclen; i++)
+ for (size_t i = 0; i < srclen; i++)
offsets[i] = (size_t)(-1);
last_length = (size_t)(-1);
}
- length = 0;
+ size_t length = 0;
/* First, try a direct conversion, and see whether a conversion error
occurs at all. */
{
- const char *inptr = src;
- size_t insize = srclen;
-
/* Set to the initial state. */
iconv (cd, NULL, NULL, NULL, NULL);
+ const char *inptr = src;
+ size_t insize = srclen;
+
while (insize > 0)
{
char *outptr = result + length;
size_t outsize = allocated - extra_alloc - length;
+
bool incremented;
size_t res;
- bool grow;
-
if (offsets != NULL)
{
if (length != last_length) /* ensure that offset[] be increasing */
@@ -429,7 +414,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
&incremented);
length = outptr - result;
- grow = (length + extra_alloc > allocated / 2);
+ bool grow = (length + extra_alloc > allocated / 2);
if (res == (size_t)(-1))
{
if (errno == E2BIG)
@@ -447,13 +432,12 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
(handler == iconveh_replacement_character ? 3 : 1);
if (length + extra_need + extra_alloc > allocated)
{
- char *memory;
-
allocated = 2 * allocated;
if (length + extra_need + extra_alloc > allocated)
allocated = 2 * allocated;
if (length + extra_need + extra_alloc > allocated)
abort ();
+ char *memory;
if (result == initial_result)
memory = (char *) malloc (allocated);
else
@@ -507,9 +491,8 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
break;
if (grow)
{
- char *memory;
-
allocated = 2 * allocated;
+ char *memory;
if (result == initial_result)
memory = (char *) malloc (allocated);
else
@@ -537,17 +520,15 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
{
char *outptr = result + length;
size_t outsize = allocated - extra_alloc - length;
- size_t res;
-
- res = iconv (cd, NULL, NULL, &outptr, &outsize);
+ size_t res = iconv (cd, NULL, NULL, &outptr, &outsize);
length = outptr - result;
if (res == (size_t)(-1))
{
if (errno == E2BIG)
{
- char *memory;
allocated = 2 * allocated;
+ char *memory;
if (result == initial_result)
memory = (char *) malloc (allocated);
else
@@ -583,15 +564,19 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
Use a conversion through UTF-8. */
if (offsets != NULL)
{
- size_t i;
-
- for (i = 0; i < srclen; i++)
+ for (size_t i = 0; i < srclen; i++)
offsets[i] = (size_t)(-1);
last_length = (size_t)(-1);
}
length = 0;
{
+ /* Set to the initial state. */
+ if (cd1 != (iconv_t)(-1))
+ iconv (cd1, NULL, NULL, NULL, NULL);
+ if (cd2 != (iconv_t)(-1))
+ iconv (cd2, NULL, NULL, NULL, NULL);
+
const bool slowly = (offsets != NULL || handler == iconveh_error);
# define utf8bufsize 4096 /* may also be smaller or larger than tmpbufsize */
char utf8buf[utf8bufsize + 3];
@@ -601,21 +586,14 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
bool do_final_flush1 = true;
bool do_final_flush2 = true;
- /* Set to the initial state. */
- if (cd1 != (iconv_t)(-1))
- iconv (cd1, NULL, NULL, NULL, NULL);
- if (cd2 != (iconv_t)(-1))
- iconv (cd2, NULL, NULL, NULL, NULL);
-
while (in1size > 0 || do_final_flush1 || utf8len > 0 || do_final_flush2)
{
char *out1ptr = utf8buf + utf8len;
size_t out1size = utf8bufsize - utf8len;
- bool incremented1;
- size_t res1;
- int errno1;
/* Conversion step 1: from FROM_CODESET to UTF-8. */
+ bool incremented1;
+ size_t res1;
if (in1size > 0)
{
if (offsets != NULL
@@ -698,7 +676,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
*out1ptr++ = '?';
res1 = 0;
}
- errno1 = errno;
+ int errno1 = errno;
utf8len = out1ptr - utf8buf;
if (offsets != NULL
@@ -715,10 +693,9 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
{
char *out2ptr = result + length;
size_t out2size = allocated - extra_alloc - length;
+
bool incremented2;
size_t res2;
- bool grow;
-
if (in2size > 0)
{
if (cd2 != (iconv_t)(-1))
@@ -751,7 +728,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
}
length = out2ptr - result;
- grow = (length + extra_alloc > allocated / 2);
+ bool grow = (length + extra_alloc > allocated / 2);
if (res2 == (size_t)(-1))
{
if (errno == E2BIG)
@@ -763,12 +740,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
/* Error handling can produce up to 10 bytes of UTF-8
output. But TO_CODESET may be UCS-2, UTF-16 or
UCS-4, so use CD2 here as well. */
- char scratchbuf[10];
- size_t scratchlen;
ucs4_t uc;
- const char *inptr;
- size_t insize;
- size_t res;
if (incremented2)
{
@@ -788,6 +760,8 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
in2size -= n;
}
+ char scratchbuf[10];
+ size_t scratchlen;
if (handler == iconveh_escape_sequence)
{
static char const hex[16] _GL_ATTRIBUTE_NONSTRING =
@@ -823,8 +797,9 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
scratchlen = 1;
}
- inptr = scratchbuf;
- insize = scratchlen;
+ const char *inptr = scratchbuf;
+ size_t insize = scratchlen;
+ size_t res;
if (cd2 != (iconv_t)(-1))
{
char *out2ptr_try = out2ptr;
@@ -884,11 +859,10 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
length = out2ptr - result;
if (res == (size_t)(-1) && errno == E2BIG)
{
- char *memory;
-
allocated = 2 * allocated;
if (length + 1 + extra_alloc > allocated)
abort ();
+ char *memory;
if (result == initial_result)
memory = (char *) malloc (allocated);
else
@@ -960,9 +934,8 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
break;
if (grow)
{
- char *memory;
-
allocated = 2 * allocated;
+ char *memory;
if (result == initial_result)
memory = (char *) malloc (allocated);
else
@@ -1012,9 +985,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
result = *resultp;
else
{
- char *memory;
-
- memory = (char *) malloc (memsize > 0 ? memsize : 1);
+ char *memory = (char *) malloc (memsize > 0 ? memsize : 1);
if (memory != NULL)
result = memory;
else
@@ -1029,9 +1000,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
{
/* Shrink the allocated memory if possible. */
size_t memsize = length + extra_alloc;
- char *memory;
-
- memory = (char *) realloc (result, memsize > 0 ? memsize : 1);
+ char *memory = (char *) realloc (result, memsize > 0 ? memsize : 1);
if (memory != NULL)
result = memory;
}
@@ -1119,17 +1088,13 @@ mem_iconveh (const char *src, size_t srclen,
{
#if HAVE_ICONV
iconveh_t cd;
- char *result;
- size_t length;
- int retval;
-
if (iconveh_open (to_codeset, from_codeset, &cd) < 0)
return -1;
- result = *resultp;
- length = *lengthp;
- retval = mem_cd_iconveh (src, srclen, &cd, handler, offsets,
- &result, &length);
+ char *result = *resultp;
+ size_t length = *lengthp;
+ int retval = mem_cd_iconveh (src, srclen, &cd, handler, offsets,
+ &result, &length);
if (retval < 0)
{
@@ -1179,12 +1144,10 @@ str_iconveh (const char *src,
{
#if HAVE_ICONV
iconveh_t cd;
- char *result;
-
if (iconveh_open (to_codeset, from_codeset, &cd) < 0)
return NULL;
- result = str_cd_iconveh (src, &cd, handler);
+ char *result = str_cd_iconveh (src, &cd, handler);
if (result == NULL)
{
diff --git a/lib/striconveh.h b/lib/striconveh.h
index c2b94648..7ac05da1 100644
--- a/lib/striconveh.h
+++ b/lib/striconveh.h
@@ -1,5 +1,5 @@
/* Character set conversion with error handling.
- Copyright (C) 2001-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible and Simon Josefsson.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/striconveha.c b/lib/striconveha.c
index b7dec017..4846a2e7 100644
--- a/lib/striconveha.c
+++ b/lib/striconveha.c
@@ -1,5 +1,5 @@
/* Character set conversion with error handling and autodetection.
- Copyright (C) 2002, 2005, 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005, 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible.
This file is free software: you can redistribute it and/or modify
@@ -84,11 +84,6 @@ int
uniconv_register_autodetect (const char *name,
const char * const *try_in_order)
{
- size_t namelen;
- size_t listlen;
- size_t memneed;
- size_t i;
-
/* The TRY_IN_ORDER list must not be empty. */
if (try_in_order[0] == NULL)
{
@@ -98,11 +93,15 @@ uniconv_register_autodetect (const char *name,
/* We must deep-copy NAME and TRY_IN_ORDER, because they may be allocated
with dynamic extent. */
- namelen = strlen (name) + 1;
- memneed = sizeof (struct autodetect_alias) + namelen + sizeof (char *);
- for (i = 0; try_in_order[i] != NULL; i++)
- memneed += sizeof (char *) + strlen (try_in_order[i]) + 1;
- listlen = i;
+ size_t namelen = strlen (name) + 1;
+ size_t memneed = sizeof (struct autodetect_alias) + namelen + sizeof (char *);
+ size_t listlen;
+ {
+ size_t i;
+ for (i = 0; try_in_order[i] != NULL; i++)
+ memneed += sizeof (char *) + strlen (try_in_order[i]) + 1;
+ listlen = i;
+ }
void *memory = malloc (memneed);
if (memory != NULL)
@@ -116,14 +115,17 @@ uniconv_register_autodetect (const char *name,
char *new_name = memcpy (memory, name, namelen);
memory = new_name + namelen;
- for (i = 0; i < listlen; i++)
- {
- size_t len = strlen (try_in_order[i]) + 1;
- char *copy = memcpy (memory, try_in_order[i], len);
- new_try_in_order[i] = copy;
- memory = copy + len;
- }
- new_try_in_order[i] = NULL;
+ {
+ size_t i;
+ for (i = 0; i < listlen; i++)
+ {
+ size_t len = strlen (try_in_order[i]) + 1;
+ char *copy = memcpy (memory, try_in_order[i], len);
+ new_try_in_order[i] = copy;
+ memory = copy + len;
+ }
+ new_try_in_order[i] = NULL;
+ }
/* Now insert the new alias. */
new_alias->name = new_name;
@@ -155,19 +157,17 @@ mem_iconveha_notranslit (const char *src, size_t srclen,
return retval;
else
{
- struct autodetect_alias *alias;
-
/* Unsupported from_codeset or to_codeset. Check whether the caller
requested autodetection. */
- for (alias = autodetect_list; alias != NULL; alias = alias->next)
+ for (struct autodetect_alias *alias = autodetect_list;
+ alias != NULL;
+ alias = alias->next)
if (streq (from_codeset, alias->name))
{
- const char * const *encodings;
-
if (handler != iconveh_error)
{
/* First try all encodings without any forgiving. */
- encodings = alias->encodings_to_try;
+ const char * const *encodings = alias->encodings_to_try;
do
{
retval = mem_iconveha_notranslit (src, srclen,
@@ -181,7 +181,7 @@ mem_iconveha_notranslit (const char *src, size_t srclen,
while (*encodings != NULL);
}
- encodings = alias->encodings_to_try;
+ const char * const *encodings = alias->encodings_to_try;
do
{
retval = mem_iconveha_notranslit (src, srclen,
@@ -227,7 +227,6 @@ mem_iconveha (const char *src, size_t srclen,
|| defined ICONV_SET_TRANSLITERATE
if (transliterate)
{
- int retval;
size_t len = strlen (to_codeset);
char *to_codeset_suffixed = (char *) malloca (len + 10 + 1);
if (to_codeset_suffixed == NULL)
@@ -238,9 +237,9 @@ mem_iconveha (const char *src, size_t srclen,
memcpy (to_codeset_suffixed, to_codeset, len);
memcpy (to_codeset_suffixed + len, "//TRANSLIT", 10 + 1);
- retval = mem_iconveha_notranslit (src, srclen,
- from_codeset, to_codeset_suffixed,
- handler, offsets, resultp, lengthp);
+ int retval = mem_iconveha_notranslit (src, srclen,
+ from_codeset, to_codeset_suffixed,
+ handler, offsets, resultp, lengthp);
freea (to_codeset_suffixed);
@@ -265,19 +264,17 @@ str_iconveha_notranslit (const char *src,
return result;
else
{
- struct autodetect_alias *alias;
-
/* Unsupported from_codeset or to_codeset. Check whether the caller
requested autodetection. */
- for (alias = autodetect_list; alias != NULL; alias = alias->next)
+ for (struct autodetect_alias *alias = autodetect_list;
+ alias != NULL;
+ alias = alias->next)
if (streq (from_codeset, alias->name))
{
- const char * const *encodings;
-
if (handler != iconveh_error)
{
/* First try all encodings without any forgiving. */
- encodings = alias->encodings_to_try;
+ const char * const *encodings = alias->encodings_to_try;
do
{
result = str_iconveha_notranslit (src,
@@ -290,7 +287,7 @@ str_iconveha_notranslit (const char *src,
while (*encodings != NULL);
}
- encodings = alias->encodings_to_try;
+ const char * const *encodings = alias->encodings_to_try;
do
{
result = str_iconveha_notranslit (src,
@@ -335,7 +332,6 @@ str_iconveha (const char *src,
|| defined ICONV_SET_TRANSLITERATE
if (transliterate)
{
- char *result;
size_t len = strlen (to_codeset);
char *to_codeset_suffixed = (char *) malloca (len + 10 + 1);
if (to_codeset_suffixed == NULL)
@@ -346,8 +342,9 @@ str_iconveha (const char *src,
memcpy (to_codeset_suffixed, to_codeset, len);
memcpy (to_codeset_suffixed + len, "//TRANSLIT", 10 + 1);
- result = str_iconveha_notranslit (src, from_codeset, to_codeset_suffixed,
- handler);
+ char *result =
+ str_iconveha_notranslit (src, from_codeset, to_codeset_suffixed,
+ handler);
freea (to_codeset_suffixed);
diff --git a/lib/striconveha.h b/lib/striconveha.h
index 229d78c1..7c90bec7 100644
--- a/lib/striconveha.h
+++ b/lib/striconveha.h
@@ -1,5 +1,5 @@
/* Character set conversion with error handling and autodetection.
- Copyright (C) 2002, 2005, 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005, 2007-2026 Free Software Foundation, Inc.
Written by Bruno Haible.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/string.c b/lib/string.c
index cce2eac9..b8f079aa 100644
--- a/lib/string.c
+++ b/lib/string.c
@@ -1,5 +1,5 @@
-/* streq and memeq functions.
- Copyright (C) 2025 Free Software Foundation, Inc.
+/* streq, memeq, gl_strnul functions.
+ Copyright (C) 2025-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -14,7 +14,6 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_STRING_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <string.h>
diff --git a/lib/string.in.h b/lib/string.in.h
index fdcdd21b..33422a06 100644
--- a/lib/string.in.h
+++ b/lib/string.in.h
@@ -1,6 +1,6 @@
/* A GNU-like <string.h>.
- Copyright (C) 1995-1996, 2001-2025 Free Software Foundation, Inc.
+ Copyright (C) 1995-1996, 2001-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -312,7 +312,6 @@ _GL_FUNCDECL_SYS (explicit_bzero, void,
_GL_CXXALIAS_SYS (explicit_bzero, void, (void *__dest, size_t __n));
_GL_CXXALIASWARN (explicit_bzero);
#elif defined GNULIB_POSIXCHECK
-# undef explicit_bzero
# if HAVE_RAW_DECL_EXPLICIT_BZERO
_GL_WARN_ON_USE (explicit_bzero, "explicit_bzero is unportable - "
"use gnulib module explicit_bzero for portability");
@@ -328,7 +327,6 @@ _GL_FUNCDECL_SYS (ffsl, int, (long int i), );
_GL_CXXALIAS_SYS (ffsl, int, (long int i));
_GL_CXXALIASWARN (ffsl);
#elif defined GNULIB_POSIXCHECK
-# undef ffsl
# if HAVE_RAW_DECL_FFSL
_GL_WARN_ON_USE (ffsl, "ffsl is not portable - use the ffsl module");
# endif
@@ -351,7 +349,6 @@ _GL_CXXALIAS_SYS (ffsll, int, (long long int i));
# endif
_GL_CXXALIASWARN (ffsll);
#elif defined GNULIB_POSIXCHECK
-# undef ffsll
# if HAVE_RAW_DECL_FFSLL
_GL_WARN_ON_USE (ffsll, "ffsll is not portable - use the ffsll module");
# endif
@@ -409,10 +406,11 @@ _GL_CXXALIASWARN1 (memchr, void const *,
_GL_CXXALIASWARN (memchr);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef memchr
/* Assume memchr is always declared. */
-_GL_WARN_ON_USE (memchr, "memchr has platform-specific bugs - "
- "use gnulib module memchr for portability" );
+_GL_WARN_ON_USE_CXX (memchr,
+ const void *, void *, (void const *, int, size_t),
+ "memchr has platform-specific bugs - "
+ "use gnulib module memchr for portability" );
#endif
/* Are S1 and S2, of size N, bytewise equal? */
@@ -458,7 +456,6 @@ _GL_CXXALIAS_SYS (memmem, void *,
# endif
_GL_CXXALIASWARN (memmem);
#elif defined GNULIB_POSIXCHECK
-# undef memmem
# if HAVE_RAW_DECL_MEMMEM
_GL_WARN_ON_USE (memmem, "memmem is unportable and often quadratic - "
"use gnulib module memmem-simple for portability, "
@@ -496,7 +493,6 @@ _GL_CXXALIAS_SYS (mempcpy, void *,
_GL_CXXALIASWARN (mempcpy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mempcpy
# if HAVE_RAW_DECL_MEMPCPY
_GL_WARN_ON_USE (mempcpy, "mempcpy is unportable - "
"use gnulib module mempcpy for portability");
@@ -529,7 +525,6 @@ _GL_CXXALIASWARN1 (memrchr, void const *,
_GL_CXXALIASWARN (memrchr);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef memrchr
# if HAVE_RAW_DECL_MEMRCHR
_GL_WARN_ON_USE (memrchr, "memrchr is unportable - "
"use gnulib module memrchr for portability");
@@ -560,7 +555,6 @@ _GL_CXXALIAS_SYS (memset_explicit, void *, (void *__dest, int __c, size_t __n));
_GL_CXXALIASWARN (memset_explicit);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef memset_explicit
# if HAVE_RAW_DECL_MEMSET_EXPLICIT
_GL_WARN_ON_USE (memset_explicit, "memset_explicit is unportable - "
"use gnulib module memset_explicit for portability");
@@ -595,7 +589,6 @@ _GL_CXXALIASWARN1 (rawmemchr, void const *,
_GL_CXXALIASWARN (rawmemchr);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef rawmemchr
# if HAVE_RAW_DECL_RAWMEMCHR
_GL_WARN_ON_USE (rawmemchr, "rawmemchr is unportable - "
"use gnulib module rawmemchr for portability");
@@ -627,7 +620,6 @@ _GL_CXXALIAS_SYS (stpcpy, char *,
_GL_CXXALIASWARN (stpcpy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef stpcpy
# if HAVE_RAW_DECL_STPCPY
_GL_WARN_ON_USE (stpcpy, "stpcpy is unportable - "
"use gnulib module stpcpy for portability");
@@ -664,7 +656,6 @@ _GL_CXXALIAS_SYS (stpncpy, char *,
_GL_CXXALIASWARN (stpncpy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef stpncpy
# if HAVE_RAW_DECL_STPNCPY
_GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - "
"use gnulib module stpncpy for portability");
@@ -674,7 +665,6 @@ _GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - "
#if defined GNULIB_POSIXCHECK
/* strchr() does not work with multibyte strings if the locale encoding is
GB18030 and the character to be searched is a digit. */
-# undef strchr
/* Assume strchr is always declared. */
_GL_WARN_ON_USE_CXX (strchr,
const char *, char *, (const char *, int),
@@ -720,7 +710,6 @@ _GL_CXXALIASWARN1 (strchrnul, char const *,
_GL_CXXALIASWARN (strchrnul);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strchrnul
# if HAVE_RAW_DECL_STRCHRNUL
_GL_WARN_ON_USE (strchrnul, "strchrnul is unportable - "
"use gnulib module strchrnul for portability");
@@ -785,7 +774,6 @@ _GL_FUNCDECL_SYS (strdup, char *,
# endif
# endif
# if defined GNULIB_POSIXCHECK
-# undef strdup
# if HAVE_RAW_DECL_STRDUP
_GL_WARN_ON_USE (strdup, "strdup is unportable - "
"use gnulib module strdup for portability");
@@ -846,13 +834,41 @@ _GL_CXXALIAS_SYS (strncat, char *,
_GL_CXXALIASWARN (strncat);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strncat
# if HAVE_RAW_DECL_STRNCAT
_GL_WARN_ON_USE (strncat, "strncat is unportable - "
"use gnulib module strncat for portability");
# endif
#endif
+/* Copy no more than N bytes of SRC to DST, returning DST. */
+#if @GNULIB_STRNCPY@
+# if @REPLACE_STRNCPY@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef strncpy
+# define strncpy rpl_strncpy
+# endif
+_GL_FUNCDECL_RPL (strncpy, char *,
+ (char *restrict __dst, char const *restrict __src,
+ size_t __n),
+ _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (strncpy, char *,
+ (char *restrict __dst, char const *restrict __src,
+ size_t __n));
+# else
+_GL_CXXALIAS_SYS (strncpy, char *,
+ (char *restrict __dst, char const *restrict __src,
+ size_t __n));
+# endif
+# if __GLIBC__ >= 2
+_GL_CXXALIASWARN (strncpy);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# if HAVE_RAW_DECL_STRNCPY
+_GL_WARN_ON_USE (strncpy, "strncpy is unportable - "
+ "use gnulib module strncpy for portability");
+# endif
+#endif
+
/* Return a newly allocated copy of at most N bytes of STRING. */
#if @GNULIB_STRNDUP@
# if @REPLACE_STRNDUP@
@@ -901,7 +917,6 @@ _GL_FUNCDECL_SYS (strndup, char *,
# endif
# endif
# if defined GNULIB_POSIXCHECK
-# undef strndup
# if HAVE_RAW_DECL_STRNDUP
_GL_WARN_ON_USE (strndup, "strndup is unportable - "
"use gnulib module strndup for portability");
@@ -932,7 +947,6 @@ _GL_CXXALIAS_SYS (strnlen, size_t, (char const *__s, size_t __maxlen));
# endif
_GL_CXXALIASWARN (strnlen);
#elif defined GNULIB_POSIXCHECK
-# undef strnlen
# if HAVE_RAW_DECL_STRNLEN
_GL_WARN_ON_USE (strnlen, "strnlen is unportable - "
"use gnulib module strnlen for portability");
@@ -944,7 +958,6 @@ _GL_WARN_ON_USE (strnlen, "strnlen is unportable - "
Even in this simple case, it does not work with multibyte strings if the
locale encoding is GB18030 and one of the characters to be searched is a
digit. */
-# undef strcspn
/* Assume strcspn is always declared. */
_GL_WARN_ON_USE (strcspn, "strcspn cannot work correctly on character strings "
"in multibyte locales - "
@@ -981,7 +994,6 @@ _GL_CXXALIASWARN (strpbrk);
Even in this simple case, it does not work with multibyte strings if the
locale encoding is GB18030 and one of the characters to be searched is a
digit. */
-# undef strpbrk
_GL_WARN_ON_USE_CXX (strpbrk,
const char *, char *, (const char *, const char *),
"strpbrk cannot work correctly on character strings "
@@ -1001,7 +1013,6 @@ _GL_WARN_ON_USE_CXX (strpbrk,
#if defined GNULIB_POSIXCHECK
/* strspn() assumes the second argument is a list of single-byte characters.
Even in this simple case, it cannot work with multibyte strings. */
-# undef strspn
/* Assume strspn is always declared. */
_GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings "
"in multibyte locales - "
@@ -1011,7 +1022,6 @@ _GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings "
#if defined GNULIB_POSIXCHECK
/* strrchr() does not work with multibyte strings if the locale encoding is
GB18030 and the character to be searched is a digit. */
-# undef strrchr
/* Assume strrchr is always declared. */
_GL_WARN_ON_USE_CXX (strrchr,
const char *, char *, (const char *, int),
@@ -1046,13 +1056,11 @@ _GL_CXXALIAS_SYS (strsep, char *,
(char **restrict __stringp, char const *restrict __delim));
_GL_CXXALIASWARN (strsep);
# if defined GNULIB_POSIXCHECK
-# undef strsep
_GL_WARN_ON_USE (strsep, "strsep cannot work correctly on character strings "
"in multibyte locales - "
"use mbssep if you care about internationalization");
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strsep
# if HAVE_RAW_DECL_STRSEP
_GL_WARN_ON_USE (strsep, "strsep is unportable - "
"use gnulib module strsep for portability");
@@ -1095,11 +1103,13 @@ _GL_CXXALIASWARN (strstr);
as a sequence of bytes, not of characters. */
# undef strstr
/* Assume strstr is always declared. */
-_GL_WARN_ON_USE (strstr, "strstr is quadratic on many systems, and cannot "
- "work correctly on character strings in most "
- "multibyte locales - "
- "use mbsstr if you care about internationalization, "
- "or use strstr if you care about speed");
+_GL_WARN_ON_USE_CXX (strstr,
+ const char *, char *, (const char *, const char *),
+ "strstr is quadratic on many systems, and cannot "
+ "work correctly on character strings in most "
+ "multibyte locales - "
+ "use mbsstr if you care about internationalization, "
+ "or use strstr if you care about speed");
#endif
/* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive
@@ -1145,7 +1155,6 @@ _GL_CXXALIASWARN (strcasestr);
/* strcasestr() does not work with multibyte strings:
It is a glibc extension, and glibc implements it only for unibyte
locales. */
-# undef strcasestr
# if HAVE_RAW_DECL_STRCASESTR
_GL_WARN_ON_USE (strcasestr, "strcasestr does work correctly on character "
"strings in multibyte locales - "
@@ -1191,7 +1200,7 @@ _GL_CXXALIAS_RPL (strtok_r, char *,
(char *restrict s, char const *restrict delim,
char **restrict save_ptr));
# else
-# if @UNDEFINE_STRTOK_R@ || defined GNULIB_POSIXCHECK
+# if @UNDEFINE_STRTOK_R@
# undef strtok_r
# endif
# if ! @HAVE_DECL_STRTOK_R@
@@ -1211,7 +1220,6 @@ _GL_WARN_ON_USE (strtok_r, "strtok_r cannot work correctly on character "
"use mbstok_r if you care about internationalization");
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strtok_r
# if HAVE_RAW_DECL_STRTOK_R
_GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - "
"use gnulib module strtok_r for portability");
@@ -1222,6 +1230,64 @@ _GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - "
/* The following functions are not specified by POSIX. They are gnulib
extensions. */
+#if @GNULIB_STRNUL@
+/* Returns a pointer to the terminating NUL byte of STRING.
+ strnul (string)
+ This is a type-generic macro:
+ If STRING is a 'const char *', the result is 'const char *'.
+ If STRING is a 'char *', the result is 'char *'.
+ It is equivalent to
+ string + strlen (string)
+ or to
+ strchr (string, '\0'). */
+# ifdef __cplusplus
+extern "C" {
+# endif
+_GL_STRING_INLINE const char *gl_strnul (const char *string)
+ _GL_ATTRIBUTE_PURE
+ _GL_ARG_NONNULL ((1));
+_GL_STRING_INLINE const char *gl_strnul (const char *string)
+{
+ /* In gcc >= 7 or clang >= 4, we could use the expression
+ strchr (string, '\0')
+ because these compiler versions produce identical code for both
+ expressions. But this optimization in not available in older
+ compiler versions, and is also not available when the compiler
+ option '-fno-builtin' is in use. */
+ return string + strlen (string);
+}
+# ifdef __cplusplus
+}
+# endif
+# ifdef __cplusplus
+template <typename T> T strnul (T);
+template <> inline const char *strnul<const char *> (const char *s)
+{ return gl_strnul (s); }
+template <> inline char *strnul< char *> ( char *s)
+{ return const_cast<char *>(gl_strnul (s)); }
+# else
+# if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 9) > 4 && !defined __cplusplus) \
+ || (defined __clang__ && __clang_major__ >= 3) \
+ || (defined __SUNPRO_C && __SUNPRO_C >= 0x5150) \
+ || (__STDC_VERSION__ >= 201112L && !defined __GNUC__)
+/* The compiler supports _Generic from ISO C11. */
+/* Since in C (but not in C++!), any function that accepts a '[const] char *'
+ also accepts a '[const] void *' as argument, we make sure that the function-
+ like macro does the same, by mapping its type first:
+ char *, void * -> void *
+ const char *, const void * -> const void *
+ This mapping is done through the conditional expression. */
+# define strnul(s) \
+ _Generic (1 ? (s) : (void *) 99, \
+ void * : (char *) gl_strnul (s), \
+ const void * : gl_strnul (s))
+# else
+# define strnul(s) \
+ ((char *) gl_strnul (s))
+# endif
+# endif
+#endif
+
#if @GNULIB_STR_STARTSWITH@
/* Returns true if STRING starts with PREFIX.
Returns false otherwise. */
@@ -1579,7 +1645,6 @@ _GL_CXXALIAS_SYS (strerror, char *, (int));
_GL_CXXALIASWARN (strerror);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strerror
/* Assume strerror is always declared. */
_GL_WARN_ON_USE (strerror, "strerror is unportable - "
"use gnulib module strerror to guarantee non-NULL result");
@@ -1607,7 +1672,6 @@ _GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen));
_GL_CXXALIASWARN (strerror_r);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strerror_r
# if HAVE_RAW_DECL_STRERROR_R
_GL_WARN_ON_USE (strerror_r, "strerror_r is unportable - "
"use gnulib module strerror_r-posix for portability");
@@ -1636,7 +1700,6 @@ _GL_CXXALIAS_SYS (strerror_l, char *, (int errnum, locale_t locale));
_GL_CXXALIASWARN (strerror_l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strerror_l
# if HAVE_RAW_DECL_STRERROR_L
_GL_WARN_ON_USE (strerror_l, "strerror_l is unportable - "
"use gnulib module strerror_l for portability");
@@ -1671,7 +1734,6 @@ _GL_CXXALIAS_SYS (strerrorname_np, const char *, (int errnum));
_GL_CXXALIASWARN (strerrorname_np);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef strerrorname_np
# if HAVE_RAW_DECL_STRERRORNAME_NP
_GL_WARN_ON_USE (strerrorname_np, "strerrorname_np is unportable - "
"use gnulib module strerrorname_np for portability");
@@ -1686,7 +1748,6 @@ _GL_FUNCDECL_SYS (sigabbrev_np, const char *, (int sig), );
_GL_CXXALIAS_SYS (sigabbrev_np, const char *, (int sig));
_GL_CXXALIASWARN (sigabbrev_np);
#elif defined GNULIB_POSIXCHECK
-# undef sigabbrev_np
# if HAVE_RAW_DECL_SIGABBREV_NP
_GL_WARN_ON_USE (sigabbrev_np, "sigabbrev_np is unportable - "
"use gnulib module sigabbrev_np for portability");
@@ -1701,7 +1762,6 @@ _GL_FUNCDECL_SYS (sigdescr_np, const char *, (int sig), );
_GL_CXXALIAS_SYS (sigdescr_np, const char *, (int sig));
_GL_CXXALIASWARN (sigdescr_np);
#elif defined GNULIB_POSIXCHECK
-# undef sigdescr_np
# if HAVE_RAW_DECL_SIGDESCR_NP
_GL_WARN_ON_USE (sigdescr_np, "sigdescr_np is unportable - "
"use gnulib module sigdescr_np for portability");
@@ -1725,7 +1785,6 @@ _GL_CXXALIAS_SYS_CAST (strsignal, char *, (int __sig));
# endif
_GL_CXXALIASWARN (strsignal);
#elif defined GNULIB_POSIXCHECK
-# undef strsignal
# if HAVE_RAW_DECL_STRSIGNAL
_GL_WARN_ON_USE (strsignal, "strsignal is unportable - "
"use gnulib module strsignal for portability");
@@ -1751,7 +1810,6 @@ _GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *));
# endif
_GL_CXXALIASWARN (strverscmp);
#elif defined GNULIB_POSIXCHECK
-# undef strverscmp
# if HAVE_RAW_DECL_STRVERSCMP
_GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - "
"use gnulib module strverscmp for portability");
diff --git a/lib/strncat.c b/lib/strncat.c
index 4514445e..5e77ea88 100644
--- a/lib/strncat.c
+++ b/lib/strncat.c
@@ -1,5 +1,5 @@
/* Concatenate strings.
- Copyright (C) 1999, 2002, 2006, 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2010-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/strncpy.c b/lib/strncpy.c
new file mode 100644
index 00000000..25908377
--- /dev/null
+++ b/lib/strncpy.c
@@ -0,0 +1,38 @@
+/* Copy a size-bounded string.
+ Copyright (C) 1999, 2011-2026 Free Software Foundation, Inc.
+
+ This file is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ This file is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 1999. */
+
+#include <config.h>
+
+/* Specification. */
+#include <string.h>
+
+char *
+strncpy (char *dest, const char *src, size_t n)
+{
+ char *destptr = dest;
+
+ for (; n > 0 && (*destptr = *src) != '\0'; src++, destptr++, n--)
+ ;
+
+ /* This behavior is rarely useful, but it is specified by the ISO C
+ standard. */
+ for (; n > 0; n--)
+ *destptr++ = '\0';
+
+ return dest;
+}
diff --git a/lib/strstr.c b/lib/strstr.c
index d6953f90..a5730a37 100644
--- a/lib/strstr.c
+++ b/lib/strstr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1994, 1996-1998, 2000, 2004, 2007-2025 Free Software
+/* Copyright (C) 1991-1994, 1996-1998, 2000, 2004, 2007-2026 Free Software
Foundation, Inc.
This file is part of the GNU C Library.
@@ -36,31 +36,33 @@
char *
strstr (const char *haystack_start, const char *needle_start)
{
- const char *haystack = haystack_start;
const char *needle = needle_start;
- size_t needle_len; /* Length of NEEDLE. */
- size_t haystack_len; /* Known minimum length of HAYSTACK. */
- bool ok = true; /* True if NEEDLE is prefix of HAYSTACK. */
/* Determine length of NEEDLE, and in the process, make sure
HAYSTACK is at least as long (no point processing all of a long
NEEDLE if HAYSTACK is too short). */
- while (*haystack && *needle)
- ok &= *haystack++ == *needle++;
- if (*needle)
- return NULL;
- if (ok)
- return (char *) haystack_start;
+ {
+ const char *haystack = haystack_start;
+ bool ok = true; /* True if NEEDLE is prefix of HAYSTACK. */
+ while (*haystack && *needle)
+ ok &= *haystack++ == *needle++;
+ if (*needle)
+ return NULL;
+ if (ok)
+ return (char *) haystack_start;
+ }
/* Reduce the size of haystack using strchr, since it has a smaller
linear coefficient than the Two-Way algorithm. */
- needle_len = needle - needle_start;
- haystack = strchr (haystack_start + 1, *needle_start);
+ size_t needle_len = /* Length of NEEDLE. */
+ needle - needle_start;
+ const char *haystack = strchr (haystack_start + 1, *needle_start);
if (!haystack || __builtin_expect (needle_len == 1, 0))
return (char *) haystack;
needle -= needle_len;
- haystack_len = (haystack > haystack_start + needle_len ? 1
- : needle_len + haystack_start - haystack);
+ size_t haystack_len = /* Known minimum length of HAYSTACK. */
+ (haystack > haystack_start + needle_len ? 1
+ : needle_len + haystack_start - haystack);
/* Perform the search. Abstract memory is considered to be an array
of 'unsigned char' values, not an array of 'char' values. See
diff --git a/lib/struniq.h b/lib/struniq.h
index 00446f6e..a9686f1a 100644
--- a/lib/struniq.h
+++ b/lib/struniq.h
@@ -1,5 +1,5 @@
/* Define a file-local string uniquification function.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -80,14 +80,11 @@ struniq (const char *string)
{
size_t hashcode = string_hash (string);
size_t slot = hashcode % STRUNIQ_HASH_TABLE_SIZE;
- size_t size;
- struct struniq_hash_node *new_node;
- struct struniq_hash_node *p;
- for (p = struniq_hash_table[slot]; p != NULL; p = p->next)
+ for (struct struniq_hash_node *p = struniq_hash_table[slot]; p != NULL; p = p->next)
if (streq (p->contents, string))
return p->contents;
- size = strlen (string) + 1;
- new_node =
+ size_t size = strlen (string) + 1;
+ struct struniq_hash_node *new_node =
(struct struniq_hash_node *)
malloc (FLEXSIZEOF (struct struniq_hash_node, contents, size));
if (new_node == NULL)
@@ -100,7 +97,7 @@ struniq (const char *string)
if (mt) gl_lock_lock (struniq_lock);
/* Check whether another thread already added the string while we were
waiting on the lock. */
- for (p = struniq_hash_table[slot]; p != NULL; p = p->next)
+ for (struct struniq_hash_node *p = struniq_hash_table[slot]; p != NULL; p = p->next)
if (streq (p->contents, string))
{
free (new_node);
diff --git a/lib/sys_types.in.h b/lib/sys_types.in.h
index acf9b2f7..733b4ba4 100644
--- a/lib/sys_types.in.h
+++ b/lib/sys_types.in.h
@@ -1,6 +1,6 @@
/* Provide a more complete sys/types.h.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/thread-optim.h b/lib/thread-optim.h
index 1056c2f3..dbfc030c 100644
--- a/lib/thread-optim.h
+++ b/lib/thread-optim.h
@@ -1,6 +1,6 @@
/* Optimization of multithreaded code.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/time.in.h b/lib/time.in.h
index 3ff16e3b..5bbccf76 100644
--- a/lib/time.in.h
+++ b/lib/time.in.h
@@ -1,6 +1,6 @@
/* A more-standard <time.h>.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -161,7 +161,6 @@ _GL_CXXALIAS_SYS (timespec_get, int, (struct timespec *ts, int base));
_GL_CXXALIASWARN (timespec_get);
# endif
# elif defined GNULIB_POSIXCHECK
-# undef timespec_get
# if HAVE_RAW_DECL_TIMESPEC_GET
_GL_WARN_ON_USE (timespec_get, "timespec_get is unportable - "
"use gnulib module timespec_get for portability");
@@ -190,7 +189,6 @@ _GL_CXXALIAS_SYS (timespec_getres, int, (struct timespec *ts, int base));
_GL_CXXALIASWARN (timespec_getres);
# endif
# elif defined GNULIB_POSIXCHECK
-# undef timespec_getres
# if HAVE_RAW_DECL_TIMESPEC_GETRES
_GL_WARN_ON_USE (timespec_getres, "timespec_getres is unportable - "
"use gnulib module timespec_getres for portability");
@@ -212,7 +210,6 @@ _GL_CXXALIAS_SYS (time, time_t, (time_t *__tp));
_GL_CXXALIASWARN (time);
# endif
# elif defined GNULIB_POSIXCHECK
-# undef time
# if HAVE_RAW_DECL_TIME
_GL_WARN_ON_USE (time, "time has consistency problems - "
"use gnulib module time for portability");
@@ -243,7 +240,6 @@ _GL_CXXALIAS_SYS (nanosleep, int,
# endif
_GL_CXXALIASWARN (nanosleep);
# elif defined GNULIB_POSIXCHECK
-# undef nanosleep
# if HAVE_RAW_DECL_NANOSLEEP
_GL_WARN_ON_USE (nanosleep, "nanosleep is unportable - "
"use gnulib module nanosleep for portability");
@@ -284,7 +280,6 @@ _GL_CXXALIAS_SYS (tzset, void, (void));
# endif
_GL_CXXALIASWARN (tzset);
# elif defined GNULIB_POSIXCHECK
-# undef tzset
# if HAVE_RAW_DECL_TZSET
_GL_WARN_ON_USE (tzset, "tzset has portability problems - "
"use gnulib module tzset for portability");
@@ -306,7 +301,6 @@ _GL_CXXALIAS_SYS (mktime, time_t, (struct tm *__tp));
_GL_CXXALIASWARN (mktime);
# endif
# elif defined GNULIB_POSIXCHECK
-# undef mktime
# if HAVE_RAW_DECL_MKTIME
_GL_WARN_ON_USE (mktime, "mktime has portability problems - "
"use gnulib module mktime for portability");
@@ -362,12 +356,10 @@ _GL_CXXALIAS_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer,
_GL_CXXALIASWARN (gmtime_r);
# endif
# elif defined GNULIB_POSIXCHECK
-# undef localtime_r
# if HAVE_RAW_DECL_LOCALTIME_R
_GL_WARN_ON_USE (localtime_r, "localtime_r is unportable - "
"use gnulib module time_r for portability");
# endif
-# undef gmtime_r
# if HAVE_RAW_DECL_GMTIME_R
_GL_WARN_ON_USE (gmtime_r, "gmtime_r is unportable - "
"use gnulib module time_r for portability");
@@ -393,7 +385,6 @@ _GL_CXXALIAS_SYS (localtime, struct tm *, (time_t const *__timer));
_GL_CXXALIASWARN (localtime);
# endif
# elif defined GNULIB_POSIXCHECK
-# undef localtime
# if HAVE_RAW_DECL_LOCALTIME
_GL_WARN_ON_USE (localtime, "localtime has portability problems - "
"use gnulib module localtime for portability");
@@ -430,7 +421,6 @@ _GL_CXXALIAS_SYS (strptime, char *, (char const *restrict __buf,
struct tm *restrict __tm));
_GL_CXXALIASWARN (strptime);
# elif defined GNULIB_POSIXCHECK
-# undef strptime
# if HAVE_RAW_DECL_STRPTIME
_GL_WARN_ON_USE (strptime, "strptime is unportable - "
"use gnulib module strptime for portability");
@@ -483,7 +473,6 @@ _GL_CXXALIAS_SYS (strftime, size_t,
_GL_CXXALIASWARN (strftime);
# endif
# elif defined GNULIB_POSIXCHECK
-# undef strftime
# if HAVE_RAW_DECL_STRFTIME
_GL_WARN_ON_USE (strftime, "strftime has portability problems - "
"use gnulib module strftime-fixes for portability");
@@ -523,11 +512,18 @@ _GL_CXXALIAS_SYS (tzalloc, timezone_t, (char const *__name));
# endif
/* tzfree (tz)
- Frees a time zone object.
+ Free a time zone object, preserving errno.
The argument must have been returned by tzalloc(). */
# if !@HAVE_TZALLOC@
_GL_FUNCDECL_SYS (tzfree, void, (timezone_t __tz), );
_GL_CXXALIAS_SYS (tzfree, void, (timezone_t __tz));
+# else
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef tzfree
+# define tzfree rpl_tzfree
+# endif
+_GL_FUNCDECL_RPL (tzfree, void, (timezone_t __tz), );
+_GL_CXXALIAS_RPL (tzfree, void, (timezone_t __tz));
# endif
/* localtime_rz (tz, &t, &result)
@@ -611,7 +607,6 @@ _GL_CXXALIAS_SYS (timegm, time_t, (struct tm *__tm));
_GL_CXXALIASWARN (timegm);
# endif
# elif defined GNULIB_POSIXCHECK
-# undef timegm
# if HAVE_RAW_DECL_TIMEGM
_GL_WARN_ON_USE (timegm, "timegm is unportable - "
"use gnulib module timegm for portability");
@@ -622,28 +617,24 @@ _GL_WARN_ON_USE (timegm, "timegm is unportable - "
buffers when given outlandish struct tm values. Portable
applications should use strftime (or even sprintf) instead. */
# if defined GNULIB_POSIXCHECK
-# undef asctime
# if HAVE_RAW_DECL_ASCTIME
_GL_WARN_ON_USE (asctime, "asctime can overrun buffers in some cases - "
"better use strftime (or even sprintf) instead");
# endif
# endif
# if defined GNULIB_POSIXCHECK
-# undef asctime_r
# if HAVE_RAW_DECL_ASCTIME_R
_GL_WARN_ON_USE (asctime_r, "asctime_r can overrun buffers in some cases - "
"better use strftime (or even sprintf) instead");
# endif
# endif
# if defined GNULIB_POSIXCHECK
-# undef ctime
# if HAVE_RAW_DECL_CTIME
_GL_WARN_ON_USE (ctime, "ctime can overrun buffers in some cases - "
"better use strftime (or even sprintf) instead");
# endif
# endif
# if defined GNULIB_POSIXCHECK
-# undef ctime_r
# if HAVE_RAW_DECL_CTIME_R
_GL_WARN_ON_USE (ctime_r, "ctime_r can overrun buffers in some cases - "
"better use strftime (or even sprintf) instead");
diff --git a/lib/uchar.in.h b/lib/uchar.in.h
index 9a65ac37..300f7b5f 100644
--- a/lib/uchar.in.h
+++ b/lib/uchar.in.h
@@ -1,5 +1,5 @@
/* <uchar.h> substitute - 16-bit and 32-bit wide character types.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -490,7 +490,6 @@ _GL_CXXALIAS_SYS (c32rtomb, size_t, (char *s, char32_t wc, mbstate_t *ps));
_GL_CXXALIASWARN (c32rtomb);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef c32rtomb
# if HAVE_RAW_DECL_C32RTOMB
_GL_WARN_ON_USE (c32rtomb, "c32rtomb is not portable - "
"use gnulib module c32rtomb for portability");
@@ -647,7 +646,6 @@ _GL_CXXALIAS_SYS (mbrtoc32, size_t,
_GL_CXXALIASWARN (mbrtoc32);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mbrtoc32
# if HAVE_RAW_DECL_MBRTOC32
_GL_WARN_ON_USE (mbrtoc32, "mbrtoc32 is not portable - "
"use gnulib module mbrtoc32 for portability");
@@ -679,7 +677,6 @@ _GL_CXXALIAS_SYS (mbrtoc16, size_t,
_GL_CXXALIASWARN (mbrtoc16);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mbrtoc16
# if HAVE_RAW_DECL_MBRTOC16
_GL_WARN_ON_USE (mbrtoc16, "mbrtoc16 is not portable - "
"use gnulib module mbrtoc16 for portability");
diff --git a/lib/unicase.in.h b/lib/unicase.in.h
index c6df04b3..e1615aff 100644
--- a/lib/unicase.in.h
+++ b/lib/unicase.in.h
@@ -1,5 +1,5 @@
/* Unicode character case mappings.
- Copyright (C) 2002, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/unicase/cased.c b/lib/unicase/cased.c
index 580a6fd0..356e2e4e 100644
--- a/lib/unicase/cased.c
+++ b/lib/unicase/cased.c
@@ -1,5 +1,5 @@
/* Test whether a Unicode character is cased.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/casefold.h b/lib/unicase/casefold.h
index 6373ced1..573ae4fd 100644
--- a/lib/unicase/casefold.h
+++ b/lib/unicase/casefold.h
@@ -1,5 +1,5 @@
/* Casefolding of Unicode characters.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/caseprop.h b/lib/unicase/caseprop.h
index 2310dfd6..a469f316 100644
--- a/lib/unicase/caseprop.h
+++ b/lib/unicase/caseprop.h
@@ -1,5 +1,5 @@
/* Case related properties of Unicode characters.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/context.h b/lib/unicase/context.h
index 2227e5b9..5b1c8b62 100644
--- a/lib/unicase/context.h
+++ b/lib/unicase/context.h
@@ -1,5 +1,5 @@
/* Case-mapping contexts of UTF-8/UTF-16/UTF-32 substring.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/empty-prefix-context.c b/lib/unicase/empty-prefix-context.c
index 4c4d0b8b..897e9f40 100644
--- a/lib/unicase/empty-prefix-context.c
+++ b/lib/unicase/empty-prefix-context.c
@@ -1,5 +1,5 @@
/* Case-mapping context of empty prefix string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/empty-suffix-context.c b/lib/unicase/empty-suffix-context.c
index c637857d..c000056f 100644
--- a/lib/unicase/empty-suffix-context.c
+++ b/lib/unicase/empty-suffix-context.c
@@ -1,5 +1,5 @@
/* Case-mapping context of empty suffix string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/ignorable.c b/lib/unicase/ignorable.c
index e17ccaba..3e17f6af 100644
--- a/lib/unicase/ignorable.c
+++ b/lib/unicase/ignorable.c
@@ -1,5 +1,5 @@
/* Test whether a Unicode character is case-ignorable.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/invariant.h b/lib/unicase/invariant.h
index d3a346b7..5059aef5 100644
--- a/lib/unicase/invariant.h
+++ b/lib/unicase/invariant.h
@@ -1,5 +1,5 @@
/* Internal functions for Unicode character case mappings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/locale-language.c b/lib/unicase/locale-language.c
index 8a064acf..0481e9b7 100644
--- a/lib/unicase/locale-language.c
+++ b/lib/unicase/locale-language.c
@@ -1,5 +1,5 @@
/* Language code of current locale.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -39,10 +39,9 @@ const char *
uc_locale_language (void)
{
const char *locale_name = gl_locale_name (LC_CTYPE, "LC_CTYPE");
- const char *p;
/* Find the end of the language portion. */
- p = locale_name;
+ const char *p = locale_name;
while (*p != '\0' && *p != '_' && *p != '.' && *p != '@')
p++;
diff --git a/lib/unicase/locale-languages.gperf b/lib/unicase/locale-languages.gperf
index 26a31f11..fb1eb1bc 100644
--- a/lib/unicase/locale-languages.gperf
+++ b/lib/unicase/locale-languages.gperf
@@ -1,5 +1,5 @@
/* Language codes of locales.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unicase/locale-languages.h b/lib/unicase/locale-languages.h
index 373622f1..a82829b2 100644
--- a/lib/unicase/locale-languages.h
+++ b/lib/unicase/locale-languages.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 unicase/locale-languages.gperf */
/* Computed positions: -k'1-3' */
@@ -84,17 +84,17 @@ uc_locale_language_hash (register const char *str, register size_t len)
{
default:
hval += asso_values[(unsigned char)str[2]+2];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
case 2:
hval += asso_values[(unsigned char)str[1]+17];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -1034,7 +1034,7 @@ uc_locale_languages_lookup (register const char *str, register size_t len)
return s;
}
}
- return 0;
+ return (const char *) 0;
}
#line 295 "unicase/locale-languages.gperf"
diff --git a/lib/unicase/simple-mapping.h b/lib/unicase/simple-mapping.h
index 0c4c75b3..2b3d21d6 100644
--- a/lib/unicase/simple-mapping.h
+++ b/lib/unicase/simple-mapping.h
@@ -1,5 +1,5 @@
/* Simple case mapping for Unicode characters.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unicase/special-casing.c b/lib/unicase/special-casing.c
index 3f61bbdb..befde291 100644
--- a/lib/unicase/special-casing.c
+++ b/lib/unicase/special-casing.c
@@ -1,5 +1,5 @@
/* Special casing table.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/special-casing.in.h b/lib/unicase/special-casing.in.h
index 6ea5f800..21ec9e12 100644
--- a/lib/unicase/special-casing.in.h
+++ b/lib/unicase/special-casing.in.h
@@ -1,5 +1,5 @@
/* Special casing table.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/tocasefold.c b/lib/unicase/tocasefold.c
index c8d33866..60d4ca11 100644
--- a/lib/unicase/tocasefold.c
+++ b/lib/unicase/tocasefold.c
@@ -1,5 +1,5 @@
/* Casefold mapping for Unicode characters (locale and context independent).
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/tolower.c b/lib/unicase/tolower.c
index a1c898ef..89676ad6 100644
--- a/lib/unicase/tolower.c
+++ b/lib/unicase/tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for Unicode characters (locale and context independent).
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unicase/totitle.c b/lib/unicase/totitle.c
index 1b44a87a..32924213 100644
--- a/lib/unicase/totitle.c
+++ b/lib/unicase/totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for Unicode characters (locale and context independent).
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/toupper.c b/lib/unicase/toupper.c
index 36840a93..86cbffee 100644
--- a/lib/unicase/toupper.c
+++ b/lib/unicase/toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for Unicode characters (locale and context independent).
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unicase/u-casecmp.h b/lib/unicase/u-casecmp.h
index 4869e335..f1515e11 100644
--- a/lib/unicase/u-casecmp.h
+++ b/lib/unicase/u-casecmp.h
@@ -1,5 +1,5 @@
/* Case and normalization insensitive comparison of Unicode strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -27,29 +27,23 @@ int
FUNC (const SRC_UNIT *s1, size_t n1, const SRC_UNIT *s2, size_t n2,
const char *iso639_language, uninorm_t nf, int *resultp)
{
- UNIT buf1[2048 / sizeof (UNIT)];
- UNIT buf2[2048 / sizeof (UNIT)];
- UNIT *norms1;
- size_t norms1_length;
- UNIT *norms2;
- size_t norms2_length;
- int cmp;
-
/* Optimization: There is no need to do canonical composition of each string.
Decomposition is enough. */
if (nf != NULL)
nf = uninorm_decomposing_form (nf);
/* Case-fold and normalize S1. */
- norms1_length = sizeof (buf1) / sizeof (UNIT);
- norms1 = U_CASEFOLD (s1, n1, iso639_language, nf, buf1, &norms1_length);
+ UNIT buf1[2048 / sizeof (UNIT)];
+ size_t norms1_length = sizeof (buf1) / sizeof (UNIT);
+ UNIT *norms1 = U_CASEFOLD (s1, n1, iso639_language, nf, buf1, &norms1_length);
if (norms1 == NULL)
/* errno is set here. */
return -1;
/* Case-fold and normalize S2. */
- norms2_length = sizeof (buf2) / sizeof (UNIT);
- norms2 = U_CASEFOLD (s2, n2, iso639_language, nf, buf2, &norms2_length);
+ UNIT buf2[2048 / sizeof (UNIT)];
+ size_t norms2_length = sizeof (buf2) / sizeof (UNIT);
+ UNIT *norms2 = U_CASEFOLD (s2, n2, iso639_language, nf, buf2, &norms2_length);
if (norms2 == NULL)
{
if (norms1 != buf1)
@@ -62,7 +56,7 @@ FUNC (const SRC_UNIT *s1, size_t n1, const SRC_UNIT *s2, size_t n2,
}
/* Compare the normalized strings. */
- cmp = U_CMP2 (norms1, norms1_length, norms2, norms2_length);
+ int cmp = U_CMP2 (norms1, norms1_length, norms2, norms2_length);
if (cmp > 0)
cmp = 1;
else if (cmp < 0)
diff --git a/lib/unicase/u-casecoll.h b/lib/unicase/u-casecoll.h
index 8787b451..74c0697f 100644
--- a/lib/unicase/u-casecoll.h
+++ b/lib/unicase/u-casecoll.h
@@ -1,6 +1,6 @@
/* Locale dependent, case and normalization insensitive comparison of Unicode
strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -28,25 +28,19 @@ int
FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2,
const char *iso639_language, uninorm_t nf, int *resultp)
{
- char buf1[2048];
- char buf2[2048];
- char *transformed1;
- size_t transformed1_length;
- char *transformed2;
- size_t transformed2_length;
- int cmp;
-
/* Normalize and transform S1. */
- transformed1_length = sizeof (buf1);
- transformed1 =
+ char buf1[2048];
+ size_t transformed1_length = sizeof (buf1);
+ char *transformed1 =
U_CASEXFRM (s1, n1, iso639_language, nf, buf1, &transformed1_length);
if (transformed1 == NULL)
/* errno is set here. */
return -1;
/* Normalize and transform S2. */
- transformed2_length = sizeof (buf2);
- transformed2 =
+ char buf2[2048];
+ size_t transformed2_length = sizeof (buf2);
+ char *transformed2 =
U_CASEXFRM (s2, n2, iso639_language, nf, buf2, &transformed2_length);
if (transformed2 == NULL)
{
@@ -60,8 +54,8 @@ FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2,
}
/* Compare the transformed strings. */
- cmp = memcmp2 (transformed1, transformed1_length,
- transformed2, transformed2_length);
+ int cmp = memcmp2 (transformed1, transformed1_length,
+ transformed2, transformed2_length);
if (cmp < 0)
cmp = -1;
else if (cmp > 0)
diff --git a/lib/unicase/u-casefold.h b/lib/unicase/u-casefold.h
index f87094cd..d4b6aa79 100644
--- a/lib/unicase/u-casefold.h
+++ b/lib/unicase/u-casefold.h
@@ -1,5 +1,5 @@
/* Casefolding mapping for Unicode strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u-casemap.h b/lib/unicase/u-casemap.h
index fba36655..abb67820 100644
--- a/lib/unicase/u-casemap.h
+++ b/lib/unicase/u-casemap.h
@@ -1,5 +1,5 @@
/* Case mapping for UTF-8/UTF-16/UTF-32 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -35,10 +35,7 @@ FUNC (const UNIT *s, size_t n,
{
/* The result being accumulated. */
UNIT *result;
- size_t length;
size_t allocated;
-
- /* Initialize the accumulator. */
if (nf != NULL || resultbuf == NULL)
{
result = NULL;
@@ -49,7 +46,7 @@ FUNC (const UNIT *s, size_t n,
result = resultbuf;
allocated = *lengthp;
}
- length = 0;
+ size_t length = 0;
{
const UNIT *s_end = s + n;
@@ -97,10 +94,10 @@ FUNC (const UNIT *s, size_t n,
{
/* Does the context apply? */
int context = rule->context;
- bool applies;
-
if (context < 0)
context = - context;
+
+ bool applies;
switch (context)
{
case SCC_ALWAYS:
@@ -281,15 +278,65 @@ FUNC (const UNIT *s, size_t n,
found_mapping:
/* Found the mapping: uc maps to mapped_uc[0..mapped_count-1]. */
- {
- unsigned int i;
+ for (unsigned int i = 0; i < mapped_count; i++)
+ {
+ ucs4_t muc = mapped_uc[i];
- for (i = 0; i < mapped_count; i++)
+ /* Append muc to the result accumulator. */
+ if (length < allocated)
+ {
+ int ret = U_UCTOMB (result + length, muc, allocated - length);
+ if (ret == -1)
+ {
+ errno = EINVAL;
+ goto fail;
+ }
+ if (ret >= 0)
+ {
+ length += ret;
+ goto done_appending;
+ }
+ }
{
- ucs4_t muc = mapped_uc[i];
-
- /* Append muc to the result accumulator. */
- if (length < allocated)
+ size_t old_allocated = allocated;
+ size_t new_allocated = 2 * old_allocated;
+ if (new_allocated < 64)
+ new_allocated = 64;
+ if (new_allocated < old_allocated) /* integer overflow? */
+ abort ();
+ {
+ UNIT *larger_result;
+ if (result == NULL)
+ {
+ larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail;
+ }
+ }
+ else if (result == resultbuf)
+ {
+ larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail;
+ }
+ U_CPY (larger_result, resultbuf, length);
+ }
+ else
+ {
+ larger_result =
+ (UNIT *) realloc (result, new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail;
+ }
+ }
+ result = larger_result;
+ allocated = new_allocated;
{
int ret = U_UCTOMB (result + length, muc, allocated - length);
if (ret == -1)
@@ -297,69 +344,15 @@ FUNC (const UNIT *s, size_t n,
errno = EINVAL;
goto fail;
}
- if (ret >= 0)
- {
- length += ret;
- goto done_appending;
- }
- }
- {
- size_t old_allocated = allocated;
- size_t new_allocated = 2 * old_allocated;
- if (new_allocated < 64)
- new_allocated = 64;
- if (new_allocated < old_allocated) /* integer overflow? */
- abort ();
- {
- UNIT *larger_result;
- if (result == NULL)
- {
- larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
- if (larger_result == NULL)
- {
- errno = ENOMEM;
- goto fail;
- }
- }
- else if (result == resultbuf)
- {
- larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
- if (larger_result == NULL)
- {
- errno = ENOMEM;
- goto fail;
- }
- U_CPY (larger_result, resultbuf, length);
- }
- else
- {
- larger_result =
- (UNIT *) realloc (result, new_allocated * sizeof (UNIT));
- if (larger_result == NULL)
- {
- errno = ENOMEM;
- goto fail;
- }
- }
- result = larger_result;
- allocated = new_allocated;
- {
- int ret = U_UCTOMB (result + length, muc, allocated - length);
- if (ret == -1)
- {
- errno = EINVAL;
- goto fail;
- }
- if (ret < 0)
- abort ();
- length += ret;
- goto done_appending;
- }
+ if (ret < 0)
+ abort ();
+ length += ret;
+ goto done_appending;
}
}
- done_appending: ;
}
- }
+ done_appending: ;
+ }
if (!uc_is_case_ignorable (uc))
last_char_except_ignorable = uc;
@@ -377,9 +370,8 @@ FUNC (const UNIT *s, size_t n,
if (nf != NULL)
{
/* Finally, normalize the result. */
- UNIT *normalized_result;
-
- normalized_result = U_NORMALIZE (nf, result, length, resultbuf, lengthp);
+ UNIT *normalized_result =
+ U_NORMALIZE (nf, result, length, resultbuf, lengthp);
if (normalized_result == NULL)
goto fail;
@@ -403,9 +395,7 @@ FUNC (const UNIT *s, size_t n,
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- UNIT *memory;
-
- memory = (UNIT *) realloc (result, length * sizeof (UNIT));
+ UNIT *memory = (UNIT *) realloc (result, length * sizeof (UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/unicase/u-casexfrm.h b/lib/unicase/u-casexfrm.h
index c5d0c978..f9195c7f 100644
--- a/lib/unicase/u-casexfrm.h
+++ b/lib/unicase/u-casexfrm.h
@@ -1,6 +1,6 @@
/* Locale dependent transformation for case insensitive comparison of Unicode
strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -28,28 +28,22 @@ char *
FUNC (const UNIT *s, size_t n, const char *iso639_language, uninorm_t nf,
char *resultbuf, size_t *lengthp)
{
- UNIT foldedsbuf[2048 / sizeof (UNIT)];
- UNIT *foldeds;
- size_t foldeds_length;
- char convsbuf[2048];
- char *convs;
- size_t convs_length;
- char *result;
-
/* Casefold and normalize the Unicode string. */
- foldeds_length = sizeof (foldedsbuf) / sizeof (UNIT);
- foldeds = U_CASEFOLD (s, n, iso639_language, nf, foldedsbuf, &foldeds_length);
+ UNIT foldedsbuf[2048 / sizeof (UNIT)];
+ size_t foldeds_length = sizeof (foldedsbuf) / sizeof (UNIT);
+ UNIT *foldeds = U_CASEFOLD (s, n, iso639_language, nf, foldedsbuf, &foldeds_length);
if (foldeds == NULL)
/* errno is set here. */
return NULL;
/* Convert it to locale encoding. */
- convs_length = sizeof (convsbuf) - 1;
- convs = U_CONV_TO_ENCODING (locale_charset (),
- iconveh_error,
- foldeds, foldeds_length,
- NULL,
- convsbuf, &convs_length);
+ char convsbuf[2048];
+ size_t convs_length = sizeof (convsbuf) - 1;
+ char *convs = U_CONV_TO_ENCODING (locale_charset (),
+ iconveh_error,
+ foldeds, foldeds_length,
+ NULL,
+ convsbuf, &convs_length);
if (convs == NULL)
{
if (foldeds != foldedsbuf)
@@ -78,7 +72,7 @@ FUNC (const UNIT *s, size_t n, const char *iso639_language, uninorm_t nf,
}
/* Apply locale dependent transformations for comparison. */
- result = amemxfrm (convs, convs_length, resultbuf, lengthp);
+ char *result = amemxfrm (convs, convs_length, resultbuf, lengthp);
if (result == NULL)
{
if (convs != convsbuf)
diff --git a/lib/unicase/u-ct-casefold.h b/lib/unicase/u-ct-casefold.h
index bd8cee18..c2801e39 100644
--- a/lib/unicase/u-ct-casefold.h
+++ b/lib/unicase/u-ct-casefold.h
@@ -1,5 +1,5 @@
/* Casefolding mapping for Unicode substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -53,27 +53,23 @@ FUNC (const UNIT *s, size_t n,
/* X -> nf(toCasefold(NFD(X))) or
X -> nf(toCasefold(nfd(toCasefold(NFD(X))))) */
int repeat = (uninorm_is_compat_decomposing (nf) ? 2 : 1);
- UNIT tmpbuf1[2048 / sizeof (UNIT)];
- UNIT tmpbuf2[2048 / sizeof (UNIT)];
- UNIT *tmp1;
- size_t tmp1_length;
- UNIT *tmp2;
- size_t tmp2_length;
- tmp1_length = sizeof (tmpbuf1) / sizeof (UNIT);
- tmp1 = U_NORMALIZE (UNINORM_NFD, s, n, tmpbuf1, &tmp1_length);
+ UNIT tmpbuf1[2048 / sizeof (UNIT)];
+ size_t tmp1_length = sizeof (tmpbuf1) / sizeof (UNIT);
+ UNIT *tmp1 = U_NORMALIZE (UNINORM_NFD, s, n, tmpbuf1, &tmp1_length);
if (tmp1 == NULL)
/* errno is set here. */
return NULL;
do
{
- tmp2_length = sizeof (tmpbuf2) / sizeof (UNIT);
- tmp2 = U_CASEMAP (tmp1, tmp1_length,
- prefix_context, suffix_context, iso639_language,
- uc_tocasefold, offsetof (struct special_casing_rule, casefold[0]),
- NULL,
- tmpbuf2, &tmp2_length);
+ UNIT tmpbuf2[2048 / sizeof (UNIT)];
+ size_t tmp2_length = sizeof (tmpbuf2) / sizeof (UNIT);
+ UNIT *tmp2 = U_CASEMAP (tmp1, tmp1_length,
+ prefix_context, suffix_context, iso639_language,
+ uc_tocasefold, offsetof (struct special_casing_rule, casefold[0]),
+ NULL,
+ tmpbuf2, &tmp2_length);
if (tmp2 == NULL)
{
int saved_errno = errno;
diff --git a/lib/unicase/u-ct-totitle.h b/lib/unicase/u-ct-totitle.h
index 94428726..803636c5 100644
--- a/lib/unicase/u-ct-totitle.h
+++ b/lib/unicase/u-ct-totitle.h
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-8/UTF-16/UTF-32 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -40,12 +40,7 @@ FUNC (const UNIT *s, size_t n,
{
/* The result being accumulated. */
UNIT *result;
- size_t length;
size_t allocated;
- /* An array containing the word break positions. */
- char *wordbreaks;
-
- /* Initialize the accumulator. */
if (nf != NULL || resultbuf == NULL)
{
result = NULL;
@@ -56,8 +51,10 @@ FUNC (const UNIT *s, size_t n,
result = resultbuf;
allocated = *lengthp;
}
- length = 0;
+ size_t length = 0;
+ /* An array containing the word break positions. */
+ char *wordbreaks;
/* Initialize the word breaks array. */
if (n > 0)
{
@@ -102,16 +99,13 @@ FUNC (const UNIT *s, size_t n,
ucs4_t uc;
int count = U_MBTOUC_UNSAFE (&uc, s, s_end - s);
- ucs4_t (*single_character_map) (ucs4_t);
- size_t offset_in_rule; /* offset in 'struct special_casing_rule' */
-
- ucs4_t mapped_uc[3];
- unsigned int mapped_count;
-
if (*wp)
/* Crossing a word boundary. */
in_word_first_part = true;
+ ucs4_t (*single_character_map) (ucs4_t);
+ size_t offset_in_rule; /* offset in 'struct special_casing_rule' */
+
/* Determine single_character_map, offset_in_rule.
There are three possibilities:
- uc should not be converted.
@@ -140,6 +134,9 @@ FUNC (const UNIT *s, size_t n,
offset_in_rule = offsetof (struct special_casing_rule, lower[0]);
}
+ ucs4_t mapped_uc[3];
+ unsigned int mapped_count;
+
/* Actually map uc. */
if (single_character_map == NULL)
{
@@ -173,10 +170,11 @@ FUNC (const UNIT *s, size_t n,
{
/* Does the context apply? */
int context = rule->context;
- bool applies;
if (context < 0)
context = - context;
+
+ bool applies;
switch (context)
{
case SCC_ALWAYS:
@@ -357,15 +355,65 @@ FUNC (const UNIT *s, size_t n,
found_mapping:
/* Found the mapping: uc maps to mapped_uc[0..mapped_count-1]. */
- {
- unsigned int i;
+ for (unsigned int i = 0; i < mapped_count; i++)
+ {
+ ucs4_t muc = mapped_uc[i];
- for (i = 0; i < mapped_count; i++)
+ /* Append muc to the result accumulator. */
+ if (length < allocated)
+ {
+ int ret = U_UCTOMB (result + length, muc, allocated - length);
+ if (ret == -1)
+ {
+ errno = EINVAL;
+ goto fail1;
+ }
+ if (ret >= 0)
+ {
+ length += ret;
+ goto done_appending;
+ }
+ }
{
- ucs4_t muc = mapped_uc[i];
-
- /* Append muc to the result accumulator. */
- if (length < allocated)
+ size_t old_allocated = allocated;
+ size_t new_allocated = 2 * old_allocated;
+ if (new_allocated < 64)
+ new_allocated = 64;
+ if (new_allocated < old_allocated) /* integer overflow? */
+ abort ();
+ {
+ UNIT *larger_result;
+ if (result == NULL)
+ {
+ larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail1;
+ }
+ }
+ else if (result == resultbuf)
+ {
+ larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail1;
+ }
+ U_CPY (larger_result, resultbuf, length);
+ }
+ else
+ {
+ larger_result =
+ (UNIT *) realloc (result, new_allocated * sizeof (UNIT));
+ if (larger_result == NULL)
+ {
+ errno = ENOMEM;
+ goto fail1;
+ }
+ }
+ result = larger_result;
+ allocated = new_allocated;
{
int ret = U_UCTOMB (result + length, muc, allocated - length);
if (ret == -1)
@@ -373,69 +421,15 @@ FUNC (const UNIT *s, size_t n,
errno = EINVAL;
goto fail1;
}
- if (ret >= 0)
- {
- length += ret;
- goto done_appending;
- }
- }
- {
- size_t old_allocated = allocated;
- size_t new_allocated = 2 * old_allocated;
- if (new_allocated < 64)
- new_allocated = 64;
- if (new_allocated < old_allocated) /* integer overflow? */
- abort ();
- {
- UNIT *larger_result;
- if (result == NULL)
- {
- larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
- if (larger_result == NULL)
- {
- errno = ENOMEM;
- goto fail1;
- }
- }
- else if (result == resultbuf)
- {
- larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT));
- if (larger_result == NULL)
- {
- errno = ENOMEM;
- goto fail1;
- }
- U_CPY (larger_result, resultbuf, length);
- }
- else
- {
- larger_result =
- (UNIT *) realloc (result, new_allocated * sizeof (UNIT));
- if (larger_result == NULL)
- {
- errno = ENOMEM;
- goto fail1;
- }
- }
- result = larger_result;
- allocated = new_allocated;
- {
- int ret = U_UCTOMB (result + length, muc, allocated - length);
- if (ret == -1)
- {
- errno = EINVAL;
- goto fail1;
- }
- if (ret < 0)
- abort ();
- length += ret;
- goto done_appending;
- }
+ if (ret < 0)
+ abort ();
+ length += ret;
+ goto done_appending;
}
}
- done_appending: ;
}
- }
+ done_appending: ;
+ }
if (!uc_is_case_ignorable (uc))
last_char_except_ignorable = uc;
@@ -456,9 +450,8 @@ FUNC (const UNIT *s, size_t n,
if (nf != NULL)
{
/* Finally, normalize the result. */
- UNIT *normalized_result;
-
- normalized_result = U_NORMALIZE (nf, result, length, resultbuf, lengthp);
+ UNIT *normalized_result =
+ U_NORMALIZE (nf, result, length, resultbuf, lengthp);
if (normalized_result == NULL)
goto fail2;
@@ -482,9 +475,7 @@ FUNC (const UNIT *s, size_t n,
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- UNIT *memory;
-
- memory = (UNIT *) realloc (result, length * sizeof (UNIT));
+ UNIT *memory = (UNIT *) realloc (result, length * sizeof (UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/unicase/u-is-cased.h b/lib/unicase/u-is-cased.h
index f22282af..faddbb74 100644
--- a/lib/unicase/u-is-cased.h
+++ b/lib/unicase/u-is-cased.h
@@ -1,5 +1,5 @@
/* Test whether case matters for a Unicode string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -27,27 +27,20 @@ int
FUNC (const UNIT *s, size_t n, const char *iso639_language,
bool *resultp)
{
- UNIT normsbuf[2048 / sizeof (UNIT)];
- UNIT *norms;
- size_t norms_length;
- UNIT mappedbuf[2048 / sizeof (UNIT)];
- UNIT *mapped_toupper;
- UNIT *mapped_tolower;
- UNIT *mapped_totitle;
- size_t mapped_length;
-
/* Apply canonical decomposition to S. */
- norms_length = sizeof (normsbuf) / sizeof (UNIT);
- norms = U_NORMALIZE (UNINORM_NFD, s, n, normsbuf, &norms_length);
+ UNIT normsbuf[2048 / sizeof (UNIT)];
+ size_t norms_length = sizeof (normsbuf) / sizeof (UNIT);
+ UNIT *norms = U_NORMALIZE (UNINORM_NFD, s, n, normsbuf, &norms_length);
if (norms == NULL)
/* errno is set here. */
return -1;
- mapped_length = sizeof (mappedbuf) / sizeof (UNIT);
+ UNIT mappedbuf[2048 / sizeof (UNIT)];
+ size_t mapped_length = sizeof (mappedbuf) / sizeof (UNIT);
/* Apply toupper mapping. */
- mapped_toupper = U_TOUPPER (norms, norms_length, iso639_language, NULL,
- mappedbuf, &mapped_length);
+ UNIT *mapped_toupper = U_TOUPPER (norms, norms_length, iso639_language, NULL,
+ mappedbuf, &mapped_length);
if (mapped_toupper == NULL)
goto fail;
@@ -61,8 +54,8 @@ FUNC (const UNIT *s, size_t n, const char *iso639_language,
}
/* Apply tolower mapping. */
- mapped_tolower = U_TOLOWER (norms, norms_length, iso639_language, NULL,
- mapped_toupper, &mapped_length);
+ UNIT *mapped_tolower = U_TOLOWER (norms, norms_length, iso639_language, NULL,
+ mapped_toupper, &mapped_length);
if (mapped_tolower == NULL)
{
if (mapped_toupper != mappedbuf)
@@ -87,8 +80,8 @@ FUNC (const UNIT *s, size_t n, const char *iso639_language,
}
/* Apply totitle mapping. */
- mapped_totitle = U_TOTITLE (norms, norms_length, iso639_language, NULL,
- mapped_tolower, &mapped_length);
+ UNIT *mapped_totitle = U_TOTITLE (norms, norms_length, iso639_language, NULL,
+ mapped_tolower, &mapped_length);
if (mapped_totitle == NULL)
{
if (mapped_tolower != mappedbuf)
diff --git a/lib/unicase/u-is-invariant.h b/lib/unicase/u-is-invariant.h
index 131c1aa6..c859b4e5 100644
--- a/lib/unicase/u-is-invariant.h
+++ b/lib/unicase/u-is-invariant.h
@@ -1,5 +1,5 @@
/* Test whether a Unicode string is invariant under a given case mapping.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -31,24 +31,19 @@ FUNC (const UNIT *s, size_t n,
const char *iso639_language,
bool *resultp)
{
- UNIT normsbuf[2048 / sizeof (UNIT)];
- UNIT *norms;
- size_t norms_length;
- UNIT mappedbuf[2048 / sizeof (UNIT)];
- UNIT *mapped;
- size_t mapped_length;
-
/* Apply canonical decomposition to S. */
- norms_length = sizeof (normsbuf) / sizeof (UNIT);
- norms = U_NORMALIZE (UNINORM_NFD, s, n, normsbuf, &norms_length);
+ UNIT normsbuf[2048 / sizeof (UNIT)];
+ size_t norms_length = sizeof (normsbuf) / sizeof (UNIT);
+ UNIT *norms = U_NORMALIZE (UNINORM_NFD, s, n, normsbuf, &norms_length);
if (norms == NULL)
/* errno is set here. */
return -1;
/* Apply mapping. */
- mapped_length = sizeof (mappedbuf) / sizeof (UNIT);
- mapped = mapping (norms, norms_length, iso639_language, NULL,
- mappedbuf, &mapped_length);
+ UNIT mappedbuf[2048 / sizeof (UNIT)];
+ size_t mapped_length = sizeof (mappedbuf) / sizeof (UNIT);
+ UNIT *mapped = mapping (norms, norms_length, iso639_language, NULL,
+ mappedbuf, &mapped_length);
if (mapped == NULL)
{
if (norms != normsbuf)
diff --git a/lib/unicase/u-prefix-context.h b/lib/unicase/u-prefix-context.h
index 4b03a1ee..80598269 100644
--- a/lib/unicase/u-prefix-context.h
+++ b/lib/unicase/u-prefix-context.h
@@ -1,5 +1,5 @@
/* Case-mapping context of prefix UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u-suffix-context.h b/lib/unicase/u-suffix-context.h
index f996f523..792adff5 100644
--- a/lib/unicase/u-suffix-context.h
+++ b/lib/unicase/u-suffix-context.h
@@ -1,5 +1,5 @@
/* Case-mapping context of suffix UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u-totitle.h b/lib/unicase/u-totitle.h
index b6d62a84..e39d1954 100644
--- a/lib/unicase/u-totitle.h
+++ b/lib/unicase/u-totitle.h
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-8/UTF-16/UTF-32 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-casecmp.c b/lib/unicase/u16-casecmp.c
index e8b0ef9a..d98dd4ce 100644
--- a/lib/unicase/u16-casecmp.c
+++ b/lib/unicase/u16-casecmp.c
@@ -1,5 +1,5 @@
/* Case and normalization insensitive comparison of UTF-16 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-casecoll.c b/lib/unicase/u16-casecoll.c
index ed7faa01..ae9bada9 100644
--- a/lib/unicase/u16-casecoll.c
+++ b/lib/unicase/u16-casecoll.c
@@ -1,6 +1,6 @@
/* Locale dependent, case and normalization insensitive comparison of UTF-16
strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-casefold.c b/lib/unicase/u16-casefold.c
index cd636b4f..ca9a7a79 100644
--- a/lib/unicase/u16-casefold.c
+++ b/lib/unicase/u16-casefold.c
@@ -1,5 +1,5 @@
/* Casefolding mapping for UTF-16 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-casemap.c b/lib/unicase/u16-casemap.c
index 9406e99b..47b210c0 100644
--- a/lib/unicase/u16-casemap.c
+++ b/lib/unicase/u16-casemap.c
@@ -1,5 +1,5 @@
/* Case mapping for UTF-16 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-casexfrm.c b/lib/unicase/u16-casexfrm.c
index b44351c3..ffdb805e 100644
--- a/lib/unicase/u16-casexfrm.c
+++ b/lib/unicase/u16-casexfrm.c
@@ -1,6 +1,6 @@
/* Locale dependent transformation for case insensitive comparison of UTF-16
strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-ct-casefold.c b/lib/unicase/u16-ct-casefold.c
index 6e60d4ad..fb50cd17 100644
--- a/lib/unicase/u16-ct-casefold.c
+++ b/lib/unicase/u16-ct-casefold.c
@@ -1,5 +1,5 @@
/* Casefolding mapping for UTF-16 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-ct-tolower.c b/lib/unicase/u16-ct-tolower.c
index 09e242aa..6ef80c6a 100644
--- a/lib/unicase/u16-ct-tolower.c
+++ b/lib/unicase/u16-ct-tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for UTF-16 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-ct-totitle.c b/lib/unicase/u16-ct-totitle.c
index 555e149c..bf4a38f4 100644
--- a/lib/unicase/u16-ct-totitle.c
+++ b/lib/unicase/u16-ct-totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-16 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-ct-toupper.c b/lib/unicase/u16-ct-toupper.c
index 1673376d..fb4a9459 100644
--- a/lib/unicase/u16-ct-toupper.c
+++ b/lib/unicase/u16-ct-toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for UTF-16 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-is-cased.c b/lib/unicase/u16-is-cased.c
index 327816ee..92851fe8 100644
--- a/lib/unicase/u16-is-cased.c
+++ b/lib/unicase/u16-is-cased.c
@@ -1,5 +1,5 @@
/* Test whether case matters for an UTF-16 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-is-casefolded.c b/lib/unicase/u16-is-casefolded.c
index 9aa0018a..d7c34d31 100644
--- a/lib/unicase/u16-is-casefolded.c
+++ b/lib/unicase/u16-is-casefolded.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-16 string is already case-folded.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-is-invariant.c b/lib/unicase/u16-is-invariant.c
index 8f0487ab..7b44c054 100644
--- a/lib/unicase/u16-is-invariant.c
+++ b/lib/unicase/u16-is-invariant.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-16 string is invariant under a given case mapping.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-is-lowercase.c b/lib/unicase/u16-is-lowercase.c
index a5487dff..d4ed1939 100644
--- a/lib/unicase/u16-is-lowercase.c
+++ b/lib/unicase/u16-is-lowercase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-16 string is entirely lower case.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-is-titlecase.c b/lib/unicase/u16-is-titlecase.c
index 360b2a53..a911bd53 100644
--- a/lib/unicase/u16-is-titlecase.c
+++ b/lib/unicase/u16-is-titlecase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-16 string is entirely title case.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-is-uppercase.c b/lib/unicase/u16-is-uppercase.c
index 18c918a0..a8f5865f 100644
--- a/lib/unicase/u16-is-uppercase.c
+++ b/lib/unicase/u16-is-uppercase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-16 string is entirely upper case.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-prefix-context.c b/lib/unicase/u16-prefix-context.c
index 6538cdb9..ec67e0f5 100644
--- a/lib/unicase/u16-prefix-context.c
+++ b/lib/unicase/u16-prefix-context.c
@@ -1,5 +1,5 @@
/* Case-mapping context of prefix UTF-16 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-suffix-context.c b/lib/unicase/u16-suffix-context.c
index 30b1bcf7..b6cfe6e4 100644
--- a/lib/unicase/u16-suffix-context.c
+++ b/lib/unicase/u16-suffix-context.c
@@ -1,5 +1,5 @@
/* Case-mapping context of suffix UTF-16 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-tolower.c b/lib/unicase/u16-tolower.c
index 9fe111a0..b3a3b1db 100644
--- a/lib/unicase/u16-tolower.c
+++ b/lib/unicase/u16-tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for UTF-16 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-totitle.c b/lib/unicase/u16-totitle.c
index 99fa10ba..5b4da8fb 100644
--- a/lib/unicase/u16-totitle.c
+++ b/lib/unicase/u16-totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-16 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u16-toupper.c b/lib/unicase/u16-toupper.c
index 8c3c6346..e1f2635a 100644
--- a/lib/unicase/u16-toupper.c
+++ b/lib/unicase/u16-toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for UTF-16 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-casecmp.c b/lib/unicase/u32-casecmp.c
index 84588670..6898823c 100644
--- a/lib/unicase/u32-casecmp.c
+++ b/lib/unicase/u32-casecmp.c
@@ -1,5 +1,5 @@
/* Case and normalization insensitive comparison of UTF-32 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-casecoll.c b/lib/unicase/u32-casecoll.c
index c606310b..f43119ce 100644
--- a/lib/unicase/u32-casecoll.c
+++ b/lib/unicase/u32-casecoll.c
@@ -1,6 +1,6 @@
/* Locale dependent, case and normalization insensitive comparison of UTF-32
strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-casefold.c b/lib/unicase/u32-casefold.c
index 43614d8c..f54fd9d0 100644
--- a/lib/unicase/u32-casefold.c
+++ b/lib/unicase/u32-casefold.c
@@ -1,5 +1,5 @@
/* Casefolding mapping for UTF-32 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-casemap.c b/lib/unicase/u32-casemap.c
index 52e96696..4f1161b5 100644
--- a/lib/unicase/u32-casemap.c
+++ b/lib/unicase/u32-casemap.c
@@ -1,5 +1,5 @@
/* Case mapping for UTF-32 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-casexfrm.c b/lib/unicase/u32-casexfrm.c
index c105221f..85396426 100644
--- a/lib/unicase/u32-casexfrm.c
+++ b/lib/unicase/u32-casexfrm.c
@@ -1,6 +1,6 @@
/* Locale dependent transformation for case insensitive comparison of UTF-32
strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-ct-casefold.c b/lib/unicase/u32-ct-casefold.c
index 3da61533..5ea1ee74 100644
--- a/lib/unicase/u32-ct-casefold.c
+++ b/lib/unicase/u32-ct-casefold.c
@@ -1,5 +1,5 @@
/* Casefolding mapping for UTF-32 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-ct-tolower.c b/lib/unicase/u32-ct-tolower.c
index c73126f4..95834829 100644
--- a/lib/unicase/u32-ct-tolower.c
+++ b/lib/unicase/u32-ct-tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for UTF-32 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-ct-totitle.c b/lib/unicase/u32-ct-totitle.c
index 389680a4..6f93f008 100644
--- a/lib/unicase/u32-ct-totitle.c
+++ b/lib/unicase/u32-ct-totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-32 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-ct-toupper.c b/lib/unicase/u32-ct-toupper.c
index 20b123d9..f457f49b 100644
--- a/lib/unicase/u32-ct-toupper.c
+++ b/lib/unicase/u32-ct-toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for UTF-32 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-is-cased.c b/lib/unicase/u32-is-cased.c
index 2ef7ba05..14500c97 100644
--- a/lib/unicase/u32-is-cased.c
+++ b/lib/unicase/u32-is-cased.c
@@ -1,5 +1,5 @@
/* Test whether case matters for an UTF-32 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-is-casefolded.c b/lib/unicase/u32-is-casefolded.c
index 14b5fb56..a1a4ae0f 100644
--- a/lib/unicase/u32-is-casefolded.c
+++ b/lib/unicase/u32-is-casefolded.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-32 string is already case-folded.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-is-invariant.c b/lib/unicase/u32-is-invariant.c
index 8322d09f..312d0504 100644
--- a/lib/unicase/u32-is-invariant.c
+++ b/lib/unicase/u32-is-invariant.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-32 string is invariant under a given case mapping.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-is-lowercase.c b/lib/unicase/u32-is-lowercase.c
index 33e9b969..494ef976 100644
--- a/lib/unicase/u32-is-lowercase.c
+++ b/lib/unicase/u32-is-lowercase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-32 string is entirely lower case.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-is-titlecase.c b/lib/unicase/u32-is-titlecase.c
index e27e84be..12162c34 100644
--- a/lib/unicase/u32-is-titlecase.c
+++ b/lib/unicase/u32-is-titlecase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-32 string is entirely title case.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-is-uppercase.c b/lib/unicase/u32-is-uppercase.c
index a1491875..95ea76f0 100644
--- a/lib/unicase/u32-is-uppercase.c
+++ b/lib/unicase/u32-is-uppercase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-32 string is entirely upper case.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-prefix-context.c b/lib/unicase/u32-prefix-context.c
index 03c96dda..8e2da09b 100644
--- a/lib/unicase/u32-prefix-context.c
+++ b/lib/unicase/u32-prefix-context.c
@@ -1,5 +1,5 @@
/* Case-mapping context of prefix UTF-32 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-suffix-context.c b/lib/unicase/u32-suffix-context.c
index 440de756..2849111d 100644
--- a/lib/unicase/u32-suffix-context.c
+++ b/lib/unicase/u32-suffix-context.c
@@ -1,5 +1,5 @@
/* Case-mapping context of suffix UTF-32 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-tolower.c b/lib/unicase/u32-tolower.c
index 6ade7ca9..3c75471e 100644
--- a/lib/unicase/u32-tolower.c
+++ b/lib/unicase/u32-tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for UTF-32 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-totitle.c b/lib/unicase/u32-totitle.c
index caf02bd3..918f5814 100644
--- a/lib/unicase/u32-totitle.c
+++ b/lib/unicase/u32-totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-32 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u32-toupper.c b/lib/unicase/u32-toupper.c
index 928eac45..1ec20b43 100644
--- a/lib/unicase/u32-toupper.c
+++ b/lib/unicase/u32-toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for UTF-32 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-casecmp.c b/lib/unicase/u8-casecmp.c
index 8ae141ca..4aa61d55 100644
--- a/lib/unicase/u8-casecmp.c
+++ b/lib/unicase/u8-casecmp.c
@@ -1,5 +1,5 @@
/* Case and normalization insensitive comparison of UTF-8 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-casecoll.c b/lib/unicase/u8-casecoll.c
index 43833896..cd9d42d4 100644
--- a/lib/unicase/u8-casecoll.c
+++ b/lib/unicase/u8-casecoll.c
@@ -1,6 +1,6 @@
/* Locale dependent, case and normalization insensitive comparison of UTF-8
strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-casefold.c b/lib/unicase/u8-casefold.c
index 59dee49e..d446855c 100644
--- a/lib/unicase/u8-casefold.c
+++ b/lib/unicase/u8-casefold.c
@@ -1,5 +1,5 @@
/* Casefolding mapping for UTF-8 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -50,7 +50,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -66,7 +65,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
diff --git a/lib/unicase/u8-casemap.c b/lib/unicase/u8-casemap.c
index 9488db6d..780fbbf3 100644
--- a/lib/unicase/u8-casemap.c
+++ b/lib/unicase/u8-casemap.c
@@ -1,5 +1,5 @@
/* Case mapping for UTF-8 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-casexfrm.c b/lib/unicase/u8-casexfrm.c
index 6e6ef004..f88f1a0c 100644
--- a/lib/unicase/u8-casexfrm.c
+++ b/lib/unicase/u8-casexfrm.c
@@ -1,6 +1,6 @@
/* Locale dependent transformation for case insensitive comparison of UTF-8
strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-ct-casefold.c b/lib/unicase/u8-ct-casefold.c
index 6b84998d..d132af19 100644
--- a/lib/unicase/u8-ct-casefold.c
+++ b/lib/unicase/u8-ct-casefold.c
@@ -1,5 +1,5 @@
/* Casefolding mapping for UTF-8 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-ct-tolower.c b/lib/unicase/u8-ct-tolower.c
index b699c72a..93412107 100644
--- a/lib/unicase/u8-ct-tolower.c
+++ b/lib/unicase/u8-ct-tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for UTF-8 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-ct-totitle.c b/lib/unicase/u8-ct-totitle.c
index c7a53567..ae4a123f 100644
--- a/lib/unicase/u8-ct-totitle.c
+++ b/lib/unicase/u8-ct-totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-8 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-ct-toupper.c b/lib/unicase/u8-ct-toupper.c
index ca092c73..1d4ee155 100644
--- a/lib/unicase/u8-ct-toupper.c
+++ b/lib/unicase/u8-ct-toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for UTF-8 substrings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-is-cased.c b/lib/unicase/u8-is-cased.c
index 52c10c0a..e84ae088 100644
--- a/lib/unicase/u8-is-cased.c
+++ b/lib/unicase/u8-is-cased.c
@@ -1,5 +1,5 @@
/* Test whether case matters for an UTF-8 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-is-casefolded.c b/lib/unicase/u8-is-casefolded.c
index 034127bb..c242922b 100644
--- a/lib/unicase/u8-is-casefolded.c
+++ b/lib/unicase/u8-is-casefolded.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-8 string is already case-folded.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-is-invariant.c b/lib/unicase/u8-is-invariant.c
index 5e157247..11392017 100644
--- a/lib/unicase/u8-is-invariant.c
+++ b/lib/unicase/u8-is-invariant.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-8 string is invariant under a given case mapping.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-is-lowercase.c b/lib/unicase/u8-is-lowercase.c
index 9706901f..62ed1626 100644
--- a/lib/unicase/u8-is-lowercase.c
+++ b/lib/unicase/u8-is-lowercase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-8 string is entirely lower case.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-is-titlecase.c b/lib/unicase/u8-is-titlecase.c
index 841227b9..0d7ff162 100644
--- a/lib/unicase/u8-is-titlecase.c
+++ b/lib/unicase/u8-is-titlecase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-8 string is entirely title case.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-is-uppercase.c b/lib/unicase/u8-is-uppercase.c
index e105f164..d177cf71 100644
--- a/lib/unicase/u8-is-uppercase.c
+++ b/lib/unicase/u8-is-uppercase.c
@@ -1,5 +1,5 @@
/* Test whether an UTF-8 string is entirely upper case.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-prefix-context.c b/lib/unicase/u8-prefix-context.c
index fa11aefd..1111b628 100644
--- a/lib/unicase/u8-prefix-context.c
+++ b/lib/unicase/u8-prefix-context.c
@@ -1,5 +1,5 @@
/* Case-mapping context of prefix UTF-8 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-suffix-context.c b/lib/unicase/u8-suffix-context.c
index a1fb33e3..1ff29488 100644
--- a/lib/unicase/u8-suffix-context.c
+++ b/lib/unicase/u8-suffix-context.c
@@ -1,5 +1,5 @@
/* Case-mapping context of suffix UTF-8 string.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/u8-tolower.c b/lib/unicase/u8-tolower.c
index 352a0ef9..cc4bc036 100644
--- a/lib/unicase/u8-tolower.c
+++ b/lib/unicase/u8-tolower.c
@@ -1,5 +1,5 @@
/* Lowercase mapping for UTF-8 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -63,7 +63,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -79,7 +78,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
diff --git a/lib/unicase/u8-totitle.c b/lib/unicase/u8-totitle.c
index c72e5d82..2b0d3cf7 100644
--- a/lib/unicase/u8-totitle.c
+++ b/lib/unicase/u8-totitle.c
@@ -1,5 +1,5 @@
/* Titlecase mapping for UTF-8 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -50,7 +50,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -66,7 +65,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
diff --git a/lib/unicase/u8-toupper.c b/lib/unicase/u8-toupper.c
index 2968d989..9dccf9d9 100644
--- a/lib/unicase/u8-toupper.c
+++ b/lib/unicase/u8-toupper.c
@@ -1,5 +1,5 @@
/* Uppercase mapping for UTF-8 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -63,7 +63,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -79,7 +78,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
diff --git a/lib/unicase/ulc-casecmp.c b/lib/unicase/ulc-casecmp.c
index ced4f8e4..3504addc 100644
--- a/lib/unicase/ulc-casecmp.c
+++ b/lib/unicase/ulc-casecmp.c
@@ -1,5 +1,5 @@
/* Case and normalization insensitive comparison of strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -41,14 +41,10 @@ ulc_u8_casefold (const char *s, size_t n, const char *iso639_language,
uninorm_t nf,
uint8_t *resultbuf, size_t *lengthp)
{
- uint8_t convbuf[2048 / sizeof (uint8_t)];
- uint8_t *conv;
- size_t conv_length;
- uint8_t *result;
-
/* Convert the string to UTF-8. */
- conv_length = sizeof (convbuf) / sizeof (uint8_t);
- conv =
+ uint8_t convbuf[2048 / sizeof (uint8_t)];
+ size_t conv_length = sizeof (convbuf) / sizeof (uint8_t);
+ uint8_t *conv =
u8_conv_from_encoding (locale_charset (), iconveh_error, s, n, NULL,
convbuf, &conv_length);
if (conv == NULL)
@@ -56,8 +52,8 @@ ulc_u8_casefold (const char *s, size_t n, const char *iso639_language,
return NULL;
/* Case-fold and normalize. */
- result = u8_casefold (conv, conv_length, iso639_language, nf,
- resultbuf, lengthp);
+ uint8_t *result = u8_casefold (conv, conv_length, iso639_language, nf,
+ resultbuf, lengthp);
if (result == NULL)
{
if (conv != convbuf)
diff --git a/lib/unicase/ulc-casecoll.c b/lib/unicase/ulc-casecoll.c
index 1367e193..9cbfbb6a 100644
--- a/lib/unicase/ulc-casecoll.c
+++ b/lib/unicase/ulc-casecoll.c
@@ -1,5 +1,5 @@
/* Locale dependent, case and normalization insensitive comparison of strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unicase/ulc-casexfrm.c b/lib/unicase/ulc-casexfrm.c
index f18ad566..ef27d2ad 100644
--- a/lib/unicase/ulc-casexfrm.c
+++ b/lib/unicase/ulc-casexfrm.c
@@ -1,5 +1,5 @@
/* Locale dependent transformation for case insensitive comparison of strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -38,14 +38,10 @@ ulc_casexfrm (const char *s, size_t n, const char *iso639_language,
uninorm_t nf,
char *resultbuf, size_t *lengthp)
{
- uint8_t convbuf[2048 / sizeof (uint8_t)];
- uint8_t *conv;
- size_t conv_length;
- char *result;
-
/* Convert the string to UTF-8. */
- conv_length = sizeof (convbuf) / sizeof (uint8_t);
- conv =
+ uint8_t convbuf[2048 / sizeof (uint8_t)];
+ size_t conv_length = sizeof (convbuf) / sizeof (uint8_t);
+ uint8_t *conv =
u8_conv_from_encoding (locale_charset (), iconveh_error, s, n, NULL,
convbuf, &conv_length);
if (conv == NULL)
@@ -53,8 +49,8 @@ ulc_casexfrm (const char *s, size_t n, const char *iso639_language,
return NULL;
/* Case-fold and normalize. */
- result = u8_casexfrm (conv, conv_length, iso639_language, nf,
- resultbuf, lengthp);
+ char *result = u8_casexfrm (conv, conv_length, iso639_language, nf,
+ resultbuf, lengthp);
if (result == NULL)
{
if (conv != convbuf)
diff --git a/lib/unicase/unicasemap.h b/lib/unicase/unicasemap.h
index 3aec2c61..ce80329e 100644
--- a/lib/unicase/unicasemap.h
+++ b/lib/unicase/unicasemap.h
@@ -1,5 +1,5 @@
/* Case mapping for UTF-8/UTF-16/UTF-32 strings (locale dependent).
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uniconv.in.h b/lib/uniconv.in.h
index 5b716d29..6a02dc1d 100644
--- a/lib/uniconv.in.h
+++ b/lib/uniconv.in.h
@@ -1,5 +1,5 @@
/* Conversions between Unicode and legacy encodings.
- Copyright (C) 2002, 2005, 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005, 2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/uniconv/u-conv-from-enc.h b/lib/uniconv/u-conv-from-enc.h
index 32251c5e..4371d2b1 100644
--- a/lib/uniconv/u-conv-from-enc.h
+++ b/lib/uniconv/u-conv-from-enc.h
@@ -1,5 +1,5 @@
/* Conversion to UTF-16/UTF-32 from legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -40,9 +40,8 @@ FUNC (const char *fromcode,
{
/* Convert 'char *' offsets to 'UNIT *' offsets. */
size_t *offsets_end = offsets + srclen;
- size_t *o;
- for (o = offsets; o < offsets_end; o++)
+ for (size_t *o = offsets; o < offsets_end; o++)
if (*o != (size_t)(-1))
*o = *o / sizeof (UNIT);
}
@@ -51,16 +50,14 @@ FUNC (const char *fromcode,
*lengthp = length / sizeof (UNIT);
return (UNIT *) result;
#else
- uint8_t *utf8_string;
size_t utf8_length;
- UNIT *result;
-
- utf8_string =
+ uint8_t *utf8_string =
u8_conv_from_encoding (fromcode, handler, src, srclen, offsets,
NULL, &utf8_length);
if (utf8_string == NULL)
return NULL;
- result = U8_TO_U (utf8_string, utf8_length, resultbuf, lengthp);
+
+ UNIT *result = U8_TO_U (utf8_string, utf8_length, resultbuf, lengthp);
if (result == NULL)
{
int saved_errno = errno;
@@ -72,11 +69,10 @@ FUNC (const char *fromcode,
{
size_t length = *lengthp;
size_t *offsets_end = offsets + srclen;
- size_t *o;
- size_t off8 = 0; /* offset into utf8_string */
- size_t offunit = 0; /* offset into result */
- for (o = offsets; o < offsets_end; o++)
+ size_t off8 = 0; /* offset into utf8_string */
+ size_t offunit = 0; /* offset into result */
+ for (size_t *o = offsets; o < offsets_end; o++)
if (*o != (size_t)(-1))
{
while (off8 < *o)
diff --git a/lib/uniconv/u-conv-to-enc.h b/lib/uniconv/u-conv-to-enc.h
index e1a85324..1ab900cc 100644
--- a/lib/uniconv/u-conv-to-enc.h
+++ b/lib/uniconv/u-conv-to-enc.h
@@ -1,5 +1,5 @@
/* Conversion from UTF-16/UTF-32 to legacy encodings.
- Copyright (C) 2002, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -31,9 +31,6 @@ FUNC (const char *tocode,
{
#if HAVE_UTF_NAME
size_t *scaled_offsets;
- char *result;
- size_t length;
-
if (offsets != NULL && srclen > 0)
{
scaled_offsets =
@@ -47,8 +44,8 @@ FUNC (const char *tocode,
else
scaled_offsets = NULL;
- result = resultbuf;
- length = *lengthp;
+ char *result = resultbuf;
+ size_t length = *lengthp;
if (mem_iconveha ((const char *) src, srclen * sizeof (UNIT),
UTF_NAME, tocode,
handler == iconveh_question_mark, handler,
@@ -64,9 +61,7 @@ FUNC (const char *tocode,
{
/* Convert scaled_offsets[srclen * sizeof (UNIT)] to
offsets[srclen]. */
- size_t i;
-
- for (i = 0; i < srclen; i++)
+ for (size_t i = 0; i < srclen; i++)
offsets[i] = scaled_offsets[i * sizeof (UNIT)];
free (scaled_offsets);
}
@@ -85,16 +80,12 @@ FUNC (const char *tocode,
#else
uint8_t tmpbuf[4096];
size_t tmpbufsize = SIZEOF (tmpbuf);
- uint8_t *utf8_src;
- size_t utf8_srclen;
- size_t *scaled_offsets;
- char *result;
-
- utf8_src = U_TO_U8 (src, srclen, tmpbuf, &tmpbufsize);
+ uint8_t *utf8_src = U_TO_U8 (src, srclen, tmpbuf, &tmpbufsize);
if (utf8_src == NULL)
return NULL;
- utf8_srclen = tmpbufsize;
+ size_t utf8_srclen = tmpbufsize;
+ size_t *scaled_offsets;
if (offsets != NULL && utf8_srclen > 0)
{
scaled_offsets = (size_t *) malloc (utf8_srclen * sizeof (size_t));
@@ -109,8 +100,8 @@ FUNC (const char *tocode,
else
scaled_offsets = NULL;
- result = u8_conv_to_encoding (tocode, handler, utf8_src, utf8_srclen,
- scaled_offsets, resultbuf, lengthp);
+ char *result = u8_conv_to_encoding (tocode, handler, utf8_src, utf8_srclen,
+ scaled_offsets, resultbuf, lengthp);
if (result == NULL)
{
int saved_errno = errno;
@@ -122,23 +113,17 @@ FUNC (const char *tocode,
}
if (offsets != NULL)
{
- size_t iunit; /* offset into src */
- size_t i8; /* offset into utf8_src */
-
- for (iunit = 0; iunit < srclen; iunit++)
+ for (size_t iunit = 0; iunit < srclen; iunit++)
offsets[iunit] = (size_t)(-1);
- iunit = 0;
- i8 = 0;
+ size_t iunit = 0; /* offset into src */
+ size_t i8 = 0; /* offset into utf8_src */
while (iunit < srclen && i8 < utf8_srclen)
{
- int countunit;
- int count8;
-
offsets[iunit] = scaled_offsets[i8];
- countunit = U_MBLEN (src + iunit, srclen - iunit);
- count8 = u8_mblen (utf8_src + i8, utf8_srclen - i8);
+ int countunit = U_MBLEN (src + iunit, srclen - iunit);
+ int count8 = u8_mblen (utf8_src + i8, utf8_srclen - i8);
if (countunit < 0 || count8 < 0)
abort ();
iunit += countunit;
diff --git a/lib/uniconv/u-strconv-from-enc.h b/lib/uniconv/u-strconv-from-enc.h
index 2d1e4ce6..034be44c 100644
--- a/lib/uniconv/u-strconv-from-enc.h
+++ b/lib/uniconv/u-strconv-from-enc.h
@@ -1,5 +1,5 @@
/* Conversion to UTF-8/UTF-16/UTF-32 from legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -19,10 +19,8 @@ FUNC (const char *string,
const char *fromcode,
enum iconv_ilseq_handler handler)
{
- UNIT *result;
size_t length;
-
- result =
+ UNIT *result =
U_CONV_FROM_ENCODING (fromcode, handler,
string, strlen (string) + 1, NULL,
NULL, &length);
diff --git a/lib/uniconv/u-strconv-to-enc.h b/lib/uniconv/u-strconv-to-enc.h
index 91b8e1a9..175aac20 100644
--- a/lib/uniconv/u-strconv-to-enc.h
+++ b/lib/uniconv/u-strconv-to-enc.h
@@ -1,5 +1,5 @@
/* Conversion from UTF-16/UTF-32 to legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -47,13 +47,10 @@ FUNC (const UNIT *string,
#else
uint8_t tmpbuf[4096];
size_t tmpbufsize = SIZEOF (tmpbuf);
- uint8_t *utf8_string;
- char *result;
-
- utf8_string = U_TO_U8 (string, U_STRLEN (string) + 1, tmpbuf, &tmpbufsize);
+ uint8_t *utf8_string = U_TO_U8 (string, U_STRLEN (string) + 1, tmpbuf, &tmpbufsize);
if (utf8_string == NULL)
return NULL;
- result = u8_strconv_to_encoding (utf8_string, tocode, handler);
+ char *result = u8_strconv_to_encoding (utf8_string, tocode, handler);
if (result == NULL)
{
if (utf8_string != tmpbuf)
diff --git a/lib/uniconv/u16-conv-from-enc.c b/lib/uniconv/u16-conv-from-enc.c
index f2c3dfa1..7c5e1f15 100644
--- a/lib/uniconv/u16-conv-from-enc.c
+++ b/lib/uniconv/u16-conv-from-enc.c
@@ -1,5 +1,5 @@
/* Conversion to UTF-16 from legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u16-conv-to-enc.c b/lib/uniconv/u16-conv-to-enc.c
index f44e90f0..1214e671 100644
--- a/lib/uniconv/u16-conv-to-enc.c
+++ b/lib/uniconv/u16-conv-to-enc.c
@@ -1,5 +1,5 @@
/* Conversion from UTF-16 to legacy encodings.
- Copyright (C) 2002, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -62,11 +62,10 @@ static DST_UNIT *
FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
{
const SRC_UNIT *s_end = s + n;
+
/* Output string accumulator. */
DST_UNIT *result;
size_t allocated;
- size_t length;
-
if (resultbuf != NULL)
{
result = resultbuf;
@@ -77,18 +76,16 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
result = NULL;
allocated = 0;
}
- length = 0;
+ size_t length = 0;
/* Invariants:
result is either == resultbuf or == NULL or malloc-allocated.
If length > 0, then result != NULL. */
while (s < s_end)
{
- ucs4_t uc;
- int count;
-
/* Fetch a Unicode character from the input string. */
- count = u16_mbtoucr (&uc, s, s_end - s);
+ ucs4_t uc;
+ int count = u16_mbtoucr (&uc, s, s_end - s);
if (count < 0)
{
if (count == -2)
@@ -112,11 +109,11 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
}
if (count == -2)
{
- DST_UNIT *memory;
-
allocated = (allocated > 0 ? 2 * allocated : 12);
if (length + 6 > allocated)
allocated = length + 6;
+
+ DST_UNIT *memory;
if (result == resultbuf || result == NULL)
memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
else
@@ -157,9 +154,8 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- DST_UNIT *memory;
-
- memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ DST_UNIT *memory =
+ (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/uniconv/u16-strconv-from-enc.c b/lib/uniconv/u16-strconv-from-enc.c
index 19ead042..efb3a9c3 100644
--- a/lib/uniconv/u16-strconv-from-enc.c
+++ b/lib/uniconv/u16-strconv-from-enc.c
@@ -1,5 +1,5 @@
/* Conversion to UTF-16 from legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u16-strconv-from-locale.c b/lib/uniconv/u16-strconv-from-locale.c
index bc9e5175..6f670255 100644
--- a/lib/uniconv/u16-strconv-from-locale.c
+++ b/lib/uniconv/u16-strconv-from-locale.c
@@ -1,5 +1,5 @@
/* Conversion to UTF-16 from the locale encoding.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u16-strconv-to-enc.c b/lib/uniconv/u16-strconv-to-enc.c
index 85ca8a6d..83d5f090 100644
--- a/lib/uniconv/u16-strconv-to-enc.c
+++ b/lib/uniconv/u16-strconv-to-enc.c
@@ -1,5 +1,5 @@
/* Conversion from UTF-16 to legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u16-strconv-to-locale.c b/lib/uniconv/u16-strconv-to-locale.c
index 697023a8..cdf8cc9b 100644
--- a/lib/uniconv/u16-strconv-to-locale.c
+++ b/lib/uniconv/u16-strconv-to-locale.c
@@ -1,5 +1,5 @@
/* Conversion from UTF-16 to the locale encoding.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u32-conv-from-enc.c b/lib/uniconv/u32-conv-from-enc.c
index 33cefb7f..a18ca18a 100644
--- a/lib/uniconv/u32-conv-from-enc.c
+++ b/lib/uniconv/u32-conv-from-enc.c
@@ -1,5 +1,5 @@
/* Conversion to UTF-32 from legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u32-conv-to-enc.c b/lib/uniconv/u32-conv-to-enc.c
index a96f16de..e0504f46 100644
--- a/lib/uniconv/u32-conv-to-enc.c
+++ b/lib/uniconv/u32-conv-to-enc.c
@@ -1,5 +1,5 @@
/* Conversion from UTF-32 to legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u32-strconv-from-enc.c b/lib/uniconv/u32-strconv-from-enc.c
index 18adfe00..e6095da4 100644
--- a/lib/uniconv/u32-strconv-from-enc.c
+++ b/lib/uniconv/u32-strconv-from-enc.c
@@ -1,5 +1,5 @@
/* Conversion to UTF-32 from legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u32-strconv-from-locale.c b/lib/uniconv/u32-strconv-from-locale.c
index 896c3fd7..6e16662b 100644
--- a/lib/uniconv/u32-strconv-from-locale.c
+++ b/lib/uniconv/u32-strconv-from-locale.c
@@ -1,5 +1,5 @@
/* Conversion to UTF-32 from the locale encoding.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u32-strconv-to-enc.c b/lib/uniconv/u32-strconv-to-enc.c
index f63ced59..31c2354b 100644
--- a/lib/uniconv/u32-strconv-to-enc.c
+++ b/lib/uniconv/u32-strconv-to-enc.c
@@ -1,5 +1,5 @@
/* Conversion from UTF-32 to legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u32-strconv-to-locale.c b/lib/uniconv/u32-strconv-to-locale.c
index d19f3760..578fd0d2 100644
--- a/lib/uniconv/u32-strconv-to-locale.c
+++ b/lib/uniconv/u32-strconv-to-locale.c
@@ -1,5 +1,5 @@
/* Conversion from UTF-32 to the locale encoding.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/uniconv/u8-conv-from-enc.c b/lib/uniconv/u8-conv-from-enc.c
index e292e954..fa2bb59c 100644
--- a/lib/uniconv/u8-conv-from-enc.c
+++ b/lib/uniconv/u8-conv-from-enc.c
@@ -1,5 +1,5 @@
/* Conversion to UTF-8 from legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -39,7 +39,6 @@ u8_conv_from_encoding (const char *fromcode,
if (STRCASEEQ (fromcode, "UTF-8", 'U','T','F','-','8',0,0,0,0))
{
/* Conversion from UTF-8 to UTF-8. No need to go through iconv(). */
- uint8_t *result;
if (u8_check ((const uint8_t *) src, srclen))
{
@@ -48,23 +47,20 @@ u8_conv_from_encoding (const char *fromcode,
}
if (offsets != NULL)
- {
- size_t i;
-
- for (i = 0; i < srclen; )
- {
- int count = u8_mblen ((const uint8_t *) src + i, srclen - i);
- /* We can rely on count > 0 because of the previous u8_check. */
- if (count <= 0)
- abort ();
- offsets[i] = i;
- i++;
- while (--count > 0)
- offsets[i++] = (size_t)(-1);
- }
- }
+ for (size_t i = 0; i < srclen; )
+ {
+ int count = u8_mblen ((const uint8_t *) src + i, srclen - i);
+ /* We can rely on count > 0 because of the previous u8_check. */
+ if (count <= 0)
+ abort ();
+ offsets[i] = i;
+ i++;
+ while (--count > 0)
+ offsets[i++] = (size_t)(-1);
+ }
/* Memory allocation. */
+ uint8_t *result;
if (resultbuf != NULL && *lengthp >= srclen)
result = resultbuf;
else
diff --git a/lib/uniconv/u8-conv-to-enc.c b/lib/uniconv/u8-conv-to-enc.c
index bd6c150c..90b1825d 100644
--- a/lib/uniconv/u8-conv-to-enc.c
+++ b/lib/uniconv/u8-conv-to-enc.c
@@ -1,5 +1,5 @@
/* Conversion from UTF-8 to legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -46,8 +46,6 @@ u8_conv_to_encoding (const char *tocode,
{
if (STRCASEEQ (tocode, "UTF-8", 'U','T','F','-','8',0,0,0,0))
{
- char *result;
-
/* Conversion from UTF-8 to UTF-8. No need to go through iconv(). */
if (u8_check (src, srclen))
{
@@ -56,6 +54,7 @@ u8_conv_to_encoding (const char *tocode,
}
/* Memory allocation. */
+ char *result;
if (resultbuf != NULL && *lengthp >= srclen)
result = resultbuf;
else
diff --git a/lib/uniconv/u8-strconv-from-enc.c b/lib/uniconv/u8-strconv-from-enc.c
index 2e16689c..2b17f59e 100644
--- a/lib/uniconv/u8-strconv-from-enc.c
+++ b/lib/uniconv/u8-strconv-from-enc.c
@@ -1,5 +1,5 @@
/* Conversion to UTF-8 from legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/uniconv/u8-strconv-from-locale.c b/lib/uniconv/u8-strconv-from-locale.c
index f5ea013b..3c1462ee 100644
--- a/lib/uniconv/u8-strconv-from-locale.c
+++ b/lib/uniconv/u8-strconv-from-locale.c
@@ -1,5 +1,5 @@
/* Conversion to UTF-8 from the locale encoding.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/uniconv/u8-strconv-to-enc.c b/lib/uniconv/u8-strconv-to-enc.c
index d346c482..35bd5813 100644
--- a/lib/uniconv/u8-strconv-to-enc.c
+++ b/lib/uniconv/u8-strconv-to-enc.c
@@ -1,5 +1,5 @@
/* Conversion from UTF-8 to legacy encodings.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -42,19 +42,16 @@ u8_strconv_to_encoding (const uint8_t *string,
const char *tocode,
enum iconv_ilseq_handler handler)
{
- char *result;
- size_t length;
-
if (STRCASEEQ (tocode, "UTF-8", 'U','T','F','-','8',0,0,0,0))
{
/* Conversion from UTF-8 to UTF-8. No need to go through iconv(). */
- length = u8_strlen (string) + 1;
+ size_t length = u8_strlen (string) + 1;
if (u8_check (string, length))
{
errno = EILSEQ;
return NULL;
}
- result = (char *) malloc (length);
+ char *result = (char *) malloc (length);
if (result == NULL)
{
errno = ENOMEM;
@@ -65,8 +62,8 @@ u8_strconv_to_encoding (const uint8_t *string,
}
else
{
- result = NULL;
- length = 0;
+ char *result = NULL;
+ size_t length = 0;
if (mem_iconveha ((const char *) string, u8_strlen (string) + 1,
"UTF-8", tocode,
handler == iconveh_question_mark, handler,
diff --git a/lib/uniconv/u8-strconv-to-locale.c b/lib/uniconv/u8-strconv-to-locale.c
index ce9f2513..923f348d 100644
--- a/lib/uniconv/u8-strconv-to-locale.c
+++ b/lib/uniconv/u8-strconv-to-locale.c
@@ -1,5 +1,5 @@
/* Conversion from UTF-8 to the locale encoding.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unictype.in.h b/lib/unictype.in.h
index e94d6626..c3b9ecaf 100644
--- a/lib/unictype.in.h
+++ b/lib/unictype.in.h
@@ -1,5 +1,5 @@
/* Unicode character classification and properties.
- Copyright (C) 2002, 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/unictype/bidi_byname.c b/lib/unictype/bidi_byname.c
index a4175604..f4c2196a 100644
--- a/lib/unictype/bidi_byname.c
+++ b/lib/unictype/bidi_byname.c
@@ -1,5 +1,5 @@
/* Bidi classes of Unicode characters.
- Copyright (C) 2002, 2006, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -35,13 +35,10 @@
int
uc_bidi_class_byname (const char *bidi_class_name)
{
- size_t len;
-
- len = strlen (bidi_class_name);
+ size_t len = strlen (bidi_class_name);
if (len <= MAX_WORD_LENGTH)
{
char buf[MAX_WORD_LENGTH + 1];
- const struct named_bidi_class *found;
/* Copy bidi_class_name into buf, converting '_' and '-' to ' '. */
{
@@ -62,7 +59,7 @@ uc_bidi_class_byname (const char *bidi_class_name)
/* Here q == buf + len. */
/* Do a hash table lookup, with case-insensitive comparison. */
- found = uc_bidi_class_lookup (buf, len);
+ const struct named_bidi_class *found = uc_bidi_class_lookup (buf, len);
if (found != NULL)
return found->bidi_class;
}
diff --git a/lib/unictype/bidi_byname.gperf b/lib/unictype/bidi_byname.gperf
index dfb1b637..81d2fb66 100644
--- a/lib/unictype/bidi_byname.gperf
+++ b/lib/unictype/bidi_byname.gperf
@@ -1,5 +1,5 @@
/* Bidi classes of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unictype/bidi_byname.h b/lib/unictype/bidi_byname.h
index 46f35551..28156ab9 100644
--- a/lib/unictype/bidi_byname.h
+++ b/lib/unictype/bidi_byname.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 unictype/bidi_byname.gperf */
/* Computed positions: -k'1,9,$' */
@@ -125,9 +125,9 @@ bidi_class_hash (register const char *str, register size_t len)
{
default:
hval += asso_values[(unsigned char)str[8]];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -291,6 +291,10 @@ static const struct bidi_class_stringpool_t bidi_class_stringpool_contents =
};
#define bidi_class_stringpool ((const char *) &bidi_class_stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct named_bidi_class bidi_class_names[] =
{
{-1}, {-1}, {-1}, {-1}, {-1},
@@ -443,6 +447,9 @@ static const struct named_bidi_class bidi_class_names[] =
#line 102 "unictype/bidi_byname.gperf"
{(int)(size_t)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str87, UC_BIDI_S}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
static const struct named_bidi_class *
uc_bidi_class_lookup (register const char *str, register size_t len)
@@ -463,5 +470,5 @@ uc_bidi_class_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct named_bidi_class *) 0;
}
diff --git a/lib/unictype/bidi_longname.c b/lib/unictype/bidi_longname.c
index 8a2f34e8..4a3fe274 100644
--- a/lib/unictype/bidi_longname.c
+++ b/lib/unictype/bidi_longname.c
@@ -1,5 +1,5 @@
/* Bidi classes of Unicode characters.
- Copyright (C) 2002, 2006, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/bidi_name.c b/lib/unictype/bidi_name.c
index f53c6587..fc439735 100644
--- a/lib/unictype/bidi_name.c
+++ b/lib/unictype/bidi_name.c
@@ -1,5 +1,5 @@
/* Bidi classes of Unicode characters.
- Copyright (C) 2002, 2006, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/bidi_of.c b/lib/unictype/bidi_of.c
index c808381e..a4e3f3b7 100644
--- a/lib/unictype/bidi_of.c
+++ b/lib/unictype/bidi_of.c
@@ -1,5 +1,5 @@
/* Bidi classes of Unicode characters.
- Copyright (C) 2002, 2006, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/bidi_test.c b/lib/unictype/bidi_test.c
index 1cbafd6b..1debda38 100644
--- a/lib/unictype/bidi_test.c
+++ b/lib/unictype/bidi_test.c
@@ -1,5 +1,5 @@
/* Bidi classes of Unicode characters.
- Copyright (C) 2002, 2006, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/bitmap.h b/lib/unictype/bitmap.h
index 869ac066..621861da 100644
--- a/lib/unictype/bitmap.h
+++ b/lib/unictype/bitmap.h
@@ -1,5 +1,5 @@
/* Three-level bitmap lookup.
- Copyright (C) 2000-2002, 2005-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2000-2002, 2005-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2000-2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/block_test.c b/lib/unictype/block_test.c
index 337cf7e6..702b5629 100644
--- a/lib/unictype/block_test.c
+++ b/lib/unictype/block_test.c
@@ -1,5 +1,5 @@
/* Blocks of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
diff --git a/lib/unictype/blocks.c b/lib/unictype/blocks.c
index 11bd2629..e9087d5f 100644
--- a/lib/unictype/blocks.c
+++ b/lib/unictype/blocks.c
@@ -1,5 +1,5 @@
/* Blocks of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
diff --git a/lib/unictype/categ_C.c b/lib/unictype/categ_C.c
index 7a0ea55b..cd6b3f52 100644
--- a/lib/unictype/categ_C.c
+++ b/lib/unictype/categ_C.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Cc.c b/lib/unictype/categ_Cc.c
index 5053e9c9..a0e79b7a 100644
--- a/lib/unictype/categ_Cc.c
+++ b/lib/unictype/categ_Cc.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Cf.c b/lib/unictype/categ_Cf.c
index 7bb26532..809bc3d6 100644
--- a/lib/unictype/categ_Cf.c
+++ b/lib/unictype/categ_Cf.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Cn.c b/lib/unictype/categ_Cn.c
index 952e696b..71bcb245 100644
--- a/lib/unictype/categ_Cn.c
+++ b/lib/unictype/categ_Cn.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Co.c b/lib/unictype/categ_Co.c
index 28626d99..58db4466 100644
--- a/lib/unictype/categ_Co.c
+++ b/lib/unictype/categ_Co.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Cs.c b/lib/unictype/categ_Cs.c
index 5da99da3..8986d7b7 100644
--- a/lib/unictype/categ_Cs.c
+++ b/lib/unictype/categ_Cs.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_L.c b/lib/unictype/categ_L.c
index bcfd100f..22056433 100644
--- a/lib/unictype/categ_L.c
+++ b/lib/unictype/categ_L.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_LC.c b/lib/unictype/categ_LC.c
index fb9f85f6..3cfef936 100644
--- a/lib/unictype/categ_LC.c
+++ b/lib/unictype/categ_LC.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/categ_Ll.c b/lib/unictype/categ_Ll.c
index 712c7c3b..80c456b1 100644
--- a/lib/unictype/categ_Ll.c
+++ b/lib/unictype/categ_Ll.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Lm.c b/lib/unictype/categ_Lm.c
index 8ed12659..ba104284 100644
--- a/lib/unictype/categ_Lm.c
+++ b/lib/unictype/categ_Lm.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Lo.c b/lib/unictype/categ_Lo.c
index 279c6ba7..e01c1dc2 100644
--- a/lib/unictype/categ_Lo.c
+++ b/lib/unictype/categ_Lo.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Lt.c b/lib/unictype/categ_Lt.c
index 143da5cb..572306ab 100644
--- a/lib/unictype/categ_Lt.c
+++ b/lib/unictype/categ_Lt.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Lu.c b/lib/unictype/categ_Lu.c
index cb744f37..aa349e6c 100644
--- a/lib/unictype/categ_Lu.c
+++ b/lib/unictype/categ_Lu.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_M.c b/lib/unictype/categ_M.c
index 475e2c99..4d2ef72f 100644
--- a/lib/unictype/categ_M.c
+++ b/lib/unictype/categ_M.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/categ_Mc.c b/lib/unictype/categ_Mc.c
index d5092726..564dac56 100644
--- a/lib/unictype/categ_Mc.c
+++ b/lib/unictype/categ_Mc.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Me.c b/lib/unictype/categ_Me.c
index 5cb5c405..245839cb 100644
--- a/lib/unictype/categ_Me.c
+++ b/lib/unictype/categ_Me.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Mn.c b/lib/unictype/categ_Mn.c
index 1ef67222..9068a7e6 100644
--- a/lib/unictype/categ_Mn.c
+++ b/lib/unictype/categ_Mn.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_N.c b/lib/unictype/categ_N.c
index a9a8b989..709121c4 100644
--- a/lib/unictype/categ_N.c
+++ b/lib/unictype/categ_N.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Nd.c b/lib/unictype/categ_Nd.c
index d48d5d3b..dca1c2a3 100644
--- a/lib/unictype/categ_Nd.c
+++ b/lib/unictype/categ_Nd.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Nl.c b/lib/unictype/categ_Nl.c
index a0ee7cef..7f9f80e3 100644
--- a/lib/unictype/categ_Nl.c
+++ b/lib/unictype/categ_Nl.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_No.c b/lib/unictype/categ_No.c
index 5d6f973d..d858650b 100644
--- a/lib/unictype/categ_No.c
+++ b/lib/unictype/categ_No.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_P.c b/lib/unictype/categ_P.c
index fcf212b6..bdf53f9d 100644
--- a/lib/unictype/categ_P.c
+++ b/lib/unictype/categ_P.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Pc.c b/lib/unictype/categ_Pc.c
index 0507bfd7..332434c0 100644
--- a/lib/unictype/categ_Pc.c
+++ b/lib/unictype/categ_Pc.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Pd.c b/lib/unictype/categ_Pd.c
index 8e76f9fd..08387dde 100644
--- a/lib/unictype/categ_Pd.c
+++ b/lib/unictype/categ_Pd.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Pe.c b/lib/unictype/categ_Pe.c
index ff0ed3a1..1f02efff 100644
--- a/lib/unictype/categ_Pe.c
+++ b/lib/unictype/categ_Pe.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Pf.c b/lib/unictype/categ_Pf.c
index 95646625..3b85ce52 100644
--- a/lib/unictype/categ_Pf.c
+++ b/lib/unictype/categ_Pf.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Pi.c b/lib/unictype/categ_Pi.c
index 6679d544..a340224a 100644
--- a/lib/unictype/categ_Pi.c
+++ b/lib/unictype/categ_Pi.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Po.c b/lib/unictype/categ_Po.c
index eff79afb..c79014a6 100644
--- a/lib/unictype/categ_Po.c
+++ b/lib/unictype/categ_Po.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Ps.c b/lib/unictype/categ_Ps.c
index d58afe87..0f626e7c 100644
--- a/lib/unictype/categ_Ps.c
+++ b/lib/unictype/categ_Ps.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_S.c b/lib/unictype/categ_S.c
index a9eb7a12..87dce451 100644
--- a/lib/unictype/categ_S.c
+++ b/lib/unictype/categ_S.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Sc.c b/lib/unictype/categ_Sc.c
index a3a11e17..9fca2c68 100644
--- a/lib/unictype/categ_Sc.c
+++ b/lib/unictype/categ_Sc.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Sk.c b/lib/unictype/categ_Sk.c
index 4340c43b..c4d240d4 100644
--- a/lib/unictype/categ_Sk.c
+++ b/lib/unictype/categ_Sk.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Sm.c b/lib/unictype/categ_Sm.c
index 59872c77..888e082c 100644
--- a/lib/unictype/categ_Sm.c
+++ b/lib/unictype/categ_Sm.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_So.c b/lib/unictype/categ_So.c
index eb590f0f..e796965c 100644
--- a/lib/unictype/categ_So.c
+++ b/lib/unictype/categ_So.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Z.c b/lib/unictype/categ_Z.c
index 7b8ac8ad..ab996e67 100644
--- a/lib/unictype/categ_Z.c
+++ b/lib/unictype/categ_Z.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Zl.c b/lib/unictype/categ_Zl.c
index 143b10f1..7e38efac 100644
--- a/lib/unictype/categ_Zl.c
+++ b/lib/unictype/categ_Zl.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Zp.c b/lib/unictype/categ_Zp.c
index 175e740c..9ad2da11 100644
--- a/lib/unictype/categ_Zp.c
+++ b/lib/unictype/categ_Zp.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_Zs.c b/lib/unictype/categ_Zs.c
index 674cad16..c40f5d0e 100644
--- a/lib/unictype/categ_Zs.c
+++ b/lib/unictype/categ_Zs.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_and.c b/lib/unictype/categ_and.c
index 35d3991e..5964f9a1 100644
--- a/lib/unictype/categ_and.c
+++ b/lib/unictype/categ_and.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
@@ -32,10 +32,7 @@ uc_general_category_t
uc_general_category_and (uc_general_category_t category1,
uc_general_category_t category2)
{
- uint32_t bitmask;
- uc_general_category_t result;
-
- bitmask = category1.bitmask & category2.bitmask;
+ uint32_t bitmask = category1.bitmask & category2.bitmask;
if (bitmask == category1.bitmask)
return category1;
@@ -46,6 +43,7 @@ uc_general_category_and (uc_general_category_t category1,
if (bitmask == 0)
return _UC_CATEGORY_NONE;
+ uc_general_category_t result;
result.bitmask = bitmask;
result.generic = 1;
result.lookup.lookup_fn = &uc_is_general_category_withtable;
diff --git a/lib/unictype/categ_and_not.c b/lib/unictype/categ_and_not.c
index d771de1b..25c37a5b 100644
--- a/lib/unictype/categ_and_not.c
+++ b/lib/unictype/categ_and_not.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
@@ -32,10 +32,7 @@ uc_general_category_t
uc_general_category_and_not (uc_general_category_t category1,
uc_general_category_t category2)
{
- uint32_t bitmask;
- uc_general_category_t result;
-
- bitmask = category1.bitmask & ~category2.bitmask;
+ uint32_t bitmask = category1.bitmask & ~category2.bitmask;
if (bitmask == category1.bitmask)
return category1;
@@ -43,6 +40,7 @@ uc_general_category_and_not (uc_general_category_t category1,
if (bitmask == 0)
return _UC_CATEGORY_NONE;
+ uc_general_category_t result;
result.bitmask = bitmask;
result.generic = 1;
result.lookup.lookup_fn = &uc_is_general_category_withtable;
diff --git a/lib/unictype/categ_byname.c b/lib/unictype/categ_byname.c
index cb612386..a4e0e4f1 100644
--- a/lib/unictype/categ_byname.c
+++ b/lib/unictype/categ_byname.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -81,13 +81,10 @@ enum
uc_general_category_t
uc_general_category_byname (const char *category_name)
{
- size_t len;
-
- len = strlen (category_name);
+ size_t len = strlen (category_name);
if (len <= MAX_WORD_LENGTH)
{
char buf[MAX_WORD_LENGTH + 1];
- const struct named_category *found;
/* Copy category_name into buf, converting '_' and '-' to ' '. */
{
@@ -108,7 +105,8 @@ uc_general_category_byname (const char *category_name)
/* Here q == buf + len. */
/* Do a hash table lookup, with case-insensitive comparison. */
- found = uc_general_category_lookup (buf, len);
+ const struct named_category *found =
+ uc_general_category_lookup (buf, len);
if (found != NULL)
/* Use a 'switch' statement here, because a table would introduce
load-time relocations. */
diff --git a/lib/unictype/categ_byname.gperf b/lib/unictype/categ_byname.gperf
index fd30e80e..5197c65a 100644
--- a/lib/unictype/categ_byname.gperf
+++ b/lib/unictype/categ_byname.gperf
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unictype/categ_byname.h b/lib/unictype/categ_byname.h
index 09c1b683..df2ed854 100644
--- a/lib/unictype/categ_byname.h
+++ b/lib/unictype/categ_byname.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 unictype/categ_byname.gperf */
/* Computed positions: -k'1-2,7,$' */
@@ -125,9 +125,9 @@ general_category_hash (register const char *str, register size_t len)
{
default:
hval += asso_values[(unsigned char)str[6]];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -137,9 +137,9 @@ general_category_hash (register const char *str, register size_t len)
case 3:
case 2:
hval += asso_values[(unsigned char)str[1]];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -364,6 +364,10 @@ static const struct general_category_stringpool_t general_category_stringpool_co
};
#define general_category_stringpool ((const char *) &general_category_stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct named_category general_category_names[] =
{
{-1},
@@ -602,6 +606,9 @@ static const struct named_category general_category_names[] =
#line 93 "unictype/categ_byname.gperf"
{(int)(size_t)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str150, UC_CATEGORY_INDEX_Me}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
static const struct named_category *
uc_general_category_lookup (register const char *str, register size_t len)
@@ -622,5 +629,5 @@ uc_general_category_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct named_category *) 0;
}
diff --git a/lib/unictype/categ_longname.c b/lib/unictype/categ_longname.c
index e2936328..7ef3d520 100644
--- a/lib/unictype/categ_longname.c
+++ b/lib/unictype/categ_longname.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/categ_name.c b/lib/unictype/categ_name.c
index e0679a81..1e522c64 100644
--- a/lib/unictype/categ_name.c
+++ b/lib/unictype/categ_name.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/categ_none.c b/lib/unictype/categ_none.c
index 8b66d380..499cd57e 100644
--- a/lib/unictype/categ_none.c
+++ b/lib/unictype/categ_none.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/categ_of.c b/lib/unictype/categ_of.c
index 0fe94567..12088601 100644
--- a/lib/unictype/categ_of.c
+++ b/lib/unictype/categ_of.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
@@ -68,10 +68,10 @@ uc_general_category_t
uc_general_category (ucs4_t uc)
{
int bit = lookup_withtable (uc);
- uc_general_category_t result;
if (bit >= 0)
{
+ uc_general_category_t result;
result.bitmask = 1 << bit;
result.generic = 1;
result.lookup.lookup_fn = &uc_is_general_category_withtable;
diff --git a/lib/unictype/categ_or.c b/lib/unictype/categ_or.c
index 89c3f922..1d544483 100644
--- a/lib/unictype/categ_or.c
+++ b/lib/unictype/categ_or.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
@@ -32,10 +32,7 @@ uc_general_category_t
uc_general_category_or (uc_general_category_t category1,
uc_general_category_t category2)
{
- uint32_t bitmask;
- uc_general_category_t result;
-
- bitmask = category1.bitmask | category2.bitmask;
+ uint32_t bitmask = category1.bitmask | category2.bitmask;
if (bitmask == category1.bitmask)
return category1;
@@ -43,6 +40,7 @@ uc_general_category_or (uc_general_category_t category1,
if (bitmask == category2.bitmask)
return category2;
+ uc_general_category_t result;
result.bitmask = bitmask;
result.generic = 1;
result.lookup.lookup_fn = &uc_is_general_category_withtable;
diff --git a/lib/unictype/categ_test.c b/lib/unictype/categ_test.c
index 8e48123f..72a3b771 100644
--- a/lib/unictype/categ_test.c
+++ b/lib/unictype/categ_test.c
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/combiningclass.c b/lib/unictype/combiningclass.c
index 9db1d13c..8d7588bf 100644
--- a/lib/unictype/combiningclass.c
+++ b/lib/unictype/combiningclass.c
@@ -1,5 +1,5 @@
/* Combining classes of Unicode characters.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/combiningclass_byname.c b/lib/unictype/combiningclass_byname.c
index ee162607..4065fea1 100644
--- a/lib/unictype/combiningclass_byname.c
+++ b/lib/unictype/combiningclass_byname.c
@@ -1,5 +1,5 @@
/* Canonical combining classes of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
@@ -35,13 +35,10 @@
int
uc_combining_class_byname (const char *ccc_name)
{
- size_t len;
-
- len = strlen (ccc_name);
+ size_t len = strlen (ccc_name);
if (len <= MAX_WORD_LENGTH)
{
char buf[MAX_WORD_LENGTH + 1];
- const struct named_combining_class *found;
/* Copy ccc_name into buf, converting '_' and '-' to ' '. */
{
@@ -62,7 +59,8 @@ uc_combining_class_byname (const char *ccc_name)
/* Here q == buf + len. */
/* Do a hash table lookup, with case-insensitive comparison. */
- found = uc_combining_class_lookup (buf, len);
+ const struct named_combining_class *found =
+ uc_combining_class_lookup (buf, len);
if (found != NULL)
return found->combining_class;
}
diff --git a/lib/unictype/combiningclass_byname.gperf b/lib/unictype/combiningclass_byname.gperf
index b8526996..0a2c03e5 100644
--- a/lib/unictype/combiningclass_byname.gperf
+++ b/lib/unictype/combiningclass_byname.gperf
@@ -1,5 +1,5 @@
/* Categories of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unictype/combiningclass_byname.h b/lib/unictype/combiningclass_byname.h
index 2323383b..d41adba5 100644
--- a/lib/unictype/combiningclass_byname.h
+++ b/lib/unictype/combiningclass_byname.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 unictype/combiningclass_byname.gperf */
/* Computed positions: -k'1,6,$' */
@@ -125,9 +125,9 @@ combining_class_hash (register const char *str, register size_t len)
{
default:
hval += asso_values[(unsigned char)str[5]];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -256,6 +256,10 @@ static const struct combining_class_stringpool_t combining_class_stringpool_cont
};
#define combining_class_stringpool ((const char *) &combining_class_stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct named_combining_class combining_class_names[] =
{
{-1}, {-1}, {-1},
@@ -374,6 +378,9 @@ static const struct named_combining_class combining_class_names[] =
#line 84 "unictype/combiningclass_byname.gperf"
{(int)(size_t)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str66, UC_CCC_DB}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
static const struct named_combining_class *
uc_combining_class_lookup (register const char *str, register size_t len)
@@ -394,5 +401,5 @@ uc_combining_class_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct named_combining_class *) 0;
}
diff --git a/lib/unictype/combiningclass_longname.c b/lib/unictype/combiningclass_longname.c
index ae343b6f..4f01ce5d 100644
--- a/lib/unictype/combiningclass_longname.c
+++ b/lib/unictype/combiningclass_longname.c
@@ -1,5 +1,5 @@
/* Canonical combining classes of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
@@ -118,7 +118,6 @@ uc_combining_class_long_name (int ccc)
if (ccc >= 0)
{
int index;
-
if (ccc < 10)
index = u_combining_class_index_part1[ccc];
else if (ccc >= 200 && ccc < 241)
diff --git a/lib/unictype/combiningclass_name.c b/lib/unictype/combiningclass_name.c
index fdc0cc00..5291be8d 100644
--- a/lib/unictype/combiningclass_name.c
+++ b/lib/unictype/combiningclass_name.c
@@ -1,5 +1,5 @@
/* Canonical combining classes of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
@@ -118,7 +118,6 @@ uc_combining_class_name (int ccc)
if (ccc >= 0)
{
int index;
-
if (ccc < 10)
index = u_combining_class_index_part1[ccc];
else if (ccc >= 200 && ccc < 241)
diff --git a/lib/unictype/ctype_alnum.c b/lib/unictype/ctype_alnum.c
index f58f4310..7cd9157a 100644
--- a/lib/unictype/ctype_alnum.c
+++ b/lib/unictype/ctype_alnum.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_alpha.c b/lib/unictype/ctype_alpha.c
index c422fec6..9beeb03f 100644
--- a/lib/unictype/ctype_alpha.c
+++ b/lib/unictype/ctype_alpha.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_blank.c b/lib/unictype/ctype_blank.c
index 25a08013..e14cc44e 100644
--- a/lib/unictype/ctype_blank.c
+++ b/lib/unictype/ctype_blank.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_cntrl.c b/lib/unictype/ctype_cntrl.c
index eb7467dd..1c5cefa1 100644
--- a/lib/unictype/ctype_cntrl.c
+++ b/lib/unictype/ctype_cntrl.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_digit.c b/lib/unictype/ctype_digit.c
index a82b3bb0..71d68807 100644
--- a/lib/unictype/ctype_digit.c
+++ b/lib/unictype/ctype_digit.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_graph.c b/lib/unictype/ctype_graph.c
index 2c41c794..92701700 100644
--- a/lib/unictype/ctype_graph.c
+++ b/lib/unictype/ctype_graph.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_lower.c b/lib/unictype/ctype_lower.c
index 99a05e09..b113106f 100644
--- a/lib/unictype/ctype_lower.c
+++ b/lib/unictype/ctype_lower.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_print.c b/lib/unictype/ctype_print.c
index 0197d496..f689b0ad 100644
--- a/lib/unictype/ctype_print.c
+++ b/lib/unictype/ctype_print.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_punct.c b/lib/unictype/ctype_punct.c
index f2d647de..3c30ba70 100644
--- a/lib/unictype/ctype_punct.c
+++ b/lib/unictype/ctype_punct.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_space.c b/lib/unictype/ctype_space.c
index 4c032398..ee9ce3fd 100644
--- a/lib/unictype/ctype_space.c
+++ b/lib/unictype/ctype_space.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_upper.c b/lib/unictype/ctype_upper.c
index af2c3fe6..31210804 100644
--- a/lib/unictype/ctype_upper.c
+++ b/lib/unictype/ctype_upper.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/ctype_xdigit.c b/lib/unictype/ctype_xdigit.c
index ee4b2ea4..bea31a1b 100644
--- a/lib/unictype/ctype_xdigit.c
+++ b/lib/unictype/ctype_xdigit.c
@@ -1,5 +1,5 @@
/* ISO C <ctype.h> like properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/decdigit.c b/lib/unictype/decdigit.c
index d8fa77b7..45d7a993 100644
--- a/lib/unictype/decdigit.c
+++ b/lib/unictype/decdigit.c
@@ -1,5 +1,5 @@
/* Values of decimal digit Unicode characters.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/digit.c b/lib/unictype/digit.c
index 346a4a2c..76f6a5f2 100644
--- a/lib/unictype/digit.c
+++ b/lib/unictype/digit.c
@@ -1,5 +1,5 @@
/* Values of digit Unicode characters.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/identsyntaxmap.h b/lib/unictype/identsyntaxmap.h
index c5a0d2a1..9bfb5621 100644
--- a/lib/unictype/identsyntaxmap.h
+++ b/lib/unictype/identsyntaxmap.h
@@ -1,5 +1,5 @@
/* Three-level bitmap lookup.
- Copyright (C) 2000-2002, 2005-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2000-2002, 2005-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2000-2002.
This file is free software.
diff --git a/lib/unictype/incb_byname.c b/lib/unictype/incb_byname.c
index 09ffd218..a9edbfec 100644
--- a/lib/unictype/incb_byname.c
+++ b/lib/unictype/incb_byname.c
@@ -1,5 +1,5 @@
/* Indic_Conjunct_Break values.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2024.
This file is free software.
@@ -35,13 +35,10 @@
int
uc_indic_conjunct_break_byname (const char *indic_conjunct_break_name)
{
- size_t len;
-
- len = strlen (indic_conjunct_break_name);
+ size_t len = strlen (indic_conjunct_break_name);
if (len <= MAX_WORD_LENGTH)
{
char buf[MAX_WORD_LENGTH + 1];
- const struct named_indic_conjunct_break *found;
/* Copy indic_conjunct_break_name into buf, converting '_' and '-'
to ' '. */
@@ -63,7 +60,8 @@ uc_indic_conjunct_break_byname (const char *indic_conjunct_break_name)
/* Here q == buf + len. */
/* Do a hash table lookup, with case-insensitive comparison. */
- found = uc_indic_conjunct_break_lookup (buf, len);
+ const struct named_indic_conjunct_break *found =
+ uc_indic_conjunct_break_lookup (buf, len);
if (found != NULL)
return found->indic_conjunct_break;
}
diff --git a/lib/unictype/incb_byname.gperf b/lib/unictype/incb_byname.gperf
index 0bded354..5e7c912e 100644
--- a/lib/unictype/incb_byname.gperf
+++ b/lib/unictype/incb_byname.gperf
@@ -1,5 +1,5 @@
/* Indic_Conjunct_Break values.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unictype/incb_byname.h b/lib/unictype/incb_byname.h
index 20df45e3..5146c546 100644
--- a/lib/unictype/incb_byname.h
+++ b/lib/unictype/incb_byname.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 unictype/incb_byname.gperf */
/* Computed positions: -k'1' */
@@ -138,6 +138,10 @@ static const struct indic_conjunct_break_stringpool_t indic_conjunct_break_strin
};
#define indic_conjunct_break_stringpool ((const char *) &indic_conjunct_break_stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct named_indic_conjunct_break indic_conjunct_break_names[] =
{
{-1}, {-1}, {-1}, {-1},
@@ -152,6 +156,9 @@ static const struct named_indic_conjunct_break indic_conjunct_break_names[] =
#line 38 "unictype/incb_byname.gperf"
{(int)(size_t)&((struct indic_conjunct_break_stringpool_t *)0)->indic_conjunct_break_stringpool_str9, UC_INDIC_CONJUNCT_BREAK_CONSONANT}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
static const struct named_indic_conjunct_break *
uc_indic_conjunct_break_lookup (register const char *str, register size_t len)
@@ -172,5 +179,5 @@ uc_indic_conjunct_break_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct named_indic_conjunct_break *) 0;
}
diff --git a/lib/unictype/incb_name.c b/lib/unictype/incb_name.c
index 46a190fc..8651a42f 100644
--- a/lib/unictype/incb_name.c
+++ b/lib/unictype/incb_name.c
@@ -1,5 +1,5 @@
/* Indic_Conjunct_Break values.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2024.
This file is free software.
diff --git a/lib/unictype/incb_name.h b/lib/unictype/incb_name.h
index baa10c8f..47c1636c 100644
--- a/lib/unictype/incb_name.h
+++ b/lib/unictype/incb_name.h
@@ -1,5 +1,5 @@
/* Indic_Conjunct_Break values.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2024.
This file is free software.
diff --git a/lib/unictype/incb_of.c b/lib/unictype/incb_of.c
index 665dccd1..01d7fd82 100644
--- a/lib/unictype/incb_of.c
+++ b/lib/unictype/incb_of.c
@@ -1,5 +1,5 @@
/* Indic_Conjunct_Break attribute of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2024.
This file is free software.
diff --git a/lib/unictype/joininggroup_byname.c b/lib/unictype/joininggroup_byname.c
index 00aaaaee..54713236 100644
--- a/lib/unictype/joininggroup_byname.c
+++ b/lib/unictype/joininggroup_byname.c
@@ -1,5 +1,5 @@
/* Arabic joining group of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
@@ -35,13 +35,10 @@
int
uc_joining_group_byname (const char *joining_group_name)
{
- size_t len;
-
- len = strlen (joining_group_name);
+ size_t len = strlen (joining_group_name);
if (len <= MAX_WORD_LENGTH)
{
char buf[MAX_WORD_LENGTH + 1];
- const struct named_joining_group *found;
/* Copy joining_group_name into buf, converting '_' and '-' to ' '. */
{
@@ -62,7 +59,8 @@ uc_joining_group_byname (const char *joining_group_name)
/* Here q == buf + len. */
/* Do a hash table lookup, with case-insensitive comparison. */
- found = uc_joining_group_lookup (buf, len);
+ const struct named_joining_group *found =
+ uc_joining_group_lookup (buf, len);
if (found != NULL)
return found->joining_group;
}
diff --git a/lib/unictype/joininggroup_byname.gperf b/lib/unictype/joininggroup_byname.gperf
index d0e9f7af..825a792c 100644
--- a/lib/unictype/joininggroup_byname.gperf
+++ b/lib/unictype/joininggroup_byname.gperf
@@ -1,5 +1,5 @@
/* Arabic joining group of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unictype/joininggroup_name.c b/lib/unictype/joininggroup_name.c
index d01e659d..f90d41f3 100644
--- a/lib/unictype/joininggroup_name.c
+++ b/lib/unictype/joininggroup_name.c
@@ -1,5 +1,5 @@
/* Arabic joining group of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/joininggroup_name.h b/lib/unictype/joininggroup_name.h
index 4465652e..17261f52 100644
--- a/lib/unictype/joininggroup_name.h
+++ b/lib/unictype/joininggroup_name.h
@@ -1,5 +1,5 @@
/* Arabic joining group of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/joininggroup_of.c b/lib/unictype/joininggroup_of.c
index ef51aec0..7343f2d7 100644
--- a/lib/unictype/joininggroup_of.c
+++ b/lib/unictype/joininggroup_of.c
@@ -1,5 +1,5 @@
/* Arabic joining group of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/joiningtype_byname.c b/lib/unictype/joiningtype_byname.c
index 055869cc..e1589784 100644
--- a/lib/unictype/joiningtype_byname.c
+++ b/lib/unictype/joiningtype_byname.c
@@ -1,5 +1,5 @@
/* Arabic joining type of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
@@ -35,13 +35,10 @@
int
uc_joining_type_byname (const char *joining_type_name)
{
- size_t len;
-
- len = strlen (joining_type_name);
+ size_t len = strlen (joining_type_name);
if (len <= MAX_WORD_LENGTH)
{
char buf[MAX_WORD_LENGTH + 1];
- const struct named_joining_type *found;
/* Copy joining_type_name into buf, converting '_' and '-' to ' '. */
{
@@ -62,7 +59,8 @@ uc_joining_type_byname (const char *joining_type_name)
/* Here q == buf + len. */
/* Do a hash table lookup, with case-insensitive comparison. */
- found = uc_joining_type_lookup (buf, len);
+ const struct named_joining_type *found =
+ uc_joining_type_lookup (buf, len);
if (found != NULL)
return found->joining_type;
}
diff --git a/lib/unictype/joiningtype_byname.gperf b/lib/unictype/joiningtype_byname.gperf
index 9bb121dc..e897765a 100644
--- a/lib/unictype/joiningtype_byname.gperf
+++ b/lib/unictype/joiningtype_byname.gperf
@@ -1,5 +1,5 @@
/* Arabic joining type of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unictype/joiningtype_byname.h b/lib/unictype/joiningtype_byname.h
index 8b3cd205..2a1dd898 100644
--- a/lib/unictype/joiningtype_byname.h
+++ b/lib/unictype/joiningtype_byname.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 unictype/joiningtype_byname.gperf */
/* Computed positions: -k'1' */
@@ -164,6 +164,10 @@ static const struct joining_type_stringpool_t joining_type_stringpool_contents =
};
#define joining_type_stringpool ((const char *) &joining_type_stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct named_joining_type joining_type_names[] =
{
{-1},
@@ -204,6 +208,9 @@ static const struct named_joining_type joining_type_names[] =
#line 43 "unictype/joiningtype_byname.gperf"
{(int)(size_t)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str21, UC_JOINING_TYPE_C}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
static const struct named_joining_type *
uc_joining_type_lookup (register const char *str, register size_t len)
@@ -224,5 +231,5 @@ uc_joining_type_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct named_joining_type *) 0;
}
diff --git a/lib/unictype/joiningtype_longname.c b/lib/unictype/joiningtype_longname.c
index 80c23627..c011bd97 100644
--- a/lib/unictype/joiningtype_longname.c
+++ b/lib/unictype/joiningtype_longname.c
@@ -1,5 +1,5 @@
/* Arabic joining type of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/joiningtype_name.c b/lib/unictype/joiningtype_name.c
index 304e2f08..f2788b92 100644
--- a/lib/unictype/joiningtype_name.c
+++ b/lib/unictype/joiningtype_name.c
@@ -1,5 +1,5 @@
/* Arabic joining type of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/joiningtype_of.c b/lib/unictype/joiningtype_of.c
index 251ae5ec..9e7a5162 100644
--- a/lib/unictype/joiningtype_of.c
+++ b/lib/unictype/joiningtype_of.c
@@ -1,5 +1,5 @@
/* Arabic joining type of Unicode characters.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unictype/mirror.c b/lib/unictype/mirror.c
index d361fc79..2fd81d0e 100644
--- a/lib/unictype/mirror.c
+++ b/lib/unictype/mirror.c
@@ -1,5 +1,5 @@
/* Mirrored Unicode characters.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/numeric.c b/lib/unictype/numeric.c
index 0f342efc..24e1a0e6 100644
--- a/lib/unictype/numeric.c
+++ b/lib/unictype/numeric.c
@@ -1,5 +1,5 @@
/* Values of numeric Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_alphabetic.c b/lib/unictype/pr_alphabetic.c
index 0146d8a8..06276c8e 100644
--- a/lib/unictype/pr_alphabetic.c
+++ b/lib/unictype/pr_alphabetic.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_ascii_hex_digit.c b/lib/unictype/pr_ascii_hex_digit.c
index d0c8b855..4733b8c3 100644
--- a/lib/unictype/pr_ascii_hex_digit.c
+++ b/lib/unictype/pr_ascii_hex_digit.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_arabic_digit.c b/lib/unictype/pr_bidi_arabic_digit.c
index b3bd9b08..c15816db 100644
--- a/lib/unictype/pr_bidi_arabic_digit.c
+++ b/lib/unictype/pr_bidi_arabic_digit.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_arabic_right_to_left.c b/lib/unictype/pr_bidi_arabic_right_to_left.c
index 43ba744a..71519154 100644
--- a/lib/unictype/pr_bidi_arabic_right_to_left.c
+++ b/lib/unictype/pr_bidi_arabic_right_to_left.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_block_separator.c b/lib/unictype/pr_bidi_block_separator.c
index 54733d90..f4de91e6 100644
--- a/lib/unictype/pr_bidi_block_separator.c
+++ b/lib/unictype/pr_bidi_block_separator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_boundary_neutral.c b/lib/unictype/pr_bidi_boundary_neutral.c
index d642ff7a..da86be1c 100644
--- a/lib/unictype/pr_bidi_boundary_neutral.c
+++ b/lib/unictype/pr_bidi_boundary_neutral.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_common_separator.c b/lib/unictype/pr_bidi_common_separator.c
index 93c99bed..caffcc7b 100644
--- a/lib/unictype/pr_bidi_common_separator.c
+++ b/lib/unictype/pr_bidi_common_separator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_control.c b/lib/unictype/pr_bidi_control.c
index 3311c32e..10c70e3d 100644
--- a/lib/unictype/pr_bidi_control.c
+++ b/lib/unictype/pr_bidi_control.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_embedding_or_override.c b/lib/unictype/pr_bidi_embedding_or_override.c
index af5e7571..4447bad4 100644
--- a/lib/unictype/pr_bidi_embedding_or_override.c
+++ b/lib/unictype/pr_bidi_embedding_or_override.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_eur_num_separator.c b/lib/unictype/pr_bidi_eur_num_separator.c
index 9f96ea77..bf255ad6 100644
--- a/lib/unictype/pr_bidi_eur_num_separator.c
+++ b/lib/unictype/pr_bidi_eur_num_separator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_eur_num_terminator.c b/lib/unictype/pr_bidi_eur_num_terminator.c
index c29b9a38..506f4e35 100644
--- a/lib/unictype/pr_bidi_eur_num_terminator.c
+++ b/lib/unictype/pr_bidi_eur_num_terminator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_european_digit.c b/lib/unictype/pr_bidi_european_digit.c
index 581d9af9..fc206b2f 100644
--- a/lib/unictype/pr_bidi_european_digit.c
+++ b/lib/unictype/pr_bidi_european_digit.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_hebrew_right_to_left.c b/lib/unictype/pr_bidi_hebrew_right_to_left.c
index 7e1dcbcb..fd0d5ed4 100644
--- a/lib/unictype/pr_bidi_hebrew_right_to_left.c
+++ b/lib/unictype/pr_bidi_hebrew_right_to_left.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_left_to_right.c b/lib/unictype/pr_bidi_left_to_right.c
index d802385a..588015df 100644
--- a/lib/unictype/pr_bidi_left_to_right.c
+++ b/lib/unictype/pr_bidi_left_to_right.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_non_spacing_mark.c b/lib/unictype/pr_bidi_non_spacing_mark.c
index c26f7ba7..aa8a18c9 100644
--- a/lib/unictype/pr_bidi_non_spacing_mark.c
+++ b/lib/unictype/pr_bidi_non_spacing_mark.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_other_neutral.c b/lib/unictype/pr_bidi_other_neutral.c
index 1a7f30cd..4c251a7d 100644
--- a/lib/unictype/pr_bidi_other_neutral.c
+++ b/lib/unictype/pr_bidi_other_neutral.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_pdf.c b/lib/unictype/pr_bidi_pdf.c
index 7e329f50..77073608 100644
--- a/lib/unictype/pr_bidi_pdf.c
+++ b/lib/unictype/pr_bidi_pdf.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_segment_separator.c b/lib/unictype/pr_bidi_segment_separator.c
index 18c65a2b..28f05241 100644
--- a/lib/unictype/pr_bidi_segment_separator.c
+++ b/lib/unictype/pr_bidi_segment_separator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_bidi_whitespace.c b/lib/unictype/pr_bidi_whitespace.c
index fdee4c04..f6d6b0d3 100644
--- a/lib/unictype/pr_bidi_whitespace.c
+++ b/lib/unictype/pr_bidi_whitespace.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_byname.c b/lib/unictype/pr_byname.c
index 459ab382..bd94ff91 100644
--- a/lib/unictype/pr_byname.c
+++ b/lib/unictype/pr_byname.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2007, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
@@ -146,27 +146,29 @@ uc_property_t
uc_property_byname (const char *property_name)
{
char buf[MAX_WORD_LENGTH + 1];
- const char *cp;
char *bp;
- unsigned int count;
- const struct named_property *found;
- for (cp = property_name, bp = buf, count = MAX_WORD_LENGTH + 1; ; cp++, bp++)
- {
- unsigned char c = (unsigned char) *cp;
- if (c >= 0x80)
- goto invalid;
- if (c >= 'A' && c <= 'Z')
- c += 'a' - 'A';
- else if (c == ' ' || c == '-')
- c = '_';
- *bp = c;
- if (c == '\0')
- break;
- if (--count == 0)
- goto invalid;
- }
- found = uc_property_lookup (buf, bp - buf);
+ {
+ const char *cp;
+ unsigned int count;
+ for (cp = property_name, bp = buf, count = MAX_WORD_LENGTH + 1; ; cp++, bp++)
+ {
+ unsigned char c = (unsigned char) *cp;
+ if (c >= 0x80)
+ goto invalid;
+ if (c >= 'A' && c <= 'Z')
+ c += 'a' - 'A';
+ else if (c == ' ' || c == '-')
+ c = '_';
+ *bp = c;
+ if (c == '\0')
+ break;
+ if (--count == 0)
+ goto invalid;
+ }
+ }
+
+ const struct named_property *found = uc_property_lookup (buf, bp - buf);
if (found != NULL)
/* Use a 'switch' statement here, because a table would introduce load-time
relocations. */
diff --git a/lib/unictype/pr_byname.gperf b/lib/unictype/pr_byname.gperf
index e3ae3764..83414a62 100644
--- a/lib/unictype/pr_byname.gperf
+++ b/lib/unictype/pr_byname.gperf
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unictype/pr_byname.h b/lib/unictype/pr_byname.h
index 92e6717d..ef1b5824 100644
--- a/lib/unictype/pr_byname.h
+++ b/lib/unictype/pr_byname.h
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.2 */
+/* ANSI-C code produced by gperf version 3.3 */
/* Command-line: gperf -m 10 unictype/pr_byname.gperf */
/* Computed positions: -k'1-2,8,14,18,$' */
@@ -71,9 +71,9 @@ properties_hash (register const char *str, register size_t len)
{
default:
hval += asso_values[(unsigned char)str[17]];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -82,9 +82,9 @@ properties_hash (register const char *str, register size_t len)
case 15:
case 14:
hval += asso_values[(unsigned char)str[13]];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -95,9 +95,9 @@ properties_hash (register const char *str, register size_t len)
case 9:
case 8:
hval += asso_values[(unsigned char)str[7]];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -108,9 +108,9 @@ properties_hash (register const char *str, register size_t len)
case 3:
case 2:
hval += asso_values[(unsigned char)str[1]];
-#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3))
+#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
[[fallthrough]];
-#elif defined __GNUC__ && __GNUC__ >= 7
+#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
__attribute__ ((__fallthrough__));
#endif
/*FALLTHROUGH*/
@@ -567,6 +567,10 @@ static const struct properties_stringpool_t properties_stringpool_contents =
};
#define properties_stringpool ((const char *) &properties_stringpool_contents)
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
static const struct named_property properties[] =
{
{-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
@@ -1108,6 +1112,9 @@ static const struct named_property properties[] =
#line 92 "unictype/pr_byname.gperf"
{(int)(size_t)&((struct properties_stringpool_t *)0)->properties_stringpool_str565, UC_PROPERTY_INDEX_CHANGES_WHEN_CASEMAPPED}
};
+#if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
+#pragma GCC diagnostic pop
+#endif
static const struct named_property *
uc_property_lookup (register const char *str, register size_t len)
@@ -1128,5 +1135,5 @@ uc_property_lookup (register const char *str, register size_t len)
}
}
}
- return 0;
+ return (struct named_property *) 0;
}
diff --git a/lib/unictype/pr_case_ignorable.c b/lib/unictype/pr_case_ignorable.c
index 91fe494e..32beada9 100644
--- a/lib/unictype/pr_case_ignorable.c
+++ b/lib/unictype/pr_case_ignorable.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/pr_cased.c b/lib/unictype/pr_cased.c
index 18c36b7f..440ffca6 100644
--- a/lib/unictype/pr_cased.c
+++ b/lib/unictype/pr_cased.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/pr_changes_when_casefolded.c b/lib/unictype/pr_changes_when_casefolded.c
index a9124405..aa7d8f68 100644
--- a/lib/unictype/pr_changes_when_casefolded.c
+++ b/lib/unictype/pr_changes_when_casefolded.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/pr_changes_when_casemapped.c b/lib/unictype/pr_changes_when_casemapped.c
index 5cb07370..2ffc5c10 100644
--- a/lib/unictype/pr_changes_when_casemapped.c
+++ b/lib/unictype/pr_changes_when_casemapped.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/pr_changes_when_lowercased.c b/lib/unictype/pr_changes_when_lowercased.c
index 9f3ca34a..978ec0b4 100644
--- a/lib/unictype/pr_changes_when_lowercased.c
+++ b/lib/unictype/pr_changes_when_lowercased.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/pr_changes_when_titlecased.c b/lib/unictype/pr_changes_when_titlecased.c
index f863bf6f..dbec7a9b 100644
--- a/lib/unictype/pr_changes_when_titlecased.c
+++ b/lib/unictype/pr_changes_when_titlecased.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/pr_changes_when_uppercased.c b/lib/unictype/pr_changes_when_uppercased.c
index 2fb546ef..14e9a249 100644
--- a/lib/unictype/pr_changes_when_uppercased.c
+++ b/lib/unictype/pr_changes_when_uppercased.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software.
diff --git a/lib/unictype/pr_combining.c b/lib/unictype/pr_combining.c
index d1286b1a..a7843792 100644
--- a/lib/unictype/pr_combining.c
+++ b/lib/unictype/pr_combining.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_composite.c b/lib/unictype/pr_composite.c
index 21c7abc9..e86f7958 100644
--- a/lib/unictype/pr_composite.c
+++ b/lib/unictype/pr_composite.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_currency_symbol.c b/lib/unictype/pr_currency_symbol.c
index 86edb848..7285a2a3 100644
--- a/lib/unictype/pr_currency_symbol.c
+++ b/lib/unictype/pr_currency_symbol.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_dash.c b/lib/unictype/pr_dash.c
index 892686cb..c5b52871 100644
--- a/lib/unictype/pr_dash.c
+++ b/lib/unictype/pr_dash.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_decimal_digit.c b/lib/unictype/pr_decimal_digit.c
index 23106468..8acf3d20 100644
--- a/lib/unictype/pr_decimal_digit.c
+++ b/lib/unictype/pr_decimal_digit.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_default_ignorable_code_point.c b/lib/unictype/pr_default_ignorable_code_point.c
index dd3b01c7..f98890c5 100644
--- a/lib/unictype/pr_default_ignorable_code_point.c
+++ b/lib/unictype/pr_default_ignorable_code_point.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_deprecated.c b/lib/unictype/pr_deprecated.c
index 14576761..54033fb3 100644
--- a/lib/unictype/pr_deprecated.c
+++ b/lib/unictype/pr_deprecated.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_diacritic.c b/lib/unictype/pr_diacritic.c
index d31980bf..883754fc 100644
--- a/lib/unictype/pr_diacritic.c
+++ b/lib/unictype/pr_diacritic.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_emoji.c b/lib/unictype/pr_emoji.c
index b6c27000..97008d72 100644
--- a/lib/unictype/pr_emoji.c
+++ b/lib/unictype/pr_emoji.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_emoji_component.c b/lib/unictype/pr_emoji_component.c
index ea9648fe..bf50c406 100644
--- a/lib/unictype/pr_emoji_component.c
+++ b/lib/unictype/pr_emoji_component.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_emoji_modifier.c b/lib/unictype/pr_emoji_modifier.c
index 84601e1a..ce4c7c2c 100644
--- a/lib/unictype/pr_emoji_modifier.c
+++ b/lib/unictype/pr_emoji_modifier.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_emoji_modifier_base.c b/lib/unictype/pr_emoji_modifier_base.c
index 20e886c2..9aae4d9f 100644
--- a/lib/unictype/pr_emoji_modifier_base.c
+++ b/lib/unictype/pr_emoji_modifier_base.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_emoji_presentation.c b/lib/unictype/pr_emoji_presentation.c
index 33a26c63..0e295d83 100644
--- a/lib/unictype/pr_emoji_presentation.c
+++ b/lib/unictype/pr_emoji_presentation.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_extended_pictographic.c b/lib/unictype/pr_extended_pictographic.c
index 400413e7..e75789cd 100644
--- a/lib/unictype/pr_extended_pictographic.c
+++ b/lib/unictype/pr_extended_pictographic.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_extender.c b/lib/unictype/pr_extender.c
index a0d73654..8b88a5db 100644
--- a/lib/unictype/pr_extender.c
+++ b/lib/unictype/pr_extender.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_format_control.c b/lib/unictype/pr_format_control.c
index 8461ce77..aec5fc0c 100644
--- a/lib/unictype/pr_format_control.c
+++ b/lib/unictype/pr_format_control.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_grapheme_base.c b/lib/unictype/pr_grapheme_base.c
index 973c2d38..020271ef 100644
--- a/lib/unictype/pr_grapheme_base.c
+++ b/lib/unictype/pr_grapheme_base.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_grapheme_extend.c b/lib/unictype/pr_grapheme_extend.c
index 202adab4..cf5d6139 100644
--- a/lib/unictype/pr_grapheme_extend.c
+++ b/lib/unictype/pr_grapheme_extend.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_grapheme_link.c b/lib/unictype/pr_grapheme_link.c
index 6439e6e5..1e273eb9 100644
--- a/lib/unictype/pr_grapheme_link.c
+++ b/lib/unictype/pr_grapheme_link.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_hex_digit.c b/lib/unictype/pr_hex_digit.c
index 4e6b856a..5cd26cfb 100644
--- a/lib/unictype/pr_hex_digit.c
+++ b/lib/unictype/pr_hex_digit.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_hyphen.c b/lib/unictype/pr_hyphen.c
index af86e4a8..e630a3a1 100644
--- a/lib/unictype/pr_hyphen.c
+++ b/lib/unictype/pr_hyphen.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_id_compat_math_continue.c b/lib/unictype/pr_id_compat_math_continue.c
index 9fdfd56d..f50f399d 100644
--- a/lib/unictype/pr_id_compat_math_continue.c
+++ b/lib/unictype/pr_id_compat_math_continue.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_id_compat_math_start.c b/lib/unictype/pr_id_compat_math_start.c
index 05ab514a..71e3725c 100644
--- a/lib/unictype/pr_id_compat_math_start.c
+++ b/lib/unictype/pr_id_compat_math_start.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_id_continue.c b/lib/unictype/pr_id_continue.c
index b59953ed..056fa58d 100644
--- a/lib/unictype/pr_id_continue.c
+++ b/lib/unictype/pr_id_continue.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_id_start.c b/lib/unictype/pr_id_start.c
index 30669490..2bd0a85d 100644
--- a/lib/unictype/pr_id_start.c
+++ b/lib/unictype/pr_id_start.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_ideographic.c b/lib/unictype/pr_ideographic.c
index ba07d20f..b7e1608a 100644
--- a/lib/unictype/pr_ideographic.c
+++ b/lib/unictype/pr_ideographic.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_ids_binary_operator.c b/lib/unictype/pr_ids_binary_operator.c
index e6481c18..3a4c5021 100644
--- a/lib/unictype/pr_ids_binary_operator.c
+++ b/lib/unictype/pr_ids_binary_operator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_ids_trinary_operator.c b/lib/unictype/pr_ids_trinary_operator.c
index bb9bf65a..13b5cab4 100644
--- a/lib/unictype/pr_ids_trinary_operator.c
+++ b/lib/unictype/pr_ids_trinary_operator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_ids_unary_operator.c b/lib/unictype/pr_ids_unary_operator.c
index 09e058de..54cd35d4 100644
--- a/lib/unictype/pr_ids_unary_operator.c
+++ b/lib/unictype/pr_ids_unary_operator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_ignorable_control.c b/lib/unictype/pr_ignorable_control.c
index 926732e6..63f6801f 100644
--- a/lib/unictype/pr_ignorable_control.c
+++ b/lib/unictype/pr_ignorable_control.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_iso_control.c b/lib/unictype/pr_iso_control.c
index c914aac6..51fb399d 100644
--- a/lib/unictype/pr_iso_control.c
+++ b/lib/unictype/pr_iso_control.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_join_control.c b/lib/unictype/pr_join_control.c
index dd986955..4d5e11a9 100644
--- a/lib/unictype/pr_join_control.c
+++ b/lib/unictype/pr_join_control.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_left_of_pair.c b/lib/unictype/pr_left_of_pair.c
index 9abbebdb..e9376a2c 100644
--- a/lib/unictype/pr_left_of_pair.c
+++ b/lib/unictype/pr_left_of_pair.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_line_separator.c b/lib/unictype/pr_line_separator.c
index 409db55a..a0848ece 100644
--- a/lib/unictype/pr_line_separator.c
+++ b/lib/unictype/pr_line_separator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_logical_order_exception.c b/lib/unictype/pr_logical_order_exception.c
index 1d4f0993..0456aa99 100644
--- a/lib/unictype/pr_logical_order_exception.c
+++ b/lib/unictype/pr_logical_order_exception.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_lowercase.c b/lib/unictype/pr_lowercase.c
index 9b468120..b83e9732 100644
--- a/lib/unictype/pr_lowercase.c
+++ b/lib/unictype/pr_lowercase.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_math.c b/lib/unictype/pr_math.c
index 1219656c..678ac30e 100644
--- a/lib/unictype/pr_math.c
+++ b/lib/unictype/pr_math.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_modifier_combining_mark.c b/lib/unictype/pr_modifier_combining_mark.c
index 0dda23be..5b69ceda 100644
--- a/lib/unictype/pr_modifier_combining_mark.c
+++ b/lib/unictype/pr_modifier_combining_mark.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_non_break.c b/lib/unictype/pr_non_break.c
index c8c6e138..597e38d8 100644
--- a/lib/unictype/pr_non_break.c
+++ b/lib/unictype/pr_non_break.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_not_a_character.c b/lib/unictype/pr_not_a_character.c
index d7077580..c162a733 100644
--- a/lib/unictype/pr_not_a_character.c
+++ b/lib/unictype/pr_not_a_character.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_numeric.c b/lib/unictype/pr_numeric.c
index ca1073b1..551b8a8c 100644
--- a/lib/unictype/pr_numeric.c
+++ b/lib/unictype/pr_numeric.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_other_alphabetic.c b/lib/unictype/pr_other_alphabetic.c
index ac7ec0c0..3b83bb82 100644
--- a/lib/unictype/pr_other_alphabetic.c
+++ b/lib/unictype/pr_other_alphabetic.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_other_default_ignorable_code_point.c b/lib/unictype/pr_other_default_ignorable_code_point.c
index 730eeca1..389e1603 100644
--- a/lib/unictype/pr_other_default_ignorable_code_point.c
+++ b/lib/unictype/pr_other_default_ignorable_code_point.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_other_grapheme_extend.c b/lib/unictype/pr_other_grapheme_extend.c
index 767eb9c3..3beda856 100644
--- a/lib/unictype/pr_other_grapheme_extend.c
+++ b/lib/unictype/pr_other_grapheme_extend.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_other_id_continue.c b/lib/unictype/pr_other_id_continue.c
index f27f4ff2..50a41640 100644
--- a/lib/unictype/pr_other_id_continue.c
+++ b/lib/unictype/pr_other_id_continue.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_other_id_start.c b/lib/unictype/pr_other_id_start.c
index 8bc11d62..c710da78 100644
--- a/lib/unictype/pr_other_id_start.c
+++ b/lib/unictype/pr_other_id_start.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_other_lowercase.c b/lib/unictype/pr_other_lowercase.c
index 6055596b..2b8e39d3 100644
--- a/lib/unictype/pr_other_lowercase.c
+++ b/lib/unictype/pr_other_lowercase.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_other_math.c b/lib/unictype/pr_other_math.c
index c11054b8..d9992e59 100644
--- a/lib/unictype/pr_other_math.c
+++ b/lib/unictype/pr_other_math.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_other_uppercase.c b/lib/unictype/pr_other_uppercase.c
index 1ad97eb3..8cf935a8 100644
--- a/lib/unictype/pr_other_uppercase.c
+++ b/lib/unictype/pr_other_uppercase.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_paired_punctuation.c b/lib/unictype/pr_paired_punctuation.c
index 825eb662..67a2ef98 100644
--- a/lib/unictype/pr_paired_punctuation.c
+++ b/lib/unictype/pr_paired_punctuation.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_paragraph_separator.c b/lib/unictype/pr_paragraph_separator.c
index 9903811f..0a1f7b3c 100644
--- a/lib/unictype/pr_paragraph_separator.c
+++ b/lib/unictype/pr_paragraph_separator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_pattern_syntax.c b/lib/unictype/pr_pattern_syntax.c
index d0c1a013..86a87aec 100644
--- a/lib/unictype/pr_pattern_syntax.c
+++ b/lib/unictype/pr_pattern_syntax.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_pattern_white_space.c b/lib/unictype/pr_pattern_white_space.c
index 752c90e5..6dbac6b8 100644
--- a/lib/unictype/pr_pattern_white_space.c
+++ b/lib/unictype/pr_pattern_white_space.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_prepended_concatenation_mark.c b/lib/unictype/pr_prepended_concatenation_mark.c
index d8bfc85a..25289002 100644
--- a/lib/unictype/pr_prepended_concatenation_mark.c
+++ b/lib/unictype/pr_prepended_concatenation_mark.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_private_use.c b/lib/unictype/pr_private_use.c
index 422018aa..d9157862 100644
--- a/lib/unictype/pr_private_use.c
+++ b/lib/unictype/pr_private_use.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_punctuation.c b/lib/unictype/pr_punctuation.c
index f05e6685..c3ae9496 100644
--- a/lib/unictype/pr_punctuation.c
+++ b/lib/unictype/pr_punctuation.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_quotation_mark.c b/lib/unictype/pr_quotation_mark.c
index 087677fe..8517caf7 100644
--- a/lib/unictype/pr_quotation_mark.c
+++ b/lib/unictype/pr_quotation_mark.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_radical.c b/lib/unictype/pr_radical.c
index 4fcb8b76..1159cab8 100644
--- a/lib/unictype/pr_radical.c
+++ b/lib/unictype/pr_radical.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_regional_indicator.c b/lib/unictype/pr_regional_indicator.c
index 26f873d4..799245c9 100644
--- a/lib/unictype/pr_regional_indicator.c
+++ b/lib/unictype/pr_regional_indicator.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2021-2025 Free Software Foundation, Inc.
+ Copyright (C) 2021-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2021.
This file is free software.
diff --git a/lib/unictype/pr_sentence_terminal.c b/lib/unictype/pr_sentence_terminal.c
index d2a33752..c1d8d339 100644
--- a/lib/unictype/pr_sentence_terminal.c
+++ b/lib/unictype/pr_sentence_terminal.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_soft_dotted.c b/lib/unictype/pr_soft_dotted.c
index 0dc8e981..c0b62087 100644
--- a/lib/unictype/pr_soft_dotted.c
+++ b/lib/unictype/pr_soft_dotted.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_space.c b/lib/unictype/pr_space.c
index 8cb1aeb5..c29efa80 100644
--- a/lib/unictype/pr_space.c
+++ b/lib/unictype/pr_space.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_terminal_punctuation.c b/lib/unictype/pr_terminal_punctuation.c
index 671b2455..0649d55e 100644
--- a/lib/unictype/pr_terminal_punctuation.c
+++ b/lib/unictype/pr_terminal_punctuation.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_test.c b/lib/unictype/pr_test.c
index 693ae9ed..39ae4859 100644
--- a/lib/unictype/pr_test.c
+++ b/lib/unictype/pr_test.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2005-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_titlecase.c b/lib/unictype/pr_titlecase.c
index 74a60ee0..9ab21fcc 100644
--- a/lib/unictype/pr_titlecase.c
+++ b/lib/unictype/pr_titlecase.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_unassigned_code_value.c b/lib/unictype/pr_unassigned_code_value.c
index f884f69e..32dce534 100644
--- a/lib/unictype/pr_unassigned_code_value.c
+++ b/lib/unictype/pr_unassigned_code_value.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_unified_ideograph.c b/lib/unictype/pr_unified_ideograph.c
index 6ed16c09..219bc110 100644
--- a/lib/unictype/pr_unified_ideograph.c
+++ b/lib/unictype/pr_unified_ideograph.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_uppercase.c b/lib/unictype/pr_uppercase.c
index 88a5700c..6a4521ea 100644
--- a/lib/unictype/pr_uppercase.c
+++ b/lib/unictype/pr_uppercase.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_variation_selector.c b/lib/unictype/pr_variation_selector.c
index 45e31754..42fa2337 100644
--- a/lib/unictype/pr_variation_selector.c
+++ b/lib/unictype/pr_variation_selector.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_white_space.c b/lib/unictype/pr_white_space.c
index 639860bd..9a5f2af7 100644
--- a/lib/unictype/pr_white_space.c
+++ b/lib/unictype/pr_white_space.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_xid_continue.c b/lib/unictype/pr_xid_continue.c
index 122782b6..fb7de816 100644
--- a/lib/unictype/pr_xid_continue.c
+++ b/lib/unictype/pr_xid_continue.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_xid_start.c b/lib/unictype/pr_xid_start.c
index 55880e92..03dc6642 100644
--- a/lib/unictype/pr_xid_start.c
+++ b/lib/unictype/pr_xid_start.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/pr_zero_width.c b/lib/unictype/pr_zero_width.c
index 4eabfc8c..32534f59 100644
--- a/lib/unictype/pr_zero_width.c
+++ b/lib/unictype/pr_zero_width.c
@@ -1,5 +1,5 @@
/* Properties of Unicode characters.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unictype/scripts.c b/lib/unictype/scripts.c
index 637623ed..f0940d7d 100644
--- a/lib/unictype/scripts.c
+++ b/lib/unictype/scripts.c
@@ -1,5 +1,5 @@
/* Scripts of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software: you can redistribute it and/or modify
@@ -52,9 +52,8 @@ uc_script (ucs4_t uc)
const uc_script_t *
uc_script_byname (const char *script_name)
{
- const struct named_script *found;
-
- found = uc_script_lookup (script_name, strlen (script_name));
+ const struct named_script *found =
+ uc_script_lookup (script_name, strlen (script_name));
if (found != NULL)
return &scripts[found->index];
else
diff --git a/lib/unictype/sy_c_ident.c b/lib/unictype/sy_c_ident.c
index c6992698..70f96f08 100644
--- a/lib/unictype/sy_c_ident.c
+++ b/lib/unictype/sy_c_ident.c
@@ -1,5 +1,5 @@
/* Syntax properties of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
diff --git a/lib/unictype/sy_c_whitespace.c b/lib/unictype/sy_c_whitespace.c
index 57b4d213..5cfc5f6c 100644
--- a/lib/unictype/sy_c_whitespace.c
+++ b/lib/unictype/sy_c_whitespace.c
@@ -1,5 +1,5 @@
/* Syntax properties of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
diff --git a/lib/unictype/sy_java_ident.c b/lib/unictype/sy_java_ident.c
index e6b9c9b7..83f63e05 100644
--- a/lib/unictype/sy_java_ident.c
+++ b/lib/unictype/sy_java_ident.c
@@ -1,5 +1,5 @@
/* Syntax properties of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
diff --git a/lib/unictype/sy_java_whitespace.c b/lib/unictype/sy_java_whitespace.c
index 83c081cb..ceb5b3be 100644
--- a/lib/unictype/sy_java_whitespace.c
+++ b/lib/unictype/sy_java_whitespace.c
@@ -1,5 +1,5 @@
/* Syntax properties of Unicode characters.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
diff --git a/lib/unigbrk.in.h b/lib/unigbrk.in.h
index 8a5c6051..f9966388 100644
--- a/lib/unigbrk.in.h
+++ b/lib/unigbrk.in.h
@@ -1,5 +1,5 @@
/* Grapheme cluster breaks in Unicode strings.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
This file is free software.
diff --git a/lib/unigbrk/u-grapheme-breaks.h b/lib/unigbrk/u-grapheme-breaks.h
index 30d5853a..2bea51c4 100644
--- a/lib/unigbrk/u-grapheme-breaks.h
+++ b/lib/unigbrk/u-grapheme-breaks.h
@@ -1,5 +1,5 @@
/* Grapheme cluster break function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unigbrk/u-grapheme-next.h b/lib/unigbrk/u-grapheme-next.h
index 9ca07436..edd377e8 100644
--- a/lib/unigbrk/u-grapheme-next.h
+++ b/lib/unigbrk/u-grapheme-next.h
@@ -1,5 +1,5 @@
/* Grapheme cluster break function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unigbrk/u-grapheme-prev.h b/lib/unigbrk/u-grapheme-prev.h
index 0894d599..0fa234b4 100644
--- a/lib/unigbrk/u-grapheme-prev.h
+++ b/lib/unigbrk/u-grapheme-prev.h
@@ -1,5 +1,5 @@
/* Grapheme cluster break function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -43,10 +43,8 @@ ends_with_incb_consonant_extended_linker_extended (const UNIT *s,
while (s > s_start)
{
- const UNIT *prev_s;
ucs4_t uc;
-
- prev_s = U_PREV (&uc, s, s_start);
+ const UNIT *prev_s = U_PREV (&uc, s, s_start);
if (prev_s == NULL)
/* Ill-formed UTF-8 encoding. */
break;
@@ -73,10 +71,8 @@ ends_with_emoji_modifier_sequence (const UNIT *s, const UNIT *s_start)
{
while (s > s_start)
{
- const UNIT *prev_s;
ucs4_t uc;
-
- prev_s = U_PREV (&uc, s, s_start);
+ const UNIT *prev_s = U_PREV (&uc, s, s_start);
if (prev_s == NULL)
/* Ill-formed UTF-8 encoding. */
break;
@@ -102,10 +98,8 @@ ends_with_ri_count (const UNIT *s, const UNIT *s_start)
while (s > s_start)
{
- const UNIT *prev_s;
ucs4_t uc;
-
- prev_s = U_PREV (&uc, s, s_start);
+ const UNIT *prev_s = U_PREV (&uc, s, s_start);
if (prev_s == NULL)
/* Ill-formed UTF-8 encoding. */
break;
@@ -143,10 +137,8 @@ FUNC (const UNIT *s, const UNIT *s_start)
do
{
- const UNIT *prev_s;
ucs4_t uc;
-
- prev_s = U_PREV (&uc, s, s_start);
+ const UNIT *prev_s = U_PREV (&uc, s, s_start);
if (prev_s == NULL)
{
/* Ill-formed UTF-8 encoding. */
diff --git a/lib/unigbrk/u16-grapheme-breaks.c b/lib/unigbrk/u16-grapheme-breaks.c
index bae4bcb2..692f570c 100644
--- a/lib/unigbrk/u16-grapheme-breaks.c
+++ b/lib/unigbrk/u16-grapheme-breaks.c
@@ -1,5 +1,5 @@
/* Grapheme cluster breaks function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
This file is free software.
diff --git a/lib/unigbrk/u16-grapheme-next.c b/lib/unigbrk/u16-grapheme-next.c
index 5e7a783d..6397301f 100644
--- a/lib/unigbrk/u16-grapheme-next.c
+++ b/lib/unigbrk/u16-grapheme-next.c
@@ -1,5 +1,5 @@
/* Next grapheme cluster function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unigbrk/u16-grapheme-prev.c b/lib/unigbrk/u16-grapheme-prev.c
index 4c70e118..72a3198b 100644
--- a/lib/unigbrk/u16-grapheme-prev.c
+++ b/lib/unigbrk/u16-grapheme-prev.c
@@ -1,5 +1,5 @@
/* Previous grapheme cluster function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unigbrk/u32-grapheme-breaks.c b/lib/unigbrk/u32-grapheme-breaks.c
index 66c64445..669abd68 100644
--- a/lib/unigbrk/u32-grapheme-breaks.c
+++ b/lib/unigbrk/u32-grapheme-breaks.c
@@ -1,5 +1,5 @@
/* Grapheme cluster breaks function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
This file is free software.
diff --git a/lib/unigbrk/u32-grapheme-next.c b/lib/unigbrk/u32-grapheme-next.c
index 1c9adfa6..212dfbf1 100644
--- a/lib/unigbrk/u32-grapheme-next.c
+++ b/lib/unigbrk/u32-grapheme-next.c
@@ -1,5 +1,5 @@
/* Next grapheme cluster function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unigbrk/u32-grapheme-prev.c b/lib/unigbrk/u32-grapheme-prev.c
index 977a1977..e893c0d8 100644
--- a/lib/unigbrk/u32-grapheme-prev.c
+++ b/lib/unigbrk/u32-grapheme-prev.c
@@ -1,5 +1,5 @@
/* Previous grapheme cluster function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unigbrk/u8-grapheme-breaks.c b/lib/unigbrk/u8-grapheme-breaks.c
index 04708695..951ad1f0 100644
--- a/lib/unigbrk/u8-grapheme-breaks.c
+++ b/lib/unigbrk/u8-grapheme-breaks.c
@@ -1,5 +1,5 @@
/* Grapheme cluster breaks function.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Ben Pfaff <blp@cs.stanford.edu>, 2010,
based on code written by Bruno Haible <bruno@clisp.org>, 2009.
diff --git a/lib/unigbrk/u8-grapheme-next.c b/lib/unigbrk/u8-grapheme-next.c
index 2ec094da..105ebc37 100644
--- a/lib/unigbrk/u8-grapheme-next.c
+++ b/lib/unigbrk/u8-grapheme-next.c
@@ -1,5 +1,5 @@
/* Next grapheme cluster function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unigbrk/u8-grapheme-prev.c b/lib/unigbrk/u8-grapheme-prev.c
index a2d872f0..f4df1892 100644
--- a/lib/unigbrk/u8-grapheme-prev.c
+++ b/lib/unigbrk/u8-grapheme-prev.c
@@ -1,5 +1,5 @@
/* Previous grapheme cluster function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unigbrk/uc-gbrk-prop.c b/lib/unigbrk/uc-gbrk-prop.c
index 8158fa0c..32b9ec1c 100644
--- a/lib/unigbrk/uc-gbrk-prop.c
+++ b/lib/unigbrk/uc-gbrk-prop.c
@@ -1,5 +1,5 @@
/* Grapheme cluster break property function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
This file is free software.
diff --git a/lib/unigbrk/uc-grapheme-breaks.c b/lib/unigbrk/uc-grapheme-breaks.c
index 4924a97d..08dc5249 100644
--- a/lib/unigbrk/uc-grapheme-breaks.c
+++ b/lib/unigbrk/uc-grapheme-breaks.c
@@ -1,5 +1,5 @@
/* Grapheme cluster breaks function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
This file is free software.
diff --git a/lib/unigbrk/uc-is-grapheme-break.c b/lib/unigbrk/uc-is-grapheme-break.c
index 1451efa8..33ad20f0 100644
--- a/lib/unigbrk/uc-is-grapheme-break.c
+++ b/lib/unigbrk/uc-is-grapheme-break.c
@@ -1,5 +1,5 @@
/* Grapheme cluster break function.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
This file is free software.
@@ -118,15 +118,13 @@ static const unsigned long int gb_table[18] =
bool
uc_is_grapheme_break (ucs4_t a, ucs4_t b)
{
- int a_gcp, b_gcp;
-
if ((a | b) < 0x300)
{
/* GB3 is the only relevant rule for this case. */
return a != '\r' || b != '\n';
}
- a_gcp = uc_graphemeclusterbreak_property (a);
- b_gcp = uc_graphemeclusterbreak_property (b);
+ int a_gcp = uc_graphemeclusterbreak_property (a);
+ int b_gcp = uc_graphemeclusterbreak_property (b);
return (gb_table[a_gcp] >> b_gcp) & 1;
}
diff --git a/lib/unigbrk/ulc-grapheme-breaks.c b/lib/unigbrk/ulc-grapheme-breaks.c
index 779a59f0..87c45f37 100644
--- a/lib/unigbrk/ulc-grapheme-breaks.c
+++ b/lib/unigbrk/ulc-grapheme-breaks.c
@@ -1,5 +1,5 @@
/* Grapheme cluster breaks function.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Ben Pfaff <blp@cs.stanford.edu>, 2010,
based on code written by Bruno Haible <bruno@clisp.org>, 2009.
@@ -51,10 +51,8 @@ is_utf8_encoding (const char *encoding)
static void
ascii_grapheme_breaks (const char *s, size_t n, char *p)
{
- size_t i;
-
p[0] = 1;
- for (i = 1; i < n; i++)
+ for (size_t i = 1; i < n; i++)
{
bool is_ascii = c_isprint (s[i]) || c_isspace (s[i]);
p[i] = is_ascii && (s[i] != '\n' || s[i - 1] != '\r');
@@ -92,25 +90,22 @@ ulc_grapheme_breaks (const char *s, size_t n, char *p)
if (offsets != NULL)
{
- uint8_t *t;
size_t m;
-
- t = u8_conv_from_encoding (encoding, iconveh_question_mark,
- s, n, offsets, NULL, &m);
+ uint8_t *t =
+ u8_conv_from_encoding (encoding, iconveh_question_mark,
+ s, n, offsets, NULL, &m);
if (t != NULL)
{
char *q = (char *) (m > 0 ? malloc (m) : NULL);
if (m == 0 || q != NULL)
{
- size_t i;
-
/* Determine the grapheme breaks of the UTF-8 string. */
u8_grapheme_breaks (t, m, q);
/* Translate the result back to the original string. */
memset (p, 0, n);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
if (offsets[i] != (size_t)(-1))
p[i] = q[offsets[i]];
diff --git a/lib/unilbrk.in.h b/lib/unilbrk.in.h
index 2178837c..cbab3ba4 100644
--- a/lib/unilbrk.in.h
+++ b/lib/unilbrk.in.h
@@ -1,5 +1,5 @@
/* Line breaking of Unicode strings.
- Copyright (C) 2001-2003, 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2005-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unilbrk/internal.h b/lib/unilbrk/internal.h
index 8a7e4300..be059b5d 100644
--- a/lib/unilbrk/internal.h
+++ b/lib/unilbrk/internal.h
@@ -1,5 +1,5 @@
/* Internal functions for line breaking of Unicode strings.
- Copyright (C) 2001-2003, 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2005-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2021.
This file is free software.
diff --git a/lib/unilbrk/lbrktables.h b/lib/unilbrk/lbrktables.h
index ea2114c5..27d17926 100644
--- a/lib/unilbrk/lbrktables.h
+++ b/lib/unilbrk/lbrktables.h
@@ -1,5 +1,5 @@
/* Line breaking auxiliary tables.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unilbrk/u16-possible-linebreaks.c b/lib/unilbrk/u16-possible-linebreaks.c
index d313d942..c85cc374 100644
--- a/lib/unilbrk/u16-possible-linebreaks.c
+++ b/lib/unilbrk/u16-possible-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of UTF-16 strings.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unilbrk/u16-width-linebreaks.c b/lib/unilbrk/u16-width-linebreaks.c
index 70c31ace..0af01e25 100644
--- a/lib/unilbrk/u16-width-linebreaks.c
+++ b/lib/unilbrk/u16-width-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of UTF-16 strings.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -39,17 +39,12 @@ u16_width_linebreaks_internal (const uint16_t *s, size_t n,
const char *o, const char *encoding, int cr,
char *p)
{
- const uint16_t *s_end;
- char *last_p;
- int last_column;
- int piece_width;
-
u16_possible_linebreaks_loop (s, n, encoding, cr, p);
- s_end = s + n;
- last_p = NULL;
- last_column = start_column;
- piece_width = 0;
+ const uint16_t *s_end = s + n;
+ char *last_p = NULL;
+ int last_column = start_column;
+ int piece_width = 0;
while (s < s_end)
{
ucs4_t uc;
@@ -82,8 +77,6 @@ u16_width_linebreaks_internal (const uint16_t *s, size_t n,
else
{
/* uc is not a line break character. */
- int w;
-
if (*p == UC_BREAK_POSSIBLE)
{
/* Start a new piece. */
@@ -96,7 +89,7 @@ u16_width_linebreaks_internal (const uint16_t *s, size_t n,
*p = UC_BREAK_PROHIBITED;
- w = uc_width (uc, encoding);
+ int w = uc_width (uc, encoding);
if (w >= 0) /* ignore control characters in the string */
piece_width += w;
}
diff --git a/lib/unilbrk/u32-possible-linebreaks.c b/lib/unilbrk/u32-possible-linebreaks.c
index f953be75..33f84378 100644
--- a/lib/unilbrk/u32-possible-linebreaks.c
+++ b/lib/unilbrk/u32-possible-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of UTF-32 strings.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unilbrk/u32-width-linebreaks.c b/lib/unilbrk/u32-width-linebreaks.c
index 5fa73639..4a4f84b5 100644
--- a/lib/unilbrk/u32-width-linebreaks.c
+++ b/lib/unilbrk/u32-width-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of UTF-32 strings.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -38,17 +38,12 @@ u32_width_linebreaks_internal (const uint32_t *s, size_t n,
const char *o, const char *encoding, int cr,
char *p)
{
- const uint32_t *s_end;
- char *last_p;
- int last_column;
- int piece_width;
-
u32_possible_linebreaks_loop (s, n, encoding, cr, p);
- s_end = s + n;
- last_p = NULL;
- last_column = start_column;
- piece_width = 0;
+ const uint32_t *s_end = s + n;
+ char *last_p = NULL;
+ int last_column = start_column;
+ int piece_width = 0;
while (s < s_end)
{
ucs4_t uc = *s;
@@ -80,8 +75,6 @@ u32_width_linebreaks_internal (const uint32_t *s, size_t n,
else
{
/* uc is not a line break character. */
- int w;
-
if (*p == UC_BREAK_POSSIBLE)
{
/* Start a new piece. */
@@ -94,7 +87,7 @@ u32_width_linebreaks_internal (const uint32_t *s, size_t n,
*p = UC_BREAK_PROHIBITED;
- w = uc_width (uc, encoding);
+ int w = uc_width (uc, encoding);
if (w >= 0) /* ignore control characters in the string */
piece_width += w;
}
diff --git a/lib/unilbrk/u8-possible-linebreaks.c b/lib/unilbrk/u8-possible-linebreaks.c
index bc4796f4..86a8e941 100644
--- a/lib/unilbrk/u8-possible-linebreaks.c
+++ b/lib/unilbrk/u8-possible-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of UTF-8 strings.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -457,7 +457,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -473,7 +472,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
@@ -505,11 +504,10 @@ main (int argc, char * argv[])
char *input = read_file (stdin);
int length = strlen (input);
char *breaks = malloc (length);
- int i;
u8_possible_linebreaks_v2 ((uint8_t *) input, length, "UTF-8", breaks);
- for (i = 0; i < length; i++)
+ for (int i = 0; i < length; i++)
{
switch (breaks[i])
{
diff --git a/lib/unilbrk/u8-width-linebreaks.c b/lib/unilbrk/u8-width-linebreaks.c
index 0cb18ba0..28190645 100644
--- a/lib/unilbrk/u8-width-linebreaks.c
+++ b/lib/unilbrk/u8-width-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of UTF-8 strings.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -39,17 +39,12 @@ u8_width_linebreaks_internal (const uint8_t *s, size_t n,
const char *o, const char *encoding, int cr,
char *p)
{
- const uint8_t *s_end;
- char *last_p;
- int last_column;
- int piece_width;
-
u8_possible_linebreaks_loop (s, n, encoding, cr, p);
- s_end = s + n;
- last_p = NULL;
- last_column = start_column;
- piece_width = 0;
+ const uint8_t *s_end = s + n;
+ char *last_p = NULL;
+ int last_column = start_column;
+ int piece_width = 0;
while (s < s_end)
{
ucs4_t uc;
@@ -82,8 +77,6 @@ u8_width_linebreaks_internal (const uint8_t *s, size_t n,
else
{
/* uc is not a line break character. */
- int w;
-
if (*p == UC_BREAK_POSSIBLE)
{
/* Start a new piece. */
@@ -96,7 +89,7 @@ u8_width_linebreaks_internal (const uint8_t *s, size_t n,
*p = UC_BREAK_PROHIBITED;
- w = uc_width (uc, encoding);
+ int w = uc_width (uc, encoding);
if (w >= 0) /* ignore control characters in the string */
piece_width += w;
}
@@ -163,7 +156,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -179,7 +171,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
@@ -212,11 +204,10 @@ main (int argc, char * argv[])
char *input = read_file (stdin);
int length = strlen (input);
char *breaks = malloc (length);
- int i;
u8_width_linebreaks_v2 ((uint8_t *) input, length, width, 0, 0, NULL, "UTF-8", breaks);
- for (i = 0; i < length; i++)
+ for (int i = 0; i < length; i++)
{
switch (breaks[i])
{
diff --git a/lib/unilbrk/ulc-common.c b/lib/unilbrk/ulc-common.c
index c9c97da2..979fc335 100644
--- a/lib/unilbrk/ulc-common.c
+++ b/lib/unilbrk/ulc-common.c
@@ -1,5 +1,5 @@
/* Line breaking auxiliary functions.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unilbrk/ulc-common.h b/lib/unilbrk/ulc-common.h
index 8df4eff8..21ad8e1b 100644
--- a/lib/unilbrk/ulc-common.h
+++ b/lib/unilbrk/ulc-common.h
@@ -1,5 +1,5 @@
/* Line breaking auxiliary functions.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unilbrk/ulc-possible-linebreaks.c b/lib/unilbrk/ulc-possible-linebreaks.c
index 0dc1ff41..1e112b4b 100644
--- a/lib/unilbrk/ulc-possible-linebreaks.c
+++ b/lib/unilbrk/ulc-possible-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of strings.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -66,26 +66,23 @@ ulc_possible_linebreaks_internal (const char *s, size_t n, const char *encoding,
if (offsets != NULL)
{
- uint8_t *t;
size_t m;
-
- t = u8_conv_from_encoding (encoding, iconveh_question_mark,
- s, n, offsets, NULL, &m);
+ uint8_t *t =
+ u8_conv_from_encoding (encoding, iconveh_question_mark,
+ s, n, offsets, NULL, &m);
if (t != NULL)
{
char *q = (char *) (m > 0 ? malloc (m) : NULL);
if (m == 0 || q != NULL)
{
- size_t i;
-
/* Determine the possible line breaks of the UTF-8
string. */
u8_possible_linebreaks_loop (t, m, encoding, cr, q);
/* Translate the result back to the original string. */
memset (p, UC_BREAK_PROHIBITED, n);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
if (offsets[i] != (size_t)(-1))
p[i] = q[offsets[i]];
@@ -169,7 +166,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -185,7 +181,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
@@ -218,11 +214,10 @@ main (int argc, char * argv[])
char *input = read_file (stdin);
int length = strlen (input);
char *breaks = malloc (length);
- int i;
ulc_possible_linebreaks_v2 (input, length, locale_charset (), breaks);
- for (i = 0; i < length; i++)
+ for (int i = 0; i < length; i++)
{
switch (breaks[i])
{
diff --git a/lib/unilbrk/ulc-width-linebreaks.c b/lib/unilbrk/ulc-width-linebreaks.c
index ee3a394a..3ce412e8 100644
--- a/lib/unilbrk/ulc-width-linebreaks.c
+++ b/lib/unilbrk/ulc-width-linebreaks.c
@@ -1,5 +1,5 @@
/* Line breaking of strings.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
@@ -68,11 +68,10 @@ ulc_width_linebreaks_internal (const char *s, size_t n,
if (offsets != NULL)
{
- uint8_t *t;
size_t m;
-
- t = u8_conv_from_encoding (encoding, iconveh_question_mark,
- s, n, offsets, NULL, &m);
+ uint8_t *t =
+ u8_conv_from_encoding (encoding, iconveh_question_mark,
+ s, n, offsets, NULL, &m);
if (t != NULL)
{
char *memory =
@@ -82,25 +81,23 @@ ulc_width_linebreaks_internal (const char *s, size_t n,
{
char *q = (char *) memory;
char *o8 = (o != NULL ? (char *) (q + m) : NULL);
- int res_column;
- size_t i;
/* Translate the overrides to the UTF-8 string. */
if (o != NULL)
{
memset (o8, UC_BREAK_UNDEFINED, m);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
if (offsets[i] != (size_t)(-1))
o8[offsets[i]] = o[i];
}
/* Determine the line breaks of the UTF-8 string. */
- res_column =
+ int res_column =
u8_width_linebreaks_internal (t, m, width, start_column, at_end_columns, o8, encoding, cr, q);
/* Translate the result back to the original string. */
memset (p, UC_BREAK_PROHIBITED, n);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
if (offsets[i] != (size_t)(-1))
p[i] = q[offsets[i]];
@@ -195,7 +192,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -211,7 +207,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
@@ -245,11 +241,10 @@ main (int argc, char * argv[])
char *input = read_file (stdin);
int length = strlen (input);
char *breaks = malloc (length);
- int i;
ulc_width_linebreaks_v2 (input, length, width, 0, 0, NULL, locale_charset (), breaks);
- for (i = 0; i < length; i++)
+ for (int i = 0; i < length; i++)
{
switch (breaks[i])
{
diff --git a/lib/unimetadata.in.h b/lib/unimetadata.in.h
index 0e29dc28..c0c1a3fb 100644
--- a/lib/unimetadata.in.h
+++ b/lib/unimetadata.in.h
@@ -1,5 +1,5 @@
/* Meta information about GNU libunistring.
- Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Copyright (C) 2024-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/uniname.in.h b/lib/uniname.in.h
index e9ccbbbc..fcb7a504 100644
--- a/lib/uniname.in.h
+++ b/lib/uniname.in.h
@@ -1,5 +1,5 @@
/* Association between Unicode characters and their names.
- Copyright (C) 2000-2002, 2005, 2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 2000-2002, 2005, 2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/uniname/gen-uninames.lisp b/lib/uniname/gen-uninames.lisp
index dccc0f04..0925e97f 100755
--- a/lib/uniname/gen-uninames.lisp
+++ b/lib/uniname/gen-uninames.lisp
@@ -3,7 +3,7 @@
;;; Creation of gnulib's uninames.h from the UnicodeData.txt and NameAliases.txt
;;; tables.
-;;; Copyright (C) 2000-2025 Free Software Foundation, Inc.
+;;; Copyright (C) 2000-2026 Free Software Foundation, Inc.
;;; Written by Bruno Haible <bruno@clisp.org>, 2000-12-28.
;;;
;;; This program is free software.
diff --git a/lib/uniname/uniname.c b/lib/uniname/uniname.c
index 953b70df..074a8d85 100644
--- a/lib/uniname/uniname.c
+++ b/lib/uniname/uniname.c
@@ -1,5 +1,5 @@
/* Association between Unicode characters and their names.
- Copyright (C) 2000-2002, 2005-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2000-2002, 2005-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -65,9 +65,6 @@
static const char *
unicode_name_word (unsigned int index, unsigned int *lengthp)
{
- unsigned int i1;
- unsigned int i2;
-
assert (index < UNICODE_CHARNAME_NUM_WORDS);
/* Binary search for i with
@@ -76,8 +73,8 @@ unicode_name_word (unsigned int index, unsigned int *lengthp)
index < unicode_name_by_length[i+1].ind_offset
*/
- i1 = 0;
- i2 = SIZEOF (unicode_name_by_length) - 1;
+ unsigned int i1 = 0;
+ unsigned int i2 = SIZEOF (unicode_name_by_length) - 1;
while (i2 - i1 > 1)
{
unsigned int i = (i1 + i2) >> 1;
@@ -238,22 +235,17 @@ unicode_character_name (ucs4_t c, char *buf)
if (c >= 0xAC00 && c <= 0xD7A3)
{
/* Special case for Hangul syllables. Keeps the tables small. */
- char *ptr;
- unsigned int tmp;
- unsigned int index1;
- unsigned int index2;
- unsigned int index3;
- const char *q;
/* buf needs to have at least 16 + 7 + 1 bytes here. */
memcpy (buf, "HANGUL SYLLABLE ", 16);
- ptr = buf + 16;
+ char *ptr = buf + 16;
- tmp = c - 0xAC00;
- index3 = tmp % 28; tmp = tmp / 28;
- index2 = tmp % 21; tmp = tmp / 21;
- index1 = tmp;
+ unsigned int tmp = c - 0xAC00;
+ unsigned int index3 = tmp % 28; tmp = tmp / 28;
+ unsigned int index2 = tmp % 21; tmp = tmp / 21;
+ unsigned int index1 = tmp;
+ const char *q;
q = jamo_initial_short_name[index1];
while (*q != '\0')
*ptr++ = *q++;
@@ -271,14 +263,12 @@ unicode_character_name (ucs4_t c, char *buf)
{
/* Special case for CJK compatibility ideographs. Keeps the tables
small. */
- char *ptr;
- int i;
/* buf needs to have at least 28 + 5 + 1 bytes here. */
memcpy (buf, "CJK COMPATIBILITY IDEOGRAPH-", 28);
- ptr = buf + 28;
+ char *ptr = buf + 28;
- for (i = (c < 0x10000 ? 12 : 16); i >= 0; i -= 4)
+ for (int i = (c < 0x10000 ? 12 : 16); i >= 0; i -= 4)
{
unsigned int x = (c >> i) & 0xf;
*ptr++ = (x < 10 ? '0' : 'A' - 10) + x;
@@ -424,11 +414,10 @@ unicode_name_character (const char *name)
for (;;)
{
{
- int word;
const char *p2 = p1;
while (p2 < ptr && *p2 != ' ')
p2++;
- word = unicode_name_word_lookup (p1, p2 - p1);
+ int word = unicode_name_word_lookup (p1, p2 - p1);
if (word < 0)
break;
if (wordptr == &words[UNICODE_CHARNAME_MAX_WORDS])
@@ -448,11 +437,7 @@ unicode_name_character (const char *name)
2) [AEIOUWY]
3) [BCDGHIJKLMNPST]
*/
- const char *p2;
- const char *p3;
- const char *p4;
-
- p2 = p1;
+ const char *p2 = p1;
while (p2 < ptr
&& (*p2 == 'B' || *p2 == 'C' || *p2 == 'D'
|| *p2 == 'G' || *p2 == 'H' || *p2 == 'J'
@@ -460,13 +445,13 @@ unicode_name_character (const char *name)
|| *p2 == 'P' || *p2 == 'R' || *p2 == 'S'
|| *p2 == 'T'))
p2++;
- p3 = p2;
+ const char *p3 = p2;
while (p3 < ptr
&& (*p3 == 'A' || *p3 == 'E' || *p3 == 'I'
|| *p3 == 'O' || *p3 == 'U' || *p3 == 'W'
|| *p3 == 'Y'))
p3++;
- p4 = p3;
+ const char *p4 = p3;
while (p4 < ptr
&& (*p4 == 'B' || *p4 == 'C' || *p4 == 'D'
|| *p4 == 'G' || *p4 == 'H' || *p4 == 'I'
@@ -482,21 +467,15 @@ unicode_name_character (const char *name)
if (n1 <= 2 && (n2 >= 1 && n2 <= 3) && n3 <= 2)
{
- unsigned int index1;
-
- for (index1 = 0; index1 < 19; index1++)
+ for (unsigned int index1 = 0; index1 < 19; index1++)
if (memeq (jamo_initial_short_name[index1], p1, n1)
&& jamo_initial_short_name[index1][n1] == '\0')
{
- unsigned int index2;
-
- for (index2 = 0; index2 < 21; index2++)
+ for (unsigned int index2 = 0; index2 < 21; index2++)
if (memeq (jamo_medial_short_name[index2], p2, n2)
&& jamo_medial_short_name[index2][n2] == '\0')
{
- unsigned int index3;
-
- for (index3 = 0; index3 < 28; index3++)
+ for (unsigned int index3 = 0; index3 < 28; index3++)
if (memeq (jamo_final_short_name[index3], p3, n3)
&& jamo_final_short_name[index3][n3] == '\0')
{
diff --git a/lib/uninorm.in.h b/lib/uninorm.in.h
index 076e8ae5..ed1ae0f7 100644
--- a/lib/uninorm.in.h
+++ b/lib/uninorm.in.h
@@ -1,5 +1,5 @@
/* Normalization forms (composition and decomposition) of Unicode strings.
- Copyright (C) 2001-2002, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uninorm/canonical-decomposition.c b/lib/uninorm/canonical-decomposition.c
index 628d2f12..93169bf2 100644
--- a/lib/uninorm/canonical-decomposition.c
+++ b/lib/uninorm/canonical-decomposition.c
@@ -1,5 +1,5 @@
/* Canonical decomposition of Unicode characters.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
@@ -33,18 +33,14 @@ uc_canonical_decomposition (ucs4_t uc, ucs4_t *decomposition)
"Hangul Syllable Decomposition", See also the clarification at
<https://www.unicode.org/versions/Unicode5.1.0/>, section
"Clarification of Hangul Jamo Handling". */
- unsigned int t;
-
uc -= 0xAC00;
- t = uc % 28;
+ unsigned int t = uc % 28;
if (t == 0)
{
- unsigned int v, l;
-
uc = uc / 28;
- v = uc % 21;
- l = uc / 21;
+ unsigned int v = uc % 21;
+ unsigned int l = uc / 21;
decomposition[0] = 0x1100 + l;
decomposition[1] = 0x1161 + v;
@@ -57,11 +53,9 @@ uc_canonical_decomposition (ucs4_t uc, ucs4_t *decomposition)
decomposition[1] = 0x11A7 + t;
return 2;
#else
- unsigned int v, l;
-
uc = uc / 28;
- v = uc % 21;
- l = uc / 21;
+ unsigned int v = uc % 21;
+ unsigned int l = uc / 21;
decomposition[0] = 0x1100 + l;
decomposition[1] = 0x1161 + v;
@@ -78,16 +72,12 @@ uc_canonical_decomposition (ucs4_t uc, ucs4_t *decomposition)
is a canonical one. */
if (entry < 0x8000)
{
- const unsigned char *p;
- unsigned int element;
- unsigned int length;
-
- p = &gl_uninorm_decomp_chars_table[3 * entry];
- element = (p[0] << 16) | (p[1] << 8) | p[2];
+ const unsigned char *p = &gl_uninorm_decomp_chars_table[3 * entry];
+ unsigned int element = (p[0] << 16) | (p[1] << 8) | p[2];
/* The first element has 5 bits for the decomposition type. */
if (((element >> 18) & 0x1f) != UC_DECOMP_CANONICAL)
abort ();
- length = 1;
+ unsigned int length = 1;
for (;;)
{
/* Every element has an 18 bits wide Unicode code point. */
diff --git a/lib/uninorm/compat-decomposition.c b/lib/uninorm/compat-decomposition.c
index 479482b4..a2ed7e97 100644
--- a/lib/uninorm/compat-decomposition.c
+++ b/lib/uninorm/compat-decomposition.c
@@ -1,5 +1,5 @@
/* Compatibility decomposition of Unicode characters.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/composition.c b/lib/uninorm/composition.c
index d9a302be..c5d088bc 100644
--- a/lib/uninorm/composition.c
+++ b/lib/uninorm/composition.c
@@ -1,5 +1,5 @@
/* Canonical composition of Unicode characters.
- Copyright (C) 2002, 2006, 2009, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009, 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
@@ -69,8 +69,6 @@ uc_composition (ucs4_t uc1, ucs4_t uc2)
}
#else
char codes[6];
- const struct composition_rule *rule;
-
codes[0] = (uc1 >> 16) & 0xff;
codes[1] = (uc1 >> 8) & 0xff;
codes[2] = uc1 & 0xff;
@@ -78,7 +76,7 @@ uc_composition (ucs4_t uc1, ucs4_t uc2)
codes[4] = (uc2 >> 8) & 0xff;
codes[5] = uc2 & 0xff;
- rule = gl_uninorm_compose_lookup (codes, 6);
+ const struct composition_rule *rule = gl_uninorm_compose_lookup (codes, 6);
if (rule != NULL)
return rule->combined;
#endif
diff --git a/lib/uninorm/decompose-internal.c b/lib/uninorm/decompose-internal.c
index 215f9b16..1a5c0f21 100644
--- a/lib/uninorm/decompose-internal.c
+++ b/lib/uninorm/decompose-internal.c
@@ -1,5 +1,5 @@
/* Decomposition of Unicode strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uninorm/decompose-internal.h b/lib/uninorm/decompose-internal.h
index 10a88a1b..6273b4b0 100644
--- a/lib/uninorm/decompose-internal.h
+++ b/lib/uninorm/decompose-internal.h
@@ -1,5 +1,5 @@
/* Decomposition of Unicode strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uninorm/decomposing-form.c b/lib/uninorm/decomposing-form.c
index e8166d93..99c28586 100644
--- a/lib/uninorm/decomposing-form.c
+++ b/lib/uninorm/decomposing-form.c
@@ -1,5 +1,5 @@
/* Decomposing variant of a normalization form.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/decomposition-table.c b/lib/uninorm/decomposition-table.c
index 66e4aded..d397a443 100644
--- a/lib/uninorm/decomposition-table.c
+++ b/lib/uninorm/decomposition-table.c
@@ -1,5 +1,5 @@
/* Decomposition of Unicode characters.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uninorm/decomposition-table.h b/lib/uninorm/decomposition-table.h
index 5ff87c53..f93209e4 100644
--- a/lib/uninorm/decomposition-table.h
+++ b/lib/uninorm/decomposition-table.h
@@ -1,5 +1,5 @@
/* Decomposition of Unicode characters.
- Copyright (C) 2001-2003, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uninorm/decomposition.c b/lib/uninorm/decomposition.c
index b8deeed4..d850a612 100644
--- a/lib/uninorm/decomposition.c
+++ b/lib/uninorm/decomposition.c
@@ -1,5 +1,5 @@
/* Decomposition of Unicode characters.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -39,19 +39,15 @@ uc_decomposition (ucs4_t uc, int *decomp_tag, ucs4_t *decomposition)
"Hangul Syllable Decomposition", See also the clarification at
<https://www.unicode.org/versions/Unicode5.1.0/>, section
"Clarification of Hangul Jamo Handling". */
- unsigned int t;
-
uc -= 0xAC00;
- t = uc % 28;
+ unsigned int t = uc % 28;
*decomp_tag = UC_DECOMP_CANONICAL;
if (t == 0)
{
- unsigned int v, l;
-
uc = uc / 28;
- v = uc % 21;
- l = uc / 21;
+ unsigned int v = uc % 21;
+ unsigned int l = uc / 21;
decomposition[0] = 0x1100 + l;
decomposition[1] = 0x1161 + v;
@@ -64,11 +60,9 @@ uc_decomposition (ucs4_t uc, int *decomp_tag, ucs4_t *decomposition)
decomposition[1] = 0x11A7 + t;
return 2;
#else
- unsigned int v, l;
-
uc = uc / 28;
- v = uc % 21;
- l = uc / 21;
+ unsigned int v = uc % 21;
+ unsigned int l = uc / 21;
decomposition[0] = 0x1100 + l;
decomposition[1] = 0x1161 + v;
@@ -82,15 +76,11 @@ uc_decomposition (ucs4_t uc, int *decomp_tag, ucs4_t *decomposition)
unsigned short entry = decomp_index (uc);
if (entry != (unsigned short)(-1))
{
- const unsigned char *p;
- unsigned int element;
- unsigned int length;
-
- p = &gl_uninorm_decomp_chars_table[3 * (entry & 0x7FFF)];
- element = (p[0] << 16) | (p[1] << 8) | p[2];
+ const unsigned char *p = &gl_uninorm_decomp_chars_table[3 * (entry & 0x7FFF)];
+ unsigned int element = (p[0] << 16) | (p[1] << 8) | p[2];
/* The first element has 5 bits for the decomposition type. */
*decomp_tag = (element >> 18) & 0x1f;
- length = 1;
+ unsigned int length = 1;
for (;;)
{
/* Every element has an 18 bits wide Unicode code point. */
diff --git a/lib/uninorm/nfc.c b/lib/uninorm/nfc.c
index 156dfea8..42aa47fb 100644
--- a/lib/uninorm/nfc.c
+++ b/lib/uninorm/nfc.c
@@ -1,5 +1,5 @@
/* Unicode Normalization Form C.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uninorm/nfd.c b/lib/uninorm/nfd.c
index 83739df9..d9760fd1 100644
--- a/lib/uninorm/nfd.c
+++ b/lib/uninorm/nfd.c
@@ -1,5 +1,5 @@
/* Unicode Normalization Form D.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uninorm/nfkc.c b/lib/uninorm/nfkc.c
index c036535d..045b21ea 100644
--- a/lib/uninorm/nfkc.c
+++ b/lib/uninorm/nfkc.c
@@ -1,5 +1,5 @@
/* Unicode Normalization Form KC.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/nfkd.c b/lib/uninorm/nfkd.c
index 70df2fd8..65bbdde5 100644
--- a/lib/uninorm/nfkd.c
+++ b/lib/uninorm/nfkd.c
@@ -1,5 +1,5 @@
/* Unicode Normalization Form KD.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/normalize-internal.h b/lib/uninorm/normalize-internal.h
index 430eb1d7..0c2f32e2 100644
--- a/lib/uninorm/normalize-internal.h
+++ b/lib/uninorm/normalize-internal.h
@@ -1,5 +1,5 @@
/* Normalization of Unicode strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uninorm/u-normalize-internal.h b/lib/uninorm/u-normalize-internal.h
index f910f52f..826e1ec3 100644
--- a/lib/uninorm/u-normalize-internal.h
+++ b/lib/uninorm/u-normalize-internal.h
@@ -1,5 +1,5 @@
/* Decomposition and composition of Unicode strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
@@ -24,16 +24,7 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
/* The result being accumulated. */
UNIT *result;
- size_t length;
size_t allocated;
- /* The buffer for sorting. */
- #define SORTBUF_PREALLOCATED 64
- struct ucs4_with_ccc sortbuf_preallocated[2 * SORTBUF_PREALLOCATED];
- struct ucs4_with_ccc *sortbuf; /* array of size 2 * sortbuf_allocated */
- size_t sortbuf_allocated;
- size_t sortbuf_count;
-
- /* Initialize the accumulator. */
if (resultbuf == NULL)
{
result = NULL;
@@ -44,12 +35,15 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
result = resultbuf;
allocated = *lengthp;
}
- length = 0;
+ size_t length = 0;
- /* Initialize the buffer for sorting. */
- sortbuf = sortbuf_preallocated;
- sortbuf_allocated = SORTBUF_PREALLOCATED;
- sortbuf_count = 0;
+ /* The buffer for sorting. */
+ #define SORTBUF_PREALLOCATED 64
+ struct ucs4_with_ccc sortbuf_preallocated[2 * SORTBUF_PREALLOCATED];
+ struct ucs4_with_ccc *sortbuf = /* array of size 2 * sortbuf_allocated */
+ sortbuf_preallocated;
+ size_t sortbuf_allocated = SORTBUF_PREALLOCATED;
+ size_t sortbuf_count = 0;
{
const UNIT *s_end = s + n;
@@ -59,7 +53,6 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
int count;
ucs4_t decomposed[UC_DECOMPOSITION_MAX_LENGTH];
int decomposed_count;
- int i;
if (s < s_end)
{
@@ -73,46 +66,40 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
the size of the decomposition tables, because for example for
U+1FC1 the recursive canonical decomposition and the recursive
compatibility decomposition are different. */
- {
- int curr;
-
- for (curr = 0; curr < decomposed_count; )
- {
- /* Invariant: decomposed[0..curr-1] is fully decomposed, i.e.
- all elements are atomic. */
- ucs4_t curr_decomposed[UC_DECOMPOSITION_MAX_LENGTH];
- int curr_decomposed_count;
-
- curr_decomposed_count = decomposer (decomposed[curr], curr_decomposed);
- if (curr_decomposed_count >= 0)
- {
- /* Move curr_decomposed[0..curr_decomposed_count-1] over
- decomposed[curr], making room. It's not worth using
- memcpy() here, since the counts are so small. */
- int shift = curr_decomposed_count - 1;
-
- if (shift < 0)
- abort ();
- if (shift > 0)
- {
- int j;
+ for (int curr = 0; curr < decomposed_count; )
+ {
+ /* Invariant: decomposed[0..curr-1] is fully decomposed, i.e.
+ all elements are atomic. */
+ ucs4_t curr_decomposed[UC_DECOMPOSITION_MAX_LENGTH];
+ int curr_decomposed_count;
- decomposed_count += shift;
- if (decomposed_count > UC_DECOMPOSITION_MAX_LENGTH)
- abort ();
- for (j = decomposed_count - 1 - shift; j > curr; j--)
- decomposed[j + shift] = decomposed[j];
- }
- for (; shift >= 0; shift--)
- decomposed[curr + shift] = curr_decomposed[shift];
- }
- else
- {
- /* decomposed[curr] is atomic. */
- curr++;
- }
- }
- }
+ curr_decomposed_count = decomposer (decomposed[curr], curr_decomposed);
+ if (curr_decomposed_count >= 0)
+ {
+ /* Move curr_decomposed[0..curr_decomposed_count-1] over
+ decomposed[curr], making room. It's not worth using
+ memcpy() here, since the counts are so small. */
+ int shift = curr_decomposed_count - 1;
+
+ if (shift < 0)
+ abort ();
+ if (shift > 0)
+ {
+ decomposed_count += shift;
+ if (decomposed_count > UC_DECOMPOSITION_MAX_LENGTH)
+ abort ();
+ for (int j = decomposed_count - 1 - shift; j > curr; j--)
+ decomposed[j + shift] = decomposed[j];
+ }
+ for (; shift >= 0; shift--)
+ decomposed[curr + shift] = curr_decomposed[shift];
+ }
+ else
+ {
+ /* decomposed[curr] is atomic. */
+ curr++;
+ }
+ }
}
else
{
@@ -120,7 +107,7 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
decomposed_count = 0;
}
- i = 0;
+ int i = 0;
for (;;)
{
ucs4_t uc;
@@ -143,8 +130,6 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
if (ccc == 0)
{
- size_t j;
-
/* Apply the canonical ordering algorithm to the accumulated
sequence of characters. */
if (sortbuf_count > 1)
@@ -175,7 +160,7 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
(also a starter). */
if (sortbuf_count > 0 && sortbuf[0].ccc == 0)
{
- for (j = 1; j < sortbuf_count; )
+ for (size_t j = 1; j < sortbuf_count; )
{
if (sortbuf[j].ccc > sortbuf[j - 1].ccc)
{
@@ -183,11 +168,9 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
composer (sortbuf[0].code, sortbuf[j].code);
if (combined)
{
- size_t k;
-
sortbuf[0].code = combined;
/* sortbuf[0].ccc = 0, still valid. */
- for (k = j + 1; k < sortbuf_count; k++)
+ for (size_t k = j + 1; k < sortbuf_count; k++)
sortbuf[k - 1] = sortbuf[k];
sortbuf_count--;
continue;
@@ -212,7 +195,7 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
}
}
- for (j = 0; j < sortbuf_count; j++)
+ for (size_t j = 0; j < sortbuf_count; j++)
{
ucs4_t muc = sortbuf[j].code;
@@ -303,12 +286,10 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
/* Append (uc, ccc) to sortbuf. */
if (sortbuf_count == sortbuf_allocated)
{
- struct ucs4_with_ccc *new_sortbuf;
-
sortbuf_allocated = 2 * sortbuf_allocated;
if (sortbuf_allocated < sortbuf_count) /* integer overflow? */
abort ();
- new_sortbuf =
+ struct ucs4_with_ccc *new_sortbuf =
(struct ucs4_with_ccc *) malloc (2 * sortbuf_allocated * sizeof (struct ucs4_with_ccc));
if (new_sortbuf == NULL)
{
@@ -352,9 +333,7 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- UNIT *memory;
-
- memory = (UNIT *) realloc (result, length * sizeof (UNIT));
+ UNIT *memory = (UNIT *) realloc (result, length * sizeof (UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/uninorm/u-normcmp.h b/lib/uninorm/u-normcmp.h
index 12f89d2b..ca1b24ba 100644
--- a/lib/uninorm/u-normcmp.h
+++ b/lib/uninorm/u-normcmp.h
@@ -1,5 +1,5 @@
/* Normalization insensitive comparison of Unicode strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -27,24 +27,18 @@ int
FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2,
uninorm_t nf, int *resultp)
{
- UNIT buf1[2048 / sizeof (UNIT)];
- UNIT buf2[2048 / sizeof (UNIT)];
- UNIT *norms1;
- size_t norms1_length;
- UNIT *norms2;
- size_t norms2_length;
- int cmp;
-
/* Normalize S1. */
- norms1_length = sizeof (buf1) / sizeof (UNIT);
- norms1 = U_NORMALIZE (nf, s1, n1, buf1, &norms1_length);
+ UNIT buf1[2048 / sizeof (UNIT)];
+ size_t norms1_length = sizeof (buf1) / sizeof (UNIT);
+ UNIT *norms1 = U_NORMALIZE (nf, s1, n1, buf1, &norms1_length);
if (norms1 == NULL)
/* errno is set here. */
return -1;
/* Normalize S2. */
- norms2_length = sizeof (buf2) / sizeof (UNIT);
- norms2 = U_NORMALIZE (nf, s2, n2, buf2, &norms2_length);
+ UNIT buf2[2048 / sizeof (UNIT)];
+ size_t norms2_length = sizeof (buf2) / sizeof (UNIT);
+ UNIT *norms2 = U_NORMALIZE (nf, s2, n2, buf2, &norms2_length);
if (norms2 == NULL)
{
if (norms1 != buf1)
@@ -57,7 +51,7 @@ FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2,
}
/* Compare the normalized strings. */
- cmp = U_CMP2 (norms1, norms1_length, norms2, norms2_length);
+ int cmp = U_CMP2 (norms1, norms1_length, norms2, norms2_length);
if (cmp > 0)
cmp = 1;
else if (cmp < 0)
diff --git a/lib/uninorm/u-normcoll.h b/lib/uninorm/u-normcoll.h
index 948462c0..fd2dd71f 100644
--- a/lib/uninorm/u-normcoll.h
+++ b/lib/uninorm/u-normcoll.h
@@ -1,5 +1,5 @@
/* Locale dependent, normalization insensitive comparison of Unicode strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -27,24 +27,18 @@ int
FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2,
uninorm_t nf, int *resultp)
{
- char buf1[2048];
- char buf2[2048];
- char *transformed1;
- size_t transformed1_length;
- char *transformed2;
- size_t transformed2_length;
- int cmp;
-
/* Normalize and transform S1. */
- transformed1_length = sizeof (buf1);
- transformed1 = U_NORMXFRM (s1, n1, nf, buf1, &transformed1_length);
+ char buf1[2048];
+ size_t transformed1_length = sizeof (buf1);
+ char *transformed1 = U_NORMXFRM (s1, n1, nf, buf1, &transformed1_length);
if (transformed1 == NULL)
/* errno is set here. */
return -1;
/* Normalize and transform S2. */
- transformed2_length = sizeof (buf2);
- transformed2 = U_NORMXFRM (s2, n2, nf, buf2, &transformed2_length);
+ char buf2[2048];
+ size_t transformed2_length = sizeof (buf2);
+ char *transformed2 = U_NORMXFRM (s2, n2, nf, buf2, &transformed2_length);
if (transformed2 == NULL)
{
if (transformed1 != buf1)
@@ -57,8 +51,8 @@ FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2,
}
/* Compare the transformed strings. */
- cmp = memcmp2 (transformed1, transformed1_length,
- transformed2, transformed2_length);
+ int cmp = memcmp2 (transformed1, transformed1_length,
+ transformed2, transformed2_length);
if (cmp < 0)
cmp = -1;
else if (cmp > 0)
diff --git a/lib/uninorm/u-normxfrm.h b/lib/uninorm/u-normxfrm.h
index 92bf051e..deee268a 100644
--- a/lib/uninorm/u-normxfrm.h
+++ b/lib/uninorm/u-normxfrm.h
@@ -1,5 +1,5 @@
/* Locale dependent transformation for comparison of Unicode strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -27,24 +27,18 @@ char *
FUNC (const UNIT *s, size_t n, uninorm_t nf,
char *resultbuf, size_t *lengthp)
{
- UNIT normsbuf[2048 / sizeof (UNIT)];
- UNIT *norms;
- size_t norms_length;
- char convsbuf[2048];
- char *convs;
- size_t convs_length;
- char *result;
-
/* Normalize the Unicode string. */
- norms_length = sizeof (normsbuf) / sizeof (UNIT);
- norms = U_NORMALIZE (nf, s, n, normsbuf, &norms_length);
+ UNIT normsbuf[2048 / sizeof (UNIT)];
+ size_t norms_length = sizeof (normsbuf) / sizeof (UNIT);
+ UNIT *norms = U_NORMALIZE (nf, s, n, normsbuf, &norms_length);
if (norms == NULL)
/* errno is set here. */
return NULL;
/* Convert it to locale encoding. */
- convs_length = sizeof (convsbuf) - 1;
- convs = U_CONV_TO_ENCODING (locale_charset (),
+ char convsbuf[2048];
+ size_t convs_length = sizeof (convsbuf) - 1;
+ char *convs = U_CONV_TO_ENCODING (locale_charset (),
iconveh_error,
norms, norms_length,
NULL,
@@ -77,7 +71,7 @@ FUNC (const UNIT *s, size_t n, uninorm_t nf,
}
/* Apply locale dependent transformations for comparison. */
- result = amemxfrm (convs, convs_length, resultbuf, lengthp);
+ char *result = amemxfrm (convs, convs_length, resultbuf, lengthp);
if (result == NULL)
{
if (convs != convsbuf)
diff --git a/lib/uninorm/u16-normalize.c b/lib/uninorm/u16-normalize.c
index 13651747..60dc575a 100644
--- a/lib/uninorm/u16-normalize.c
+++ b/lib/uninorm/u16-normalize.c
@@ -1,5 +1,5 @@
/* Normalization of UTF-16 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u16-normcmp.c b/lib/uninorm/u16-normcmp.c
index 81c274b0..d715a3f8 100644
--- a/lib/uninorm/u16-normcmp.c
+++ b/lib/uninorm/u16-normcmp.c
@@ -1,5 +1,5 @@
/* Normalization insensitive comparison of UTF-16 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u16-normcoll.c b/lib/uninorm/u16-normcoll.c
index af686bd6..9573c7d5 100644
--- a/lib/uninorm/u16-normcoll.c
+++ b/lib/uninorm/u16-normcoll.c
@@ -1,5 +1,5 @@
/* Locale dependent, normalization insensitive comparison of UTF-16 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u16-normxfrm.c b/lib/uninorm/u16-normxfrm.c
index 5378cc51..8230c617 100644
--- a/lib/uninorm/u16-normxfrm.c
+++ b/lib/uninorm/u16-normxfrm.c
@@ -1,5 +1,5 @@
/* Locale dependent transformation for comparison of UTF-16 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u32-normalize.c b/lib/uninorm/u32-normalize.c
index 60f05233..e2312576 100644
--- a/lib/uninorm/u32-normalize.c
+++ b/lib/uninorm/u32-normalize.c
@@ -1,5 +1,5 @@
/* Normalization of UTF-32 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uninorm/u32-normcmp.c b/lib/uninorm/u32-normcmp.c
index 108ec242..570fae4c 100644
--- a/lib/uninorm/u32-normcmp.c
+++ b/lib/uninorm/u32-normcmp.c
@@ -1,5 +1,5 @@
/* Normalization insensitive comparison of UTF-32 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u32-normcoll.c b/lib/uninorm/u32-normcoll.c
index f2beb177..4be11ba7 100644
--- a/lib/uninorm/u32-normcoll.c
+++ b/lib/uninorm/u32-normcoll.c
@@ -1,5 +1,5 @@
/* Locale dependent, normalization insensitive comparison of UTF-32 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u32-normxfrm.c b/lib/uninorm/u32-normxfrm.c
index 88471a15..a434e9fc 100644
--- a/lib/uninorm/u32-normxfrm.c
+++ b/lib/uninorm/u32-normxfrm.c
@@ -1,5 +1,5 @@
/* Locale dependent transformation for comparison of UTF-32 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u8-normalize.c b/lib/uninorm/u8-normalize.c
index bcc97a33..aea9e2b5 100644
--- a/lib/uninorm/u8-normalize.c
+++ b/lib/uninorm/u8-normalize.c
@@ -1,5 +1,5 @@
/* Normalization of UTF-8 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u8-normcmp.c b/lib/uninorm/u8-normcmp.c
index aabef0e5..c77bf2fc 100644
--- a/lib/uninorm/u8-normcmp.c
+++ b/lib/uninorm/u8-normcmp.c
@@ -1,5 +1,5 @@
/* Normalization insensitive comparison of UTF-8 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u8-normcoll.c b/lib/uninorm/u8-normcoll.c
index ce919f5f..31439dce 100644
--- a/lib/uninorm/u8-normcoll.c
+++ b/lib/uninorm/u8-normcoll.c
@@ -1,5 +1,5 @@
/* Locale dependent, normalization insensitive comparison of UTF-8 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/u8-normxfrm.c b/lib/uninorm/u8-normxfrm.c
index aec7f2a5..7a4cc833 100644
--- a/lib/uninorm/u8-normxfrm.c
+++ b/lib/uninorm/u8-normxfrm.c
@@ -1,5 +1,5 @@
/* Locale dependent transformation for comparison of UTF-8 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uninorm/uninorm-filter.c b/lib/uninorm/uninorm-filter.c
index 542013d6..c343a16a 100644
--- a/lib/uninorm/uninorm-filter.c
+++ b/lib/uninorm/uninorm-filter.c
@@ -1,5 +1,5 @@
/* Stream-based normalization of Unicode strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -95,55 +95,46 @@ uninorm_filter_write (struct uninorm_filter *filter, ucs4_t uc_arg)
the size of the decomposition tables, because for example for
U+1FC1 the recursive canonical decomposition and the recursive
compatibility decomposition are different. */
- {
- int curr;
-
- for (curr = 0; curr < decomposed_count; )
- {
- /* Invariant: decomposed[0..curr-1] is fully decomposed, i.e.
- all elements are atomic. */
- ucs4_t curr_decomposed[UC_DECOMPOSITION_MAX_LENGTH];
- int curr_decomposed_count;
-
- curr_decomposed_count =
- filter->decomposer (decomposed[curr], curr_decomposed);
- if (curr_decomposed_count >= 0)
- {
- /* Move curr_decomposed[0..curr_decomposed_count-1] over
- decomposed[curr], making room. It's not worth using
- memcpy() here, since the counts are so small. */
- int shift = curr_decomposed_count - 1;
-
- if (shift < 0)
- abort ();
- if (shift > 0)
- {
- int j;
-
- decomposed_count += shift;
- if (decomposed_count > UC_DECOMPOSITION_MAX_LENGTH)
- abort ();
- for (j = decomposed_count - 1 - shift; j > curr; j--)
- decomposed[j + shift] = decomposed[j];
- }
- for (; shift >= 0; shift--)
- decomposed[curr + shift] = curr_decomposed[shift];
- }
- else
- {
- /* decomposed[curr] is atomic. */
- curr++;
- }
- }
- }
+ for (int curr = 0; curr < decomposed_count; )
+ {
+ /* Invariant: decomposed[0..curr-1] is fully decomposed, i.e.
+ all elements are atomic. */
+ ucs4_t curr_decomposed[UC_DECOMPOSITION_MAX_LENGTH];
+ int curr_decomposed_count =
+ filter->decomposer (decomposed[curr], curr_decomposed);
+ if (curr_decomposed_count >= 0)
+ {
+ /* Move curr_decomposed[0..curr_decomposed_count-1] over
+ decomposed[curr], making room. It's not worth using
+ memcpy() here, since the counts are so small. */
+ int shift = curr_decomposed_count - 1;
+
+ if (shift < 0)
+ abort ();
+ if (shift > 0)
+ {
+ decomposed_count += shift;
+ if (decomposed_count > UC_DECOMPOSITION_MAX_LENGTH)
+ abort ();
+ for (int j = decomposed_count - 1 - shift; j > curr; j--)
+ decomposed[j + shift] = decomposed[j];
+ }
+ for (; shift >= 0; shift--)
+ decomposed[curr + shift] = curr_decomposed[shift];
+ }
+ else
+ {
+ /* decomposed[curr] is atomic. */
+ curr++;
+ }
+ }
{
/* Cache sortbuf and sortbuf_count in local register variables. */
struct ucs4_with_ccc *sortbuf = filter->sortbuf;
size_t sortbuf_count = filter->sortbuf_count;
- int i;
- for (i = 0; i < decomposed_count; i++)
+ for (int i = 0; i < decomposed_count; i++)
{
/* Fetch the next character from the decomposition. */
ucs4_t uc = decomposed[i];
@@ -151,8 +142,6 @@ uninorm_filter_write (struct uninorm_filter *filter, ucs4_t uc_arg)
if (ccc == 0)
{
- size_t j;
-
/* Apply the canonical ordering algorithm to the accumulated
sequence of characters. */
if (sortbuf_count > 1)
@@ -183,7 +172,7 @@ uninorm_filter_write (struct uninorm_filter *filter, ucs4_t uc_arg)
(also a starter). */
if (sortbuf_count > 0 && sortbuf[0].ccc == 0)
{
- for (j = 1; j < sortbuf_count; )
+ for (size_t j = 1; j < sortbuf_count; )
{
if (sortbuf[j].ccc > sortbuf[j - 1].ccc)
{
@@ -191,11 +180,9 @@ uninorm_filter_write (struct uninorm_filter *filter, ucs4_t uc_arg)
filter->composer (sortbuf[0].code, sortbuf[j].code);
if (combined)
{
- size_t k;
-
sortbuf[0].code = combined;
/* sortbuf[0].ccc = 0, still valid. */
- for (k = j + 1; k < sortbuf_count; k++)
+ for (size_t k = j + 1; k < sortbuf_count; k++)
sortbuf[k - 1] = sortbuf[k];
sortbuf_count--;
continue;
@@ -220,7 +207,7 @@ uninorm_filter_write (struct uninorm_filter *filter, ucs4_t uc_arg)
}
}
- for (j = 0; j < sortbuf_count; j++)
+ for (size_t j = 0; j < sortbuf_count; j++)
{
ucs4_t muc = sortbuf[j].code;
@@ -241,12 +228,10 @@ uninorm_filter_write (struct uninorm_filter *filter, ucs4_t uc_arg)
/* Append (uc, ccc) to sortbuf. */
if (sortbuf_count == filter->sortbuf_allocated)
{
- struct ucs4_with_ccc *new_sortbuf;
-
filter->sortbuf_allocated = 2 * filter->sortbuf_allocated;
if (filter->sortbuf_allocated < sortbuf_count) /* integer overflow? */
abort ();
- new_sortbuf =
+ struct ucs4_with_ccc *new_sortbuf =
(struct ucs4_with_ccc *)
malloc (2 * filter->sortbuf_allocated * sizeof (struct ucs4_with_ccc));
if (new_sortbuf == NULL)
@@ -286,7 +271,6 @@ uninorm_filter_flush (struct uninorm_filter *filter)
/* Cache sortbuf and sortbuf_count in local register variables. */
struct ucs4_with_ccc * const sortbuf = filter->sortbuf;
size_t sortbuf_count = filter->sortbuf_count;
- size_t j;
/* Apply the canonical ordering algorithm to the accumulated
sequence of characters. */
@@ -318,7 +302,7 @@ uninorm_filter_flush (struct uninorm_filter *filter)
(also a starter). */
if (sortbuf_count > 0 && sortbuf[0].ccc == 0)
{
- for (j = 1; j < sortbuf_count; )
+ for (size_t j = 1; j < sortbuf_count; )
{
if (sortbuf[j].ccc > sortbuf[j - 1].ccc)
{
@@ -326,11 +310,9 @@ uninorm_filter_flush (struct uninorm_filter *filter)
filter->composer (sortbuf[0].code, sortbuf[j].code);
if (combined)
{
- size_t k;
-
sortbuf[0].code = combined;
/* sortbuf[0].ccc = 0, still valid. */
- for (k = j + 1; k < sortbuf_count; k++)
+ for (size_t k = j + 1; k < sortbuf_count; k++)
sortbuf[k - 1] = sortbuf[k];
sortbuf_count--;
continue;
@@ -341,7 +323,7 @@ uninorm_filter_flush (struct uninorm_filter *filter)
}
}
- for (j = 0; j < sortbuf_count; j++)
+ for (size_t j = 0; j < sortbuf_count; j++)
{
ucs4_t muc = sortbuf[j].code;
diff --git a/lib/unistd.c b/lib/unistd.c
index e6625589..414dce9a 100644
--- a/lib/unistd.c
+++ b/lib/unistd.c
@@ -1,6 +1,6 @@
/* Inline functions for <unistd.h>.
- Copyright (C) 2012-2025 Free Software Foundation, Inc.
+ Copyright (C) 2012-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/unistd.in.h b/lib/unistd.in.h
index 5b583824..f7e4450c 100644
--- a/lib/unistd.in.h
+++ b/lib/unistd.in.h
@@ -1,5 +1,5 @@
/* Substitute for and wrapper around <unistd.h>.
- Copyright (C) 2003-2025 Free Software Foundation, Inc.
+ Copyright (C) 2003-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -302,7 +302,6 @@ _GL_CXXALIAS_SYS (access, int, (const char *file, int mode));
# endif
_GL_CXXALIASWARN (access);
#elif defined GNULIB_POSIXCHECK
-# undef access
# if HAVE_RAW_DECL_ACCESS
/* The access() function is a security risk. */
_GL_WARN_ON_USE (access, "access does not always support X_OK - "
@@ -339,7 +338,6 @@ _GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1)));
# endif
_GL_CXXALIASWARN (chdir);
#elif defined GNULIB_POSIXCHECK
-# undef chdir
# if HAVE_RAW_DECL_CHDIR
_GL_WARN_ON_USE (chdir, "chdir is not always in <unistd.h> - "
"use gnulib module chdir for portability");
@@ -384,7 +382,6 @@ _GL_CXXALIAS_SYS (chown, int, (const char *file, uid_t uid, gid_t gid));
# endif
_GL_CXXALIASWARN (chown);
#elif defined GNULIB_POSIXCHECK
-# undef chown
# if HAVE_RAW_DECL_CHOWN
_GL_WARN_ON_USE (chown, "chown fails to follow symlinks on some systems and "
"doesn't treat a uid or gid of -1 on some systems - "
@@ -418,7 +415,6 @@ _GL_CXXALIASWARN (close);
# define close close_used_without_requesting_gnulib_module_close
# endif
#elif defined GNULIB_POSIXCHECK
-# undef close
/* Assume close is always declared. */
_GL_WARN_ON_USE (close, "close does not portably work on sockets - "
"use gnulib module close for portability");
@@ -465,7 +461,6 @@ _GL_CXXALIAS_SYS (copy_file_range, ssize_t, (int ifd, off_t *ipos,
_GL_CXXALIASWARN (copy_file_range);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef copy_file_range
# if HAVE_RAW_DECL_COPY_FILE_RANGE
_GL_WARN_ON_USE (copy_file_range,
"copy_file_range is unportable - "
@@ -492,7 +487,6 @@ _GL_CXXALIAS_SYS (dup, int, (int oldfd));
# endif
_GL_CXXALIASWARN (dup);
#elif defined GNULIB_POSIXCHECK
-# undef dup
# if HAVE_RAW_DECL_DUP
_GL_WARN_ON_USE (dup, "dup is unportable - "
"use gnulib module dup for portability");
@@ -537,7 +531,6 @@ _GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd));
# endif
_GL_CXXALIASWARN (dup2);
#elif defined GNULIB_POSIXCHECK
-# undef dup2
# if HAVE_RAW_DECL_DUP2
_GL_WARN_ON_USE (dup2, "dup2 is unportable - "
"use gnulib module dup2 for portability");
@@ -585,7 +578,6 @@ _GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags));
_GL_CXXALIASWARN (dup3);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef dup3
# if HAVE_RAW_DECL_DUP3
_GL_WARN_ON_USE (dup3, "dup3 is unportable - "
"use gnulib module dup3 for portability");
@@ -653,7 +645,6 @@ _GL_WARN_ON_USE (euidaccess, "the euidaccess function is a security risk - "
"use the gnulib module faccessat instead");
# endif
#elif defined GNULIB_POSIXCHECK
-# undef euidaccess
# if HAVE_RAW_DECL_EUIDACCESS
_GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - "
"use gnulib module euidaccess for portability");
@@ -675,7 +666,6 @@ _GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...));
# endif
_GL_CXXALIASWARN (execl);
#elif defined GNULIB_POSIXCHECK
-# undef execl
# if HAVE_RAW_DECL_EXECL
_GL_WARN_ON_USE (execl, "execl behaves very differently on mingw - "
"use gnulib module execl for portability");
@@ -710,7 +700,6 @@ _GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...));
# endif
_GL_CXXALIASWARN (execle);
#elif defined GNULIB_POSIXCHECK
-# undef execle
# if HAVE_RAW_DECL_EXECLE
_GL_WARN_ON_USE (execle, "execle behaves very differently on mingw - "
"use gnulib module execle for portability");
@@ -746,7 +735,6 @@ _GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...));
# endif
_GL_CXXALIASWARN (execlp);
#elif defined GNULIB_POSIXCHECK
-# undef execlp
# if HAVE_RAW_DECL_EXECLP
_GL_WARN_ON_USE (execlp, "execlp behaves very differently on mingw - "
"use gnulib module execlp for portability");
@@ -783,7 +771,6 @@ _GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv));
# endif
_GL_CXXALIASWARN (execv);
#elif defined GNULIB_POSIXCHECK
-# undef execv
# if HAVE_RAW_DECL_EXECV
_GL_WARN_ON_USE (execv, "execv behaves very differently on mingw - "
"use gnulib module execv for portability");
@@ -822,7 +809,6 @@ _GL_CXXALIAS_SYS (execve, int,
# endif
_GL_CXXALIASWARN (execve);
#elif defined GNULIB_POSIXCHECK
-# undef execve
# if HAVE_RAW_DECL_EXECVE
_GL_WARN_ON_USE (execve, "execve behaves very differently on mingw - "
"use gnulib module execve for portability");
@@ -860,7 +846,6 @@ _GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv));
# endif
_GL_CXXALIASWARN (execvp);
#elif defined GNULIB_POSIXCHECK
-# undef execvp
# if HAVE_RAW_DECL_EXECVP
_GL_WARN_ON_USE (execvp, "execvp behaves very differently on mingw - "
"use gnulib module execvp for portability");
@@ -906,7 +891,6 @@ _GL_CXXALIAS_SYS (execvpe, int,
_GL_CXXALIASWARN (execvpe);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef execvpe
# if HAVE_RAW_DECL_EXECVPE
_GL_WARN_ON_USE (execvpe, "execvpe behaves very differently on mingw - "
"use gnulib module execvpe for portability");
@@ -963,7 +947,6 @@ _GL_CXXALIAS_SYS (faccessat, int,
_GL_CXXALIASWARN (faccessat);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef faccessat
# if HAVE_RAW_DECL_FACCESSAT
_GL_WARN_ON_USE (faccessat, "faccessat is not portable - "
"use gnulib module faccessat for portability");
@@ -1000,7 +983,6 @@ _GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd);
_GL_EXTERN_C const char *_gl_directory_name (int fd);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef fchdir
# if HAVE_RAW_DECL_FCHDIR
_GL_WARN_ON_USE (fchdir, "fchdir is unportable - "
"use gnulib module fchdir for portability");
@@ -1030,7 +1012,6 @@ _GL_CXXALIAS_SYS (fchownat, int, (int fd, char const *file,
# endif
_GL_CXXALIASWARN (fchownat);
#elif defined GNULIB_POSIXCHECK
-# undef fchownat
# if HAVE_RAW_DECL_FCHOWNAT
_GL_WARN_ON_USE (fchownat, "fchownat is not portable - "
"use gnulib module fchownat for portability");
@@ -1060,7 +1041,6 @@ _GL_CXXALIAS_SYS (fdatasync, int, (int fd));
_GL_CXXALIASWARN (fdatasync);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef fdatasync
# if HAVE_RAW_DECL_FDATASYNC
_GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - "
"use gnulib module fdatasync for portability");
@@ -1079,7 +1059,6 @@ _GL_FUNCDECL_SYS (fsync, int, (int fd), );
_GL_CXXALIAS_SYS (fsync, int, (int fd));
_GL_CXXALIASWARN (fsync);
#elif defined GNULIB_POSIXCHECK
-# undef fsync
# if HAVE_RAW_DECL_FSYNC
_GL_WARN_ON_USE (fsync, "fsync is unportable - "
"use gnulib module fsync for portability");
@@ -1113,7 +1092,6 @@ _GL_CXXALIAS_SYS (ftruncate, int,
_GL_CXXALIASWARN (ftruncate);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef ftruncate
# if HAVE_RAW_DECL_FTRUNCATE
_GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - "
"use gnulib module ftruncate for portability");
@@ -1152,7 +1130,6 @@ _GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size));
# endif
_GL_CXXALIASWARN (getcwd);
#elif defined GNULIB_POSIXCHECK
-# undef getcwd
# if HAVE_RAW_DECL_GETCWD
_GL_WARN_ON_USE (getcwd, "getcwd is unportable - "
"use gnulib module getcwd for portability");
@@ -1210,7 +1187,6 @@ _GL_CXXALIAS_SYS (getdomainname, int,
_GL_CXXALIASWARN (getdomainname);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getdomainname
# if HAVE_RAW_DECL_GETDOMAINNAME
_GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - "
"use gnulib module getdomainname for portability");
@@ -1238,7 +1214,6 @@ _GL_CXXALIAS_SYS_CAST (getdtablesize, int, (void));
# endif
_GL_CXXALIASWARN (getdtablesize);
#elif defined GNULIB_POSIXCHECK
-# undef getdtablesize
# if HAVE_RAW_DECL_GETDTABLESIZE
_GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - "
"use gnulib module getdtablesize for portability");
@@ -1269,7 +1244,6 @@ _GL_CXXALIAS_SYS (getentropy, int,
_GL_CXXALIASWARN (getentropy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getentropy
# if HAVE_RAW_DECL_GETENTROPY
_GL_WARN_ON_USE (getentropy, "getentropy is unportable - "
"use gnulib module getentropy for portability");
@@ -1302,7 +1276,6 @@ _GL_CXXALIAS_SYS (getgroups, int,
# endif
_GL_CXXALIASWARN (getgroups);
#elif defined GNULIB_POSIXCHECK
-# undef getgroups
# if HAVE_RAW_DECL_GETGROUPS
_GL_WARN_ON_USE (getgroups, "getgroups is unportable - "
"use gnulib module getgroups for portability");
@@ -1342,7 +1315,6 @@ _GL_CXXALIASWARN (gethostname);
# define gethostname gethostname_used_without_requesting_gnulib_module_gethostname
# endif
#elif defined GNULIB_POSIXCHECK
-# undef gethostname
# if HAVE_RAW_DECL_GETHOSTNAME
_GL_WARN_ON_USE (gethostname, "gethostname is unportable - "
"use gnulib module gethostname for portability");
@@ -1377,7 +1349,6 @@ _GL_CXXALIAS_SYS (getlogin, char *, (void));
_GL_CXXALIASWARN (getlogin);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getlogin
# if HAVE_RAW_DECL_GETLOGIN
_GL_WARN_ON_USE (getlogin, "getlogin is unportable - "
"use gnulib module getlogin for portability");
@@ -1420,7 +1391,6 @@ _GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size));
_GL_CXXALIASWARN (getlogin_r);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getlogin_r
# if HAVE_RAW_DECL_GETLOGIN_R
_GL_WARN_ON_USE (getlogin_r, "getlogin_r is unportable - "
"use gnulib module getlogin_r for portability");
@@ -1507,7 +1477,6 @@ _GL_CXXALIAS_SYS_CAST (getpagesize, int, (void));
_GL_CXXALIASWARN (getpagesize);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getpagesize
# if HAVE_RAW_DECL_GETPAGESIZE
_GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - "
"use gnulib module getpagesize for portability");
@@ -1538,7 +1507,6 @@ _GL_CXXALIAS_SYS (getpass, char *, (const char *prompt));
# endif
_GL_CXXALIASWARN (getpass);
#elif defined GNULIB_POSIXCHECK
-# undef getpass
# if HAVE_RAW_DECL_GETPASS
_GL_WARN_ON_USE (getpass, "getpass is unportable - "
"use gnulib module getpass or getpass-gnu for portability");
@@ -1581,7 +1549,6 @@ _GL_CXXALIAS_SYS (getusershell, char *, (void));
# endif
_GL_CXXALIASWARN (getusershell);
#elif defined GNULIB_POSIXCHECK
-# undef getusershell
# if HAVE_RAW_DECL_GETUSERSHELL
_GL_WARN_ON_USE (getusershell, "getusershell is unportable - "
"use gnulib module getusershell for portability");
@@ -1605,7 +1572,6 @@ _GL_CXXALIAS_SYS (setusershell, void, (void));
# endif
_GL_CXXALIASWARN (setusershell);
#elif defined GNULIB_POSIXCHECK
-# undef setusershell
# if HAVE_RAW_DECL_SETUSERSHELL
_GL_WARN_ON_USE (setusershell, "setusershell is unportable - "
"use gnulib module getusershell for portability");
@@ -1630,7 +1596,6 @@ _GL_CXXALIAS_SYS (endusershell, void, (void));
# endif
_GL_CXXALIASWARN (endusershell);
#elif defined GNULIB_POSIXCHECK
-# undef endusershell
# if HAVE_RAW_DECL_ENDUSERSHELL
_GL_WARN_ON_USE (endusershell, "endusershell is unportable - "
"use gnulib module getusershell for portability");
@@ -1646,7 +1611,6 @@ _GL_FUNCDECL_SYS (group_member, int, (gid_t gid), );
_GL_CXXALIAS_SYS (group_member, int, (gid_t gid));
_GL_CXXALIASWARN (group_member);
#elif defined GNULIB_POSIXCHECK
-# undef group_member
# if HAVE_RAW_DECL_GROUP_MEMBER
_GL_WARN_ON_USE (group_member, "group_member is unportable - "
"use gnulib module group-member for portability");
@@ -1674,7 +1638,6 @@ _GL_CXXALIAS_SYS (isatty, int, (int fd));
# endif
_GL_CXXALIASWARN (isatty);
#elif defined GNULIB_POSIXCHECK
-# undef isatty
# if HAVE_RAW_DECL_ISATTY
_GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - "
"use gnulib module isatty for portability");
@@ -1719,7 +1682,6 @@ _GL_CXXALIAS_SYS (lchown, int, (char const *file, uid_t owner, gid_t group));
# endif
_GL_CXXALIASWARN (lchown);
#elif defined GNULIB_POSIXCHECK
-# undef lchown
# if HAVE_RAW_DECL_LCHOWN
_GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - "
"use gnulib module lchown for portability");
@@ -1748,7 +1710,6 @@ _GL_CXXALIAS_SYS (link, int, (const char *path1, const char *path2));
# endif
_GL_CXXALIASWARN (link);
#elif defined GNULIB_POSIXCHECK
-# undef link
# if HAVE_RAW_DECL_LINK
_GL_WARN_ON_USE (link, "link is unportable - "
"use gnulib module link for portability");
@@ -1787,7 +1748,6 @@ _GL_CXXALIAS_SYS (linkat, int,
_GL_CXXALIASWARN (linkat);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef linkat
# if HAVE_RAW_DECL_LINKAT
_GL_WARN_ON_USE (linkat, "linkat is unportable - "
"use gnulib module linkat for portability");
@@ -1817,7 +1777,6 @@ _GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence));
# endif
_GL_CXXALIASWARN (lseek);
#elif defined GNULIB_POSIXCHECK
-# undef lseek
# if HAVE_RAW_DECL_LSEEK
_GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some "
"systems - use gnulib module lseek for portability");
@@ -1850,7 +1809,6 @@ _GL_FUNCDECL_SYS (pipe, int, (int fd[2]),
_GL_CXXALIAS_SYS (pipe, int, (int fd[2]));
_GL_CXXALIASWARN (pipe);
#elif defined GNULIB_POSIXCHECK
-# undef pipe
# if HAVE_RAW_DECL_PIPE
_GL_WARN_ON_USE (pipe, "pipe is unportable - "
"use gnulib module pipe-posix for portability");
@@ -1884,7 +1842,6 @@ _GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags));
_GL_CXXALIASWARN (pipe2);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pipe2
# if HAVE_RAW_DECL_PIPE2
_GL_WARN_ON_USE (pipe2, "pipe2 is unportable - "
"use gnulib module pipe2 for portability");
@@ -1921,7 +1878,6 @@ _GL_CXXALIAS_SYS (pread, ssize_t,
_GL_CXXALIASWARN (pread);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pread
# if HAVE_RAW_DECL_PREAD
_GL_WARN_ON_USE (pread, "pread is unportable - "
"use gnulib module pread for portability");
@@ -1958,7 +1914,6 @@ _GL_CXXALIAS_SYS (pwrite, ssize_t,
_GL_CXXALIASWARN (pwrite);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pwrite
# if HAVE_RAW_DECL_PWRITE
_GL_WARN_ON_USE (pwrite, "pwrite is unportable - "
"use gnulib module pwrite for portability");
@@ -2036,7 +1991,6 @@ _GL_CXXALIAS_SYS (readlink, ssize_t,
# endif
_GL_CXXALIASWARN (readlink);
#elif defined GNULIB_POSIXCHECK
-# undef readlink
# if HAVE_RAW_DECL_READLINK
_GL_WARN_ON_USE (readlink, "readlink is unportable - "
"use gnulib module readlink for portability");
@@ -2071,7 +2025,6 @@ _GL_CXXALIAS_SYS (readlinkat, ssize_t,
_GL_CXXALIASWARN (readlinkat);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef readlinkat
# if HAVE_RAW_DECL_READLINKAT
_GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - "
"use gnulib module readlinkat for portability");
@@ -2098,7 +2051,6 @@ _GL_CXXALIAS_SYS (rmdir, int, (char const *name));
# endif
_GL_CXXALIASWARN (rmdir);
#elif defined GNULIB_POSIXCHECK
-# undef rmdir
# if HAVE_RAW_DECL_RMDIR
_GL_WARN_ON_USE (rmdir, "rmdir is unportable - "
"use gnulib module rmdir for portability");
@@ -2155,7 +2107,6 @@ _GL_CXXALIAS_SYS_CAST (sethostname, int,
_GL_CXXALIASWARN (sethostname);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef sethostname
# if HAVE_RAW_DECL_SETHOSTNAME
_GL_WARN_ON_USE (sethostname, "sethostname is unportable - "
"use gnulib module sethostname for portability");
@@ -2183,7 +2134,6 @@ _GL_CXXALIAS_SYS (sleep, unsigned int, (unsigned int n));
# endif
_GL_CXXALIASWARN (sleep);
#elif defined GNULIB_POSIXCHECK
-# undef sleep
# if HAVE_RAW_DECL_SLEEP
_GL_WARN_ON_USE (sleep, "sleep is unportable - "
"use gnulib module sleep for portability");
@@ -2238,7 +2188,6 @@ _GL_CXXALIAS_SYS (symlink, int,
# endif
_GL_CXXALIASWARN (symlink);
#elif defined GNULIB_POSIXCHECK
-# undef symlink
# if HAVE_RAW_DECL_SYMLINK
_GL_WARN_ON_USE (symlink, "symlink is not portable - "
"use gnulib module symlink for portability");
@@ -2270,7 +2219,6 @@ _GL_CXXALIAS_SYS (symlinkat, int,
_GL_CXXALIASWARN (symlinkat);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef symlinkat
# if HAVE_RAW_DECL_SYMLINKAT
_GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - "
"use gnulib module symlinkat for portability");
@@ -2302,7 +2250,6 @@ _GL_CXXALIAS_SYS (truncate, int, (const char *filename, off_t length));
_GL_CXXALIASWARN (truncate);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef truncate
# if HAVE_RAW_DECL_TRUNCATE
_GL_WARN_ON_USE (truncate, "truncate is unportable - "
"use gnulib module truncate for portability");
@@ -2336,7 +2283,6 @@ _GL_CXXALIAS_SYS (ttyname_r, int,
_GL_CXXALIASWARN (ttyname_r);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef ttyname_r
# if HAVE_RAW_DECL_TTYNAME_R
_GL_WARN_ON_USE (ttyname_r, "ttyname_r is not portable - "
"use gnulib module ttyname_r for portability");
@@ -2363,7 +2309,6 @@ _GL_CXXALIAS_SYS (unlink, int, (char const *file));
# endif
_GL_CXXALIASWARN (unlink);
#elif defined GNULIB_POSIXCHECK
-# undef unlink
# if HAVE_RAW_DECL_UNLINK
_GL_WARN_ON_USE (unlink, "unlink is not portable - "
"use gnulib module unlink for portability");
@@ -2403,7 +2348,6 @@ _GL_CXXALIAS_SYS (unlinkat, int, (int fd, char const *file, int flag));
# endif
_GL_CXXALIASWARN (unlinkat);
#elif defined GNULIB_POSIXCHECK
-# undef unlinkat
# if HAVE_RAW_DECL_UNLINKAT
_GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - "
"use gnulib module unlinkat for portability");
@@ -2433,7 +2377,6 @@ _GL_CXXALIAS_SYS_CAST (usleep, int, (useconds_t n));
# endif
_GL_CXXALIASWARN (usleep);
#elif defined GNULIB_POSIXCHECK
-# undef usleep
# if HAVE_RAW_DECL_USLEEP
_GL_WARN_ON_USE (usleep, "usleep is unportable - "
"use gnulib module usleep for portability");
diff --git a/lib/unistdio.in.h b/lib/unistdio.in.h
index dc669933..08eea75a 100644
--- a/lib/unistdio.in.h
+++ b/lib/unistdio.in.h
@@ -1,5 +1,5 @@
/* Elementary Unicode string functions.
- Copyright (C) 2002, 2005-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005-2007, 2009-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unistdio/u-asnprintf.h b/lib/unistdio/u-asnprintf.h
index a6b9e390..a892e82a 100644
--- a/lib/unistdio/u-asnprintf.h
+++ b/lib/unistdio/u-asnprintf.h
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
@@ -27,10 +27,8 @@ DCHAR_T *
ASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, const FCHAR_T *format, ...)
{
va_list args;
- DCHAR_T *result;
-
va_start (args, format);
- result = VASNPRINTF (resultbuf, lengthp, format, args);
+ DCHAR_T *result = VASNPRINTF (resultbuf, lengthp, format, args);
va_end (args);
return result;
}
diff --git a/lib/unistdio/u-asprintf.h b/lib/unistdio/u-asprintf.h
index 3f0a3aec..0857d6d8 100644
--- a/lib/unistdio/u-asprintf.h
+++ b/lib/unistdio/u-asprintf.h
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
@@ -27,10 +27,8 @@ int
ASPRINTF (DCHAR_T **resultp, const FCHAR_T *format, ...)
{
va_list args;
- int result;
-
va_start (args, format);
- result = VASPRINTF (resultp, format, args);
+ int result = VASPRINTF (resultp, format, args);
va_end (args);
return result;
}
diff --git a/lib/unistdio/u-printf-args.c b/lib/unistdio/u-printf-args.c
index ab1e405e..ce9c9ef7 100644
--- a/lib/unistdio/u-printf-args.c
+++ b/lib/unistdio/u-printf-args.c
@@ -1,5 +1,5 @@
/* Decomposed printf argument list.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u-printf-args.h b/lib/unistdio/u-printf-args.h
index e57f1115..2e88f1d2 100644
--- a/lib/unistdio/u-printf-args.h
+++ b/lib/unistdio/u-printf-args.h
@@ -1,5 +1,5 @@
/* Decomposed printf argument list.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u-printf-parse.h b/lib/unistdio/u-printf-parse.h
index 4e9e91ca..9bd58c24 100644
--- a/lib/unistdio/u-printf-parse.h
+++ b/lib/unistdio/u-printf-parse.h
@@ -1,5 +1,5 @@
/* Parse printf format string.
- Copyright (C) 1999, 2002, 2005, 2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005, 2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u-snprintf.h b/lib/unistdio/u-snprintf.h
index 749707c9..0c2186b3 100644
--- a/lib/unistdio/u-snprintf.h
+++ b/lib/unistdio/u-snprintf.h
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
@@ -27,10 +27,8 @@ int
SNPRINTF (DCHAR_T *buf, size_t size, const FCHAR_T *format, ...)
{
va_list args;
- int result;
-
va_start (args, format);
- result = VSNPRINTF (buf, size, format, args);
+ int result = VSNPRINTF (buf, size, format, args);
va_end (args);
return result;
}
diff --git a/lib/unistdio/u-sprintf.h b/lib/unistdio/u-sprintf.h
index 726172c1..d3d50a63 100644
--- a/lib/unistdio/u-sprintf.h
+++ b/lib/unistdio/u-sprintf.h
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
@@ -27,10 +27,8 @@ int
SPRINTF (DCHAR_T *buf, const FCHAR_T *format, ...)
{
va_list args;
- int result;
-
va_start (args, format);
- result = VSPRINTF (buf, format, args);
+ int result = VSPRINTF (buf, format, args);
va_end (args);
return result;
}
diff --git a/lib/unistdio/u-vasprintf.h b/lib/unistdio/u-vasprintf.h
index e6cefb1d..1e994823 100644
--- a/lib/unistdio/u-vasprintf.h
+++ b/lib/unistdio/u-vasprintf.h
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
diff --git a/lib/unistdio/u-vsnprintf.h b/lib/unistdio/u-vsnprintf.h
index 85b77f43..e4105324 100644
--- a/lib/unistdio/u-vsnprintf.h
+++ b/lib/unistdio/u-vsnprintf.h
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -26,13 +26,12 @@ int
VSNPRINTF (DCHAR_T *buf, size_t size, const FCHAR_T *format, va_list args)
{
size_t length;
- DCHAR_T *result;
if (size == 0)
buf = NULL;
else
length = size;
- result = VASNPRINTF (buf, &length, format, args);
+ DCHAR_T *result = VASNPRINTF (buf, &length, format, args);
if (result == NULL)
return -1;
diff --git a/lib/unistdio/u-vsprintf.h b/lib/unistdio/u-vsprintf.h
index d1604034..4cc7506b 100644
--- a/lib/unistdio/u-vsprintf.h
+++ b/lib/unistdio/u-vsprintf.h
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -34,15 +34,13 @@ VSPRINTF (DCHAR_T *buf, const FCHAR_T *format, va_list args)
Also note that glibc's iconv fails with E2BIG when we pass a length that
is so large that buf + length wraps around, i.e.
(uintptr_t) (buf + length) < (uintptr_t) buf. */
- size_t length;
- DCHAR_T *result;
/* Set length = min (SIZE_MAX, INT_MAX, - (uintptr_t) buf - 1). */
- length = (SIZE_MAX < INT_MAX ? SIZE_MAX : INT_MAX);
+ size_t length = (SIZE_MAX < INT_MAX ? SIZE_MAX : INT_MAX);
if (length > (~ (uintptr_t) buf) / sizeof (DCHAR_T))
length = (~ (uintptr_t) buf) / sizeof (DCHAR_T);
- result = VASNPRINTF (buf, &length, format, args);
+ DCHAR_T *result = VASNPRINTF (buf, &length, format, args);
if (result == NULL)
return -1;
diff --git a/lib/unistdio/u16-asnprintf.c b/lib/unistdio/u16-asnprintf.c
index ad3579e9..31ffca73 100644
--- a/lib/unistdio/u16-asnprintf.c
+++ b/lib/unistdio/u16-asnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-asprintf.c b/lib/unistdio/u16-asprintf.c
index 4c7fc7d6..dd8c7b43 100644
--- a/lib/unistdio/u16-asprintf.c
+++ b/lib/unistdio/u16-asprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-printf-parse.c b/lib/unistdio/u16-printf-parse.c
index aa4ddf68..17ef8e06 100644
--- a/lib/unistdio/u16-printf-parse.c
+++ b/lib/unistdio/u16-printf-parse.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
This file is free software.
diff --git a/lib/unistdio/u16-snprintf.c b/lib/unistdio/u16-snprintf.c
index 415b0ac3..6dc5694b 100644
--- a/lib/unistdio/u16-snprintf.c
+++ b/lib/unistdio/u16-snprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-sprintf.c b/lib/unistdio/u16-sprintf.c
index cd54e6a1..eb699fa7 100644
--- a/lib/unistdio/u16-sprintf.c
+++ b/lib/unistdio/u16-sprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-u16-asnprintf.c b/lib/unistdio/u16-u16-asnprintf.c
index 760d51ab..cb733a57 100644
--- a/lib/unistdio/u16-u16-asnprintf.c
+++ b/lib/unistdio/u16-u16-asnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-u16-asprintf.c b/lib/unistdio/u16-u16-asprintf.c
index 83db68b5..e353916e 100644
--- a/lib/unistdio/u16-u16-asprintf.c
+++ b/lib/unistdio/u16-u16-asprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-u16-snprintf.c b/lib/unistdio/u16-u16-snprintf.c
index 2b59be12..80b936bd 100644
--- a/lib/unistdio/u16-u16-snprintf.c
+++ b/lib/unistdio/u16-u16-snprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-u16-sprintf.c b/lib/unistdio/u16-u16-sprintf.c
index 6d7c5d0e..47602e37 100644
--- a/lib/unistdio/u16-u16-sprintf.c
+++ b/lib/unistdio/u16-u16-sprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-u16-vasnprintf.c b/lib/unistdio/u16-u16-vasnprintf.c
index e38c3906..35a31868 100644
--- a/lib/unistdio/u16-u16-vasnprintf.c
+++ b/lib/unistdio/u16-u16-vasnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to UTF-16 strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-u16-vasprintf.c b/lib/unistdio/u16-u16-vasprintf.c
index b9cbef9e..5513e469 100644
--- a/lib/unistdio/u16-u16-vasprintf.c
+++ b/lib/unistdio/u16-u16-vasprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-u16-vsnprintf.c b/lib/unistdio/u16-u16-vsnprintf.c
index 79a9075c..b6b3bb4f 100644
--- a/lib/unistdio/u16-u16-vsnprintf.c
+++ b/lib/unistdio/u16-u16-vsnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-u16-vsprintf.c b/lib/unistdio/u16-u16-vsprintf.c
index 5bf747e3..f8d86c95 100644
--- a/lib/unistdio/u16-u16-vsprintf.c
+++ b/lib/unistdio/u16-u16-vsprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-vasnprintf.c b/lib/unistdio/u16-vasnprintf.c
index be857749..20b730e3 100644
--- a/lib/unistdio/u16-vasnprintf.c
+++ b/lib/unistdio/u16-vasnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to UTF-16 strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-vasprintf.c b/lib/unistdio/u16-vasprintf.c
index 340db84e..510c27fc 100644
--- a/lib/unistdio/u16-vasprintf.c
+++ b/lib/unistdio/u16-vasprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-vsnprintf.c b/lib/unistdio/u16-vsnprintf.c
index 3eb0d2ed..6bce523f 100644
--- a/lib/unistdio/u16-vsnprintf.c
+++ b/lib/unistdio/u16-vsnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u16-vsprintf.c b/lib/unistdio/u16-vsprintf.c
index 0d53adb5..ef221b89 100644
--- a/lib/unistdio/u16-vsprintf.c
+++ b/lib/unistdio/u16-vsprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-asnprintf.c b/lib/unistdio/u32-asnprintf.c
index d8673805..46f91e17 100644
--- a/lib/unistdio/u32-asnprintf.c
+++ b/lib/unistdio/u32-asnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-asprintf.c b/lib/unistdio/u32-asprintf.c
index cf39f286..6124d066 100644
--- a/lib/unistdio/u32-asprintf.c
+++ b/lib/unistdio/u32-asprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-printf-parse.c b/lib/unistdio/u32-printf-parse.c
index 78ef1846..4f7bf784 100644
--- a/lib/unistdio/u32-printf-parse.c
+++ b/lib/unistdio/u32-printf-parse.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
This file is free software.
diff --git a/lib/unistdio/u32-snprintf.c b/lib/unistdio/u32-snprintf.c
index e6c7736a..3d3c1f13 100644
--- a/lib/unistdio/u32-snprintf.c
+++ b/lib/unistdio/u32-snprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-sprintf.c b/lib/unistdio/u32-sprintf.c
index ddfc5d53..edc2ea78 100644
--- a/lib/unistdio/u32-sprintf.c
+++ b/lib/unistdio/u32-sprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-u32-asnprintf.c b/lib/unistdio/u32-u32-asnprintf.c
index 239ce9af..8521d4f0 100644
--- a/lib/unistdio/u32-u32-asnprintf.c
+++ b/lib/unistdio/u32-u32-asnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-u32-asprintf.c b/lib/unistdio/u32-u32-asprintf.c
index e23ec281..f1654a0e 100644
--- a/lib/unistdio/u32-u32-asprintf.c
+++ b/lib/unistdio/u32-u32-asprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-u32-snprintf.c b/lib/unistdio/u32-u32-snprintf.c
index a5b9b6c0..840dc5a7 100644
--- a/lib/unistdio/u32-u32-snprintf.c
+++ b/lib/unistdio/u32-u32-snprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-u32-sprintf.c b/lib/unistdio/u32-u32-sprintf.c
index 60733ef2..76f00bd3 100644
--- a/lib/unistdio/u32-u32-sprintf.c
+++ b/lib/unistdio/u32-u32-sprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-u32-vasnprintf.c b/lib/unistdio/u32-u32-vasnprintf.c
index 3bb7dece..3c2a5b93 100644
--- a/lib/unistdio/u32-u32-vasnprintf.c
+++ b/lib/unistdio/u32-u32-vasnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to UTF-32 strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-u32-vasprintf.c b/lib/unistdio/u32-u32-vasprintf.c
index dcc3bff2..627ff486 100644
--- a/lib/unistdio/u32-u32-vasprintf.c
+++ b/lib/unistdio/u32-u32-vasprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-u32-vsnprintf.c b/lib/unistdio/u32-u32-vsnprintf.c
index da144712..d12aecd8 100644
--- a/lib/unistdio/u32-u32-vsnprintf.c
+++ b/lib/unistdio/u32-u32-vsnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-u32-vsprintf.c b/lib/unistdio/u32-u32-vsprintf.c
index e80a1515..de1e9f78 100644
--- a/lib/unistdio/u32-u32-vsprintf.c
+++ b/lib/unistdio/u32-u32-vsprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-vasnprintf.c b/lib/unistdio/u32-vasnprintf.c
index c79f5356..005a5784 100644
--- a/lib/unistdio/u32-vasnprintf.c
+++ b/lib/unistdio/u32-vasnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to UTF-32 strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-vasprintf.c b/lib/unistdio/u32-vasprintf.c
index 5fa3428f..c9a6131e 100644
--- a/lib/unistdio/u32-vasprintf.c
+++ b/lib/unistdio/u32-vasprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-vsnprintf.c b/lib/unistdio/u32-vsnprintf.c
index a61a1c45..e745218f 100644
--- a/lib/unistdio/u32-vsnprintf.c
+++ b/lib/unistdio/u32-vsnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u32-vsprintf.c b/lib/unistdio/u32-vsprintf.c
index 66904dfe..0b8d1b7b 100644
--- a/lib/unistdio/u32-vsprintf.c
+++ b/lib/unistdio/u32-vsprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-asnprintf.c b/lib/unistdio/u8-asnprintf.c
index dcaf038e..83c47c64 100644
--- a/lib/unistdio/u8-asnprintf.c
+++ b/lib/unistdio/u8-asnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-asprintf.c b/lib/unistdio/u8-asprintf.c
index b4e42576..02a53ab5 100644
--- a/lib/unistdio/u8-asprintf.c
+++ b/lib/unistdio/u8-asprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-printf-parse.c b/lib/unistdio/u8-printf-parse.c
index 40b0bf1b..23eb384f 100644
--- a/lib/unistdio/u8-printf-parse.c
+++ b/lib/unistdio/u8-printf-parse.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
This file is free software.
diff --git a/lib/unistdio/u8-snprintf.c b/lib/unistdio/u8-snprintf.c
index 8bcc7e03..7dff6ae0 100644
--- a/lib/unistdio/u8-snprintf.c
+++ b/lib/unistdio/u8-snprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-sprintf.c b/lib/unistdio/u8-sprintf.c
index ead7f9b9..f99a4c14 100644
--- a/lib/unistdio/u8-sprintf.c
+++ b/lib/unistdio/u8-sprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-u8-asnprintf.c b/lib/unistdio/u8-u8-asnprintf.c
index 27a896c3..eb75fb89 100644
--- a/lib/unistdio/u8-u8-asnprintf.c
+++ b/lib/unistdio/u8-u8-asnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-u8-asprintf.c b/lib/unistdio/u8-u8-asprintf.c
index 3b5c35a2..a7a8d5a6 100644
--- a/lib/unistdio/u8-u8-asprintf.c
+++ b/lib/unistdio/u8-u8-asprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-u8-snprintf.c b/lib/unistdio/u8-u8-snprintf.c
index 639c110f..cc3c36a7 100644
--- a/lib/unistdio/u8-u8-snprintf.c
+++ b/lib/unistdio/u8-u8-snprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-u8-sprintf.c b/lib/unistdio/u8-u8-sprintf.c
index d99473c7..b49271da 100644
--- a/lib/unistdio/u8-u8-sprintf.c
+++ b/lib/unistdio/u8-u8-sprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-u8-vasnprintf.c b/lib/unistdio/u8-u8-vasnprintf.c
index ad9dc510..d757d6f1 100644
--- a/lib/unistdio/u8-u8-vasnprintf.c
+++ b/lib/unistdio/u8-u8-vasnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to UTF-8 strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-u8-vasprintf.c b/lib/unistdio/u8-u8-vasprintf.c
index 41fbcc80..29a940d5 100644
--- a/lib/unistdio/u8-u8-vasprintf.c
+++ b/lib/unistdio/u8-u8-vasprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-u8-vsnprintf.c b/lib/unistdio/u8-u8-vsnprintf.c
index face3478..b4a38d4f 100644
--- a/lib/unistdio/u8-u8-vsnprintf.c
+++ b/lib/unistdio/u8-u8-vsnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-u8-vsprintf.c b/lib/unistdio/u8-u8-vsprintf.c
index f02304fc..a54c0e72 100644
--- a/lib/unistdio/u8-u8-vsprintf.c
+++ b/lib/unistdio/u8-u8-vsprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-vasnprintf.c b/lib/unistdio/u8-vasnprintf.c
index 88e59ae4..d142e959 100644
--- a/lib/unistdio/u8-vasnprintf.c
+++ b/lib/unistdio/u8-vasnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to UTF-8 strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-vasprintf.c b/lib/unistdio/u8-vasprintf.c
index b92b990c..0fc6147f 100644
--- a/lib/unistdio/u8-vasprintf.c
+++ b/lib/unistdio/u8-vasprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-vsnprintf.c b/lib/unistdio/u8-vsnprintf.c
index 18355b4d..2ed10a95 100644
--- a/lib/unistdio/u8-vsnprintf.c
+++ b/lib/unistdio/u8-vsnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/u8-vsprintf.c b/lib/unistdio/u8-vsprintf.c
index a00b38f0..68036b13 100644
--- a/lib/unistdio/u8-vsprintf.c
+++ b/lib/unistdio/u8-vsprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/ulc-asnprintf.c b/lib/unistdio/ulc-asnprintf.c
index 0447862b..f9655f60 100644
--- a/lib/unistdio/ulc-asnprintf.c
+++ b/lib/unistdio/ulc-asnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/ulc-asprintf.c b/lib/unistdio/ulc-asprintf.c
index 9925ad9d..0f9117e9 100644
--- a/lib/unistdio/ulc-asprintf.c
+++ b/lib/unistdio/ulc-asprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/ulc-fprintf.c b/lib/unistdio/ulc-fprintf.c
index 01e4117b..4a0610c7 100644
--- a/lib/unistdio/ulc-fprintf.c
+++ b/lib/unistdio/ulc-fprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to a stream.
- Copyright (C) 2004, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2006-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -43,15 +43,14 @@
int
ulc_fprintf (FILE *fp, const char *format, ...)
{
+ va_list args;
+ va_start (args, format);
+
char buf[2000];
- char *output;
- size_t len;
size_t lenbuf = sizeof (buf);
- va_list args;
+ char *output = ulc_vasnprintf (buf, &lenbuf, format, args);
+ size_t len = lenbuf;
- va_start (args, format);
- output = ulc_vasnprintf (buf, &lenbuf, format, args);
- len = lenbuf;
va_end (args);
if (!output)
diff --git a/lib/unistdio/ulc-printf-parse.c b/lib/unistdio/ulc-printf-parse.c
index 0da84cbd..d391f074 100644
--- a/lib/unistdio/ulc-printf-parse.c
+++ b/lib/unistdio/ulc-printf-parse.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
This file is free software.
diff --git a/lib/unistdio/ulc-snprintf.c b/lib/unistdio/ulc-snprintf.c
index 2660715e..55ac1ac4 100644
--- a/lib/unistdio/ulc-snprintf.c
+++ b/lib/unistdio/ulc-snprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/ulc-sprintf.c b/lib/unistdio/ulc-sprintf.c
index 0907ebcd..a969896e 100644
--- a/lib/unistdio/ulc-sprintf.c
+++ b/lib/unistdio/ulc-sprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2005-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2005-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/ulc-vasnprintf.c b/lib/unistdio/ulc-vasnprintf.c
index 50ae4f7e..0e47ca40 100644
--- a/lib/unistdio/ulc-vasnprintf.c
+++ b/lib/unistdio/ulc-vasnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/ulc-vasprintf.c b/lib/unistdio/ulc-vasprintf.c
index 816301d0..e6b76b63 100644
--- a/lib/unistdio/ulc-vasprintf.c
+++ b/lib/unistdio/ulc-vasprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/ulc-vfprintf.c b/lib/unistdio/ulc-vfprintf.c
index e5115343..50173e89 100644
--- a/lib/unistdio/ulc-vfprintf.c
+++ b/lib/unistdio/ulc-vfprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to a stream.
- Copyright (C) 2004, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2006-2026 Free Software Foundation, Inc.
This file is free software.
It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
@@ -44,12 +44,9 @@ int
ulc_vfprintf (FILE *fp, const char *format, va_list args)
{
char buf[2000];
- char *output;
- size_t len;
size_t lenbuf = sizeof (buf);
-
- output = ulc_vasnprintf (buf, &lenbuf, format, args);
- len = lenbuf;
+ char *output = ulc_vasnprintf (buf, &lenbuf, format, args);
+ size_t len = lenbuf;
if (!output)
{
diff --git a/lib/unistdio/ulc-vsnprintf.c b/lib/unistdio/ulc-vsnprintf.c
index a0be069d..ce3ef10e 100644
--- a/lib/unistdio/ulc-vsnprintf.c
+++ b/lib/unistdio/ulc-vsnprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistdio/ulc-vsprintf.c b/lib/unistdio/ulc-vsprintf.c
index d6dc5be9..34f2175d 100644
--- a/lib/unistdio/ulc-vsprintf.c
+++ b/lib/unistdio/ulc-vsprintf.c
@@ -1,5 +1,5 @@
/* Formatted output to strings.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software.
diff --git a/lib/unistr.in.h b/lib/unistr.in.h
index 9a8edadf..bbb2988a 100644
--- a/lib/unistr.in.h
+++ b/lib/unistr.in.h
@@ -1,5 +1,5 @@
/* Elementary Unicode string functions.
- Copyright (C) 2001-2002, 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -273,7 +273,7 @@ extern int
# else
static inline int
u32_mbtouc_unsafe (ucs4_t *puc,
- const uint32_t *s, _GL_ATTRIBUTE_MAYBE_UNUSED size_t n)
+ const uint32_t *s, size_t _GL_UNNAMED (n))
{
uint32_t c = *s;
@@ -340,7 +340,7 @@ extern int
# else
static inline int
u32_mbtouc (ucs4_t *puc, const uint32_t *s,
- _GL_ATTRIBUTE_MAYBE_UNUSED size_t n)
+ size_t _GL_UNNAMED (n))
{
uint32_t c = *s;
diff --git a/lib/unistr/u-cmp2.h b/lib/unistr/u-cmp2.h
index 89882846..d5e80ca3 100644
--- a/lib/unistr/u-cmp2.h
+++ b/lib/unistr/u-cmp2.h
@@ -1,5 +1,5 @@
/* Compare pieces of UTF-8/UTF-16/UTF-32 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unistr/u-cpy-alloc.h b/lib/unistr/u-cpy-alloc.h
index baec6d73..001ce16e 100644
--- a/lib/unistr/u-cpy-alloc.h
+++ b/lib/unistr/u-cpy-alloc.h
@@ -1,5 +1,5 @@
/* Copy piece of UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
diff --git a/lib/unistr/u-cpy.h b/lib/unistr/u-cpy.h
index 447c65aa..b683a4a2 100644
--- a/lib/unistr/u-cpy.h
+++ b/lib/unistr/u-cpy.h
@@ -1,5 +1,5 @@
/* Copy piece of UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u-endswith.h b/lib/unistr/u-endswith.h
index d157804a..36f0848b 100644
--- a/lib/unistr/u-endswith.h
+++ b/lib/unistr/u-endswith.h
@@ -1,5 +1,5 @@
/* Substring test for UTF-8/UTF-16/UTF-32 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-move.h b/lib/unistr/u-move.h
index cd4a88af..3f1d1b78 100644
--- a/lib/unistr/u-move.h
+++ b/lib/unistr/u-move.h
@@ -1,5 +1,5 @@
/* Copy piece of UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-pcpy.h b/lib/unistr/u-pcpy.h
index 67155703..1dd6437c 100644
--- a/lib/unistr/u-pcpy.h
+++ b/lib/unistr/u-pcpy.h
@@ -1,5 +1,5 @@
/* Copy piece of UTF-8/16/32 string, return pointer after last written unit.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2023.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u-set.h b/lib/unistr/u-set.h
index effe8564..22777c2f 100644
--- a/lib/unistr/u-set.h
+++ b/lib/unistr/u-set.h
@@ -1,5 +1,5 @@
/* Fill UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-startswith.h b/lib/unistr/u-startswith.h
index f398a94e..5a849142 100644
--- a/lib/unistr/u-startswith.h
+++ b/lib/unistr/u-startswith.h
@@ -1,5 +1,5 @@
/* Substring test for UTF-8/UTF-16/UTF-32 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-stpcpy.h b/lib/unistr/u-stpcpy.h
index b4bb70d9..30968f7b 100644
--- a/lib/unistr/u-stpcpy.h
+++ b/lib/unistr/u-stpcpy.h
@@ -1,5 +1,5 @@
/* Copy UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-stpncpy.h b/lib/unistr/u-stpncpy.h
index cd9ed379..4420b5cc 100644
--- a/lib/unistr/u-stpncpy.h
+++ b/lib/unistr/u-stpncpy.h
@@ -1,5 +1,5 @@
/* Copy UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-strcat.h b/lib/unistr/u-strcat.h
index 13076c70..3afb9cf2 100644
--- a/lib/unistr/u-strcat.h
+++ b/lib/unistr/u-strcat.h
@@ -1,5 +1,5 @@
/* Concatenate UTF-8/UTF-16/UTF-32 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u-strcoll.h b/lib/unistr/u-strcoll.h
index e53feb02..8279e68c 100644
--- a/lib/unistr/u-strcoll.h
+++ b/lib/unistr/u-strcoll.h
@@ -1,6 +1,6 @@
/* Compare UTF-8/UTF-16/UTF-32 strings using the collation rules of the current
locale.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unistr/u-strcpy.h b/lib/unistr/u-strcpy.h
index 80975351..fa948ad1 100644
--- a/lib/unistr/u-strcpy.h
+++ b/lib/unistr/u-strcpy.h
@@ -1,5 +1,5 @@
/* Copy UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-strcspn.h b/lib/unistr/u-strcspn.h
index bbc75ed9..a12c4172 100644
--- a/lib/unistr/u-strcspn.h
+++ b/lib/unistr/u-strcspn.h
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-strdup.h b/lib/unistr/u-strdup.h
index 99ff4cb2..9b8e7b90 100644
--- a/lib/unistr/u-strdup.h
+++ b/lib/unistr/u-strdup.h
@@ -1,5 +1,5 @@
/* Copy UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
diff --git a/lib/unistr/u-strlen.h b/lib/unistr/u-strlen.h
index d4e75f3a..af2ed80f 100644
--- a/lib/unistr/u-strlen.h
+++ b/lib/unistr/u-strlen.h
@@ -1,5 +1,5 @@
/* Determine length of UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u-strncat.h b/lib/unistr/u-strncat.h
index 3801bfba..974ddca9 100644
--- a/lib/unistr/u-strncat.h
+++ b/lib/unistr/u-strncat.h
@@ -1,5 +1,5 @@
/* Concatenate UTF-8/UTF-16/UTF-32 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-strncpy.h b/lib/unistr/u-strncpy.h
index e733b9b7..12c46c60 100644
--- a/lib/unistr/u-strncpy.h
+++ b/lib/unistr/u-strncpy.h
@@ -1,5 +1,5 @@
/* Copy UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-strnlen.h b/lib/unistr/u-strnlen.h
index 65e396be..3fb6e9b4 100644
--- a/lib/unistr/u-strnlen.h
+++ b/lib/unistr/u-strnlen.h
@@ -1,5 +1,5 @@
/* Determine bounded length of UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-strpbrk.h b/lib/unistr/u-strpbrk.h
index 9213c616..a7dcca82 100644
--- a/lib/unistr/u-strpbrk.h
+++ b/lib/unistr/u-strpbrk.h
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-strspn.h b/lib/unistr/u-strspn.h
index c3f67844..dcaac120 100644
--- a/lib/unistr/u-strspn.h
+++ b/lib/unistr/u-strspn.h
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u-strtok.h b/lib/unistr/u-strtok.h
index a48d3093..826d91e1 100644
--- a/lib/unistr/u-strtok.h
+++ b/lib/unistr/u-strtok.h
@@ -1,5 +1,5 @@
/* Tokenize UTF-8/UTF-16/UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-check.c b/lib/unistr/u16-check.c
index 485bb8ea..facf858e 100644
--- a/lib/unistr/u16-check.c
+++ b/lib/unistr/u16-check.c
@@ -1,5 +1,5 @@
/* Check UTF-16 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-chr.c b/lib/unistr/u16-chr.c
index 6c7999ad..75d75dfc 100644
--- a/lib/unistr/u16-chr.c
+++ b/lib/unistr/u16-chr.c
@@ -1,5 +1,5 @@
/* Search character in piece of UTF-16 string.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
@@ -35,8 +35,6 @@
uint16_t *
u16_chr (const uint16_t *s, size_t n, ucs4_t uc)
{
- uint16_t c[2];
-
if (uc < 0x10000)
{
uint16_t c0 = uc;
@@ -48,21 +46,25 @@ u16_chr (const uint16_t *s, size_t n, ucs4_t uc)
}
}
else
- switch (u16_uctomb_aux (c, uc, 2))
- {
- case 2:
- if (n > 1)
- {
- uint16_t c0 = c[0];
- uint16_t c1 = c[1];
+ {
+ uint16_t c[2];
+
+ switch (u16_uctomb_aux (c, uc, 2))
+ {
+ case 2:
+ if (n > 1)
+ {
+ uint16_t c0 = c[0];
+ uint16_t c1 = c[1];
- for (n--; n > 0; s++, n--)
- {
- if (*s == c0 && s[1] == c1)
- return (uint16_t *) s;
- }
- }
- break;
- }
+ for (n--; n > 0; s++, n--)
+ {
+ if (*s == c0 && s[1] == c1)
+ return (uint16_t *) s;
+ }
+ }
+ break;
+ }
+ }
return NULL;
}
diff --git a/lib/unistr/u16-cmp.c b/lib/unistr/u16-cmp.c
index cedf9d2e..8ebe5d22 100644
--- a/lib/unistr/u16-cmp.c
+++ b/lib/unistr/u16-cmp.c
@@ -1,5 +1,5 @@
/* Compare pieces of UTF-16 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -34,29 +34,27 @@ u16_cmp (const uint16_t *s1, const uint16_t *s2, size_t n)
/* Note that the UTF-16 encoding does NOT preserve lexicographic order.
Namely, if uc1 is a 16-bit character and [uc2a,uc2b] is a surrogate pair,
we must enforce uc1 < [uc2a,uc2b], even if uc1 > uc2a. */
- for (; n > 0;)
+ for (; n > 0; n--)
{
uint16_t c1 = *s1++;
uint16_t c2 = *s2++;
- if (c1 == c2)
+ if (c1 != c2)
{
- n--;
- continue;
+ if (c1 < 0xd800 || c1 >= 0xe000)
+ {
+ if (!(c2 < 0xd800 || c2 >= 0xe000))
+ /* c2 is a surrogate, but c1 is not. */
+ return -1;
+ }
+ else
+ {
+ if (c2 < 0xd800 || c2 >= 0xe000)
+ /* c1 is a surrogate, but c2 is not. */
+ return 1;
+ }
+ return (int)c1 - (int)c2;
+ /* > 0 if c1 > c2, < 0 if c1 < c2. */
}
- if (c1 < 0xd800 || c1 >= 0xe000)
- {
- if (!(c2 < 0xd800 || c2 >= 0xe000))
- /* c2 is a surrogate, but c1 is not. */
- return -1;
- }
- else
- {
- if (c2 < 0xd800 || c2 >= 0xe000)
- /* c1 is a surrogate, but c2 is not. */
- return 1;
- }
- return (int)c1 - (int)c2;
- /* > 0 if c1 > c2, < 0 if c1 < c2. */
}
return 0;
}
diff --git a/lib/unistr/u16-cmp2.c b/lib/unistr/u16-cmp2.c
index 7bf33bd5..27259e86 100644
--- a/lib/unistr/u16-cmp2.c
+++ b/lib/unistr/u16-cmp2.c
@@ -1,5 +1,5 @@
/* Compare pieces of UTF-16 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unistr/u16-cpy-alloc.c b/lib/unistr/u16-cpy-alloc.c
index b105a72e..c3cc36ec 100644
--- a/lib/unistr/u16-cpy-alloc.c
+++ b/lib/unistr/u16-cpy-alloc.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-cpy.c b/lib/unistr/u16-cpy.c
index 73bfc197..b8632273 100644
--- a/lib/unistr/u16-cpy.c
+++ b/lib/unistr/u16-cpy.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-endswith.c b/lib/unistr/u16-endswith.c
index 02f7955c..55f80578 100644
--- a/lib/unistr/u16-endswith.c
+++ b/lib/unistr/u16-endswith.c
@@ -1,5 +1,5 @@
/* Substring test for UTF-16 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-mblen.c b/lib/unistr/u16-mblen.c
index d4f3e73a..0082594a 100644
--- a/lib/unistr/u16-mblen.c
+++ b/lib/unistr/u16-mblen.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-16 string.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
diff --git a/lib/unistr/u16-mbsnlen.c b/lib/unistr/u16-mbsnlen.c
index 43f23c5b..211df43c 100644
--- a/lib/unistr/u16-mbsnlen.c
+++ b/lib/unistr/u16-mbsnlen.c
@@ -1,5 +1,5 @@
/* Count characters in UTF-16 string.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
@@ -31,9 +31,7 @@
size_t
u16_mbsnlen (const uint16_t *s, size_t n)
{
- size_t characters;
-
- characters = 0;
+ size_t characters = 0;
while (n > 0)
{
ucs4_t uc;
diff --git a/lib/unistr/u16-mbtouc-aux.c b/lib/unistr/u16-mbtouc-aux.c
index 1266e7da..4748141d 100644
--- a/lib/unistr/u16-mbtouc-aux.c
+++ b/lib/unistr/u16-mbtouc-aux.c
@@ -1,5 +1,5 @@
/* Conversion UTF-16 to UCS-4.
- Copyright (C) 2001-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unistr/u16-mbtouc-unsafe-aux.c b/lib/unistr/u16-mbtouc-unsafe-aux.c
index b14e7296..4c2b9cf4 100644
--- a/lib/unistr/u16-mbtouc-unsafe-aux.c
+++ b/lib/unistr/u16-mbtouc-unsafe-aux.c
@@ -1,5 +1,5 @@
/* Conversion UTF-16 to UCS-4.
- Copyright (C) 2001-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unistr/u16-mbtouc-unsafe.c b/lib/unistr/u16-mbtouc-unsafe.c
index 37c1a7cf..4f015ac5 100644
--- a/lib/unistr/u16-mbtouc-unsafe.c
+++ b/lib/unistr/u16-mbtouc-unsafe.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-16 string.
- Copyright (C) 1999-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unistr/u16-mbtouc.c b/lib/unistr/u16-mbtouc.c
index a42437dc..37debe0b 100644
--- a/lib/unistr/u16-mbtouc.c
+++ b/lib/unistr/u16-mbtouc.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-16 string.
- Copyright (C) 1999-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software.
diff --git a/lib/unistr/u16-mbtoucr.c b/lib/unistr/u16-mbtoucr.c
index 0d94ec2b..6abfe551 100644
--- a/lib/unistr/u16-mbtoucr.c
+++ b/lib/unistr/u16-mbtoucr.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-16 string, returning an error code.
- Copyright (C) 1999-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u16-move.c b/lib/unistr/u16-move.c
index 70b64a2a..cdef80b0 100644
--- a/lib/unistr/u16-move.c
+++ b/lib/unistr/u16-move.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-next.c b/lib/unistr/u16-next.c
index d74ae224..e2cc035b 100644
--- a/lib/unistr/u16-next.c
+++ b/lib/unistr/u16-next.c
@@ -1,5 +1,5 @@
/* Iterate over next character in UTF-16 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -34,9 +34,7 @@
const uint16_t *
u16_next (ucs4_t *puc, const uint16_t *s)
{
- int count;
-
- count = u16_strmbtouc (puc, s);
+ int count = u16_strmbtouc (puc, s);
if (count > 0)
return s + count;
else
diff --git a/lib/unistr/u16-pcpy.c b/lib/unistr/u16-pcpy.c
index 042234bf..fd1f9ac4 100644
--- a/lib/unistr/u16-pcpy.c
+++ b/lib/unistr/u16-pcpy.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-16 string, return pointer after last written unit.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2023.
This file is free software.
diff --git a/lib/unistr/u16-prev.c b/lib/unistr/u16-prev.c
index 53823e06..b49a8e81 100644
--- a/lib/unistr/u16-prev.c
+++ b/lib/unistr/u16-prev.c
@@ -1,5 +1,5 @@
/* Iterate over previous character in UTF-16 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-set.c b/lib/unistr/u16-set.c
index 9c830b7e..04d2ca2d 100644
--- a/lib/unistr/u16-set.c
+++ b/lib/unistr/u16-set.c
@@ -1,5 +1,5 @@
/* Fill UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-startswith.c b/lib/unistr/u16-startswith.c
index cd873713..19769a08 100644
--- a/lib/unistr/u16-startswith.c
+++ b/lib/unistr/u16-startswith.c
@@ -1,5 +1,5 @@
/* Substring test for UTF-16 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-stpcpy.c b/lib/unistr/u16-stpcpy.c
index 46fdfa3a..49abec53 100644
--- a/lib/unistr/u16-stpcpy.c
+++ b/lib/unistr/u16-stpcpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-16 string.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
diff --git a/lib/unistr/u16-stpncpy.c b/lib/unistr/u16-stpncpy.c
index 04119635..6d9bfd70 100644
--- a/lib/unistr/u16-stpncpy.c
+++ b/lib/unistr/u16-stpncpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strcat.c b/lib/unistr/u16-strcat.c
index 8ced49b5..64d525c3 100644
--- a/lib/unistr/u16-strcat.c
+++ b/lib/unistr/u16-strcat.c
@@ -1,5 +1,5 @@
/* Concatenate UTF-16 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strchr.c b/lib/unistr/u16-strchr.c
index 832c0e8f..4a533b0f 100644
--- a/lib/unistr/u16-strchr.c
+++ b/lib/unistr/u16-strchr.c
@@ -1,5 +1,5 @@
/* Search character in UTF-16 string.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
@@ -35,8 +35,6 @@
uint16_t *
u16_strchr (const uint16_t *s, ucs4_t uc)
{
- uint16_t c[2];
-
if (uc < 0x10000)
{
uint16_t c0 = uc;
@@ -51,25 +49,29 @@ u16_strchr (const uint16_t *s, ucs4_t uc)
return (uint16_t *) s;
}
else
- switch (u16_uctomb_aux (c, uc, 2))
- {
- case 2:
- if (*s == 0)
- goto notfound;
+ {
+ uint16_t c[2];
+
+ switch (u16_uctomb_aux (c, uc, 2))
{
- uint16_t c0 = c[0];
- uint16_t c1 = c[1];
+ case 2:
+ if (*s == 0)
+ goto notfound;
+ {
+ uint16_t c0 = c[0];
+ uint16_t c1 = c[1];
- for (;; s++)
- {
- if (s[1] == 0)
- goto notfound;
- if (*s == c0 && s[1] == c1)
- break;
- }
- return (uint16_t *) s;
+ for (;; s++)
+ {
+ if (s[1] == 0)
+ goto notfound;
+ if (*s == c0 && s[1] == c1)
+ break;
+ }
+ return (uint16_t *) s;
+ }
}
- }
+ }
notfound:
return NULL;
}
diff --git a/lib/unistr/u16-strcmp.c b/lib/unistr/u16-strcmp.c
index 8dd332d7..96c2c1cc 100644
--- a/lib/unistr/u16-strcmp.c
+++ b/lib/unistr/u16-strcmp.c
@@ -1,5 +1,5 @@
/* Compare UTF-16 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -38,21 +38,22 @@ u16_strcmp (const uint16_t *s1, const uint16_t *s2)
{
uint16_t c1 = *s1++;
uint16_t c2 = *s2++;
- if (c1 != 0 && c1 == c2)
- continue;
- if (c1 < 0xd800 || c1 >= 0xe000)
+ if (c1 == 0 || c1 != c2)
{
- if (!(c2 < 0xd800 || c2 >= 0xe000))
- /* c2 is a surrogate, but c1 is not. */
- return -1;
+ if (c1 < 0xd800 || c1 >= 0xe000)
+ {
+ if (!(c2 < 0xd800 || c2 >= 0xe000))
+ /* c2 is a surrogate, but c1 is not. */
+ return -1;
+ }
+ else
+ {
+ if (c2 < 0xd800 || c2 >= 0xe000)
+ /* c1 is a surrogate, but c2 is not. */
+ return 1;
+ }
+ return (int)c1 - (int)c2;
+ /* > 0 if c1 > c2, < 0 if c1 < c2. */
}
- else
- {
- if (c2 < 0xd800 || c2 >= 0xe000)
- /* c1 is a surrogate, but c2 is not. */
- return 1;
- }
- return (int)c1 - (int)c2;
- /* > 0 if c1 > c2, < 0 if c1 < c2. */
}
}
diff --git a/lib/unistr/u16-strcoll.c b/lib/unistr/u16-strcoll.c
index 92239b4d..94a19fc1 100644
--- a/lib/unistr/u16-strcoll.c
+++ b/lib/unistr/u16-strcoll.c
@@ -1,5 +1,5 @@
/* Compare UTF-16 strings using the collation rules of the current locale.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unistr/u16-strcpy.c b/lib/unistr/u16-strcpy.c
index 6d108246..7c1a3828 100644
--- a/lib/unistr/u16-strcpy.c
+++ b/lib/unistr/u16-strcpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strcspn.c b/lib/unistr/u16-strcspn.c
index bfc5461b..180de924 100644
--- a/lib/unistr/u16-strcspn.c
+++ b/lib/unistr/u16-strcspn.c
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strdup.c b/lib/unistr/u16-strdup.c
index 68de4236..9dff85d7 100644
--- a/lib/unistr/u16-strdup.c
+++ b/lib/unistr/u16-strdup.c
@@ -1,5 +1,5 @@
/* Copy UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strlen.c b/lib/unistr/u16-strlen.c
index 24b77bd0..8b2b5837 100644
--- a/lib/unistr/u16-strlen.c
+++ b/lib/unistr/u16-strlen.c
@@ -1,5 +1,5 @@
/* Determine length of UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u16-strmblen.c b/lib/unistr/u16-strmblen.c
index 51413046..3ca260c6 100644
--- a/lib/unistr/u16-strmblen.c
+++ b/lib/unistr/u16-strmblen.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-16 string.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
diff --git a/lib/unistr/u16-strmbtouc.c b/lib/unistr/u16-strmbtouc.c
index d87ed759..8fb43df1 100644
--- a/lib/unistr/u16-strmbtouc.c
+++ b/lib/unistr/u16-strmbtouc.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-16 string.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
diff --git a/lib/unistr/u16-strncat.c b/lib/unistr/u16-strncat.c
index dd701957..147f8fb4 100644
--- a/lib/unistr/u16-strncat.c
+++ b/lib/unistr/u16-strncat.c
@@ -1,5 +1,5 @@
/* Concatenate UTF-16 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strncmp.c b/lib/unistr/u16-strncmp.c
index 3bba6e22..795435a5 100644
--- a/lib/unistr/u16-strncmp.c
+++ b/lib/unistr/u16-strncmp.c
@@ -1,5 +1,5 @@
/* Compare UTF-16 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -34,29 +34,27 @@ u16_strncmp (const uint16_t *s1, const uint16_t *s2, size_t n)
/* Note that the UTF-16 encoding does NOT preserve lexicographic order.
Namely, if uc1 is a 16-bit character and [uc2a,uc2b] is a surrogate pair,
we must enforce uc1 < [uc2a,uc2b], even if uc1 > uc2a. */
- for (; n > 0;)
+ for (; n > 0; n--)
{
uint16_t c1 = *s1++;
uint16_t c2 = *s2++;
- if (c1 != 0 && c1 == c2)
+ if (c1 == 0 || c1 != c2)
{
- n--;
- continue;
+ if (c1 < 0xd800 || c1 >= 0xe000)
+ {
+ if (!(c2 < 0xd800 || c2 >= 0xe000))
+ /* c2 is a surrogate, but c1 is not. */
+ return -1;
+ }
+ else
+ {
+ if (c2 < 0xd800 || c2 >= 0xe000)
+ /* c1 is a surrogate, but c2 is not. */
+ return 1;
+ }
+ return (int)c1 - (int)c2;
+ /* > 0 if c1 > c2, < 0 if c1 < c2, = 0 if c1 and c2 are both 0. */
}
- if (c1 < 0xd800 || c1 >= 0xe000)
- {
- if (!(c2 < 0xd800 || c2 >= 0xe000))
- /* c2 is a surrogate, but c1 is not. */
- return -1;
- }
- else
- {
- if (c2 < 0xd800 || c2 >= 0xe000)
- /* c1 is a surrogate, but c2 is not. */
- return 1;
- }
- return (int)c1 - (int)c2;
- /* > 0 if c1 > c2, < 0 if c1 < c2, = 0 if c1 and c2 are both 0. */
}
return 0;
}
diff --git a/lib/unistr/u16-strncpy.c b/lib/unistr/u16-strncpy.c
index d39caf5b..05d3ce05 100644
--- a/lib/unistr/u16-strncpy.c
+++ b/lib/unistr/u16-strncpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strnlen.c b/lib/unistr/u16-strnlen.c
index a00d5d8f..a41d2968 100644
--- a/lib/unistr/u16-strnlen.c
+++ b/lib/unistr/u16-strnlen.c
@@ -1,5 +1,5 @@
/* Determine bounded length of UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strpbrk.c b/lib/unistr/u16-strpbrk.c
index e9a65088..b846188b 100644
--- a/lib/unistr/u16-strpbrk.c
+++ b/lib/unistr/u16-strpbrk.c
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strrchr.c b/lib/unistr/u16-strrchr.c
index 6aa7c407..f00d0cd7 100644
--- a/lib/unistr/u16-strrchr.c
+++ b/lib/unistr/u16-strrchr.c
@@ -1,5 +1,5 @@
/* Search character in UTF-16 string.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
@@ -38,7 +38,6 @@ u16_strrchr (const uint16_t *s, ucs4_t uc)
/* Calling u16_strlen and then searching from the other end would cause more
memory accesses. Avoid that, at the cost of a few more comparisons. */
uint16_t *result = NULL;
- uint16_t c[2];
if (uc < 0x10000)
{
@@ -53,24 +52,28 @@ u16_strrchr (const uint16_t *s, ucs4_t uc)
}
}
else
- switch (u16_uctomb_aux (c, uc, 2))
- {
- case 2:
- if (*s)
- {
- uint16_t c0 = c[0];
- uint16_t c1 = c[1];
+ {
+ uint16_t c[2];
+
+ switch (u16_uctomb_aux (c, uc, 2))
+ {
+ case 2:
+ if (*s)
+ {
+ uint16_t c0 = c[0];
+ uint16_t c1 = c[1];
- /* FIXME: Maybe walking the string via u16_mblen is a win? */
- for (;; s++)
- {
- if (s[1] == 0)
- break;
- if (*s == c0 && s[1] == c1)
- result = (uint16_t *) s;
- }
- }
- break;
- }
+ /* FIXME: Maybe walking the string via u16_mblen is a win? */
+ for (;; s++)
+ {
+ if (s[1] == 0)
+ break;
+ if (*s == c0 && s[1] == c1)
+ result = (uint16_t *) s;
+ }
+ }
+ break;
+ }
+ }
return result;
}
diff --git a/lib/unistr/u16-strspn.c b/lib/unistr/u16-strspn.c
index 3b76049c..1494b570 100644
--- a/lib/unistr/u16-strspn.c
+++ b/lib/unistr/u16-strspn.c
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strstr.c b/lib/unistr/u16-strstr.c
index 6e0681dc..e2c1d480 100644
--- a/lib/unistr/u16-strstr.c
+++ b/lib/unistr/u16-strstr.c
@@ -1,5 +1,5 @@
/* Substring test for UTF-16 strings.
- Copyright (C) 1999, 2002, 2006, 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2010-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-strtok.c b/lib/unistr/u16-strtok.c
index 2d2b977b..7eaed457 100644
--- a/lib/unistr/u16-strtok.c
+++ b/lib/unistr/u16-strtok.c
@@ -1,5 +1,5 @@
/* Tokenize UTF-16 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-to-u32.c b/lib/unistr/u16-to-u32.c
index 51e42262..d5229ca8 100644
--- a/lib/unistr/u16-to-u32.c
+++ b/lib/unistr/u16-to-u32.c
@@ -1,5 +1,5 @@
/* Convert UTF-16 string to UTF-32 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
@@ -32,11 +32,10 @@ DST_UNIT *
FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
{
const SRC_UNIT *s_end = s + n;
+
/* Output string accumulator. */
DST_UNIT *result;
size_t allocated;
- size_t length;
-
if (resultbuf != NULL)
{
result = resultbuf;
@@ -47,18 +46,16 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
result = NULL;
allocated = 0;
}
- length = 0;
+ size_t length = 0;
/* Invariants:
result is either == resultbuf or == NULL or malloc-allocated.
If length > 0, then result != NULL. */
while (s < s_end)
{
- ucs4_t uc;
- int count;
-
/* Fetch a Unicode character from the input string. */
- count = u16_mbtoucr (&uc, s, s_end - s);
+ ucs4_t uc;
+ int count = u16_mbtoucr (&uc, s, s_end - s);
if (count < 0)
{
if (!(result == resultbuf || result == NULL))
@@ -71,11 +68,11 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
/* Store it in the output string. */
if (length + 1 > allocated)
{
- DST_UNIT *memory;
-
allocated = (allocated > 0 ? 2 * allocated : 12);
if (length + 1 > allocated)
allocated = length + 1;
+
+ DST_UNIT *memory;
if (result == resultbuf || result == NULL)
memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
else
@@ -113,9 +110,8 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- DST_UNIT *memory;
-
- memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ DST_UNIT *memory =
+ (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/unistr/u16-to-u8.c b/lib/unistr/u16-to-u8.c
index d9f092c4..1af65d65 100644
--- a/lib/unistr/u16-to-u8.c
+++ b/lib/unistr/u16-to-u8.c
@@ -1,5 +1,5 @@
/* Convert UTF-16 string to UTF-8 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -40,11 +40,10 @@ DST_UNIT *
FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
{
const SRC_UNIT *s_end = s + n;
+
/* Output string accumulator. */
DST_UNIT *result;
size_t allocated;
- size_t length;
-
if (resultbuf != NULL)
{
result = resultbuf;
@@ -55,18 +54,16 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
result = NULL;
allocated = 0;
}
- length = 0;
+ size_t length = 0;
/* Invariants:
result is either == resultbuf or == NULL or malloc-allocated.
If length > 0, then result != NULL. */
while (s < s_end)
{
- ucs4_t uc;
- int count;
-
/* Fetch a Unicode character from the input string. */
- count = u16_mbtoucr (&uc, s, s_end - s);
+ ucs4_t uc;
+ int count = u16_mbtoucr (&uc, s, s_end - s);
if (count < 0)
{
if (!(result == resultbuf || result == NULL))
@@ -87,11 +84,11 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
}
if (count == -2)
{
- DST_UNIT *memory;
-
allocated = (allocated > 0 ? 2 * allocated : 12);
if (length + 6 > allocated)
allocated = length + 6;
+
+ DST_UNIT *memory;
if (result == resultbuf || result == NULL)
memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
else
@@ -132,9 +129,8 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- DST_UNIT *memory;
-
- memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ DST_UNIT *memory =
+ (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/unistr/u16-uctomb-aux.c b/lib/unistr/u16-uctomb-aux.c
index c6c04ecf..a0e384e4 100644
--- a/lib/unistr/u16-uctomb-aux.c
+++ b/lib/unistr/u16-uctomb-aux.c
@@ -1,5 +1,5 @@
/* Conversion UCS-4 to UTF-16.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u16-uctomb.c b/lib/unistr/u16-uctomb.c
index 4ceea331..9e649447 100644
--- a/lib/unistr/u16-uctomb.c
+++ b/lib/unistr/u16-uctomb.c
@@ -1,5 +1,5 @@
/* Store a character in UTF-16 string.
- Copyright (C) 2002, 2005-2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005-2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-check.c b/lib/unistr/u32-check.c
index e6d95e98..abcc26d1 100644
--- a/lib/unistr/u32-check.c
+++ b/lib/unistr/u32-check.c
@@ -1,5 +1,5 @@
/* Check UTF-32 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-chr.c b/lib/unistr/u32-chr.c
index 956c33af..09be3107 100644
--- a/lib/unistr/u32-chr.c
+++ b/lib/unistr/u32-chr.c
@@ -1,5 +1,5 @@
/* Search character in piece of UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u32-cmp.c b/lib/unistr/u32-cmp.c
index e38c7e81..dddb4bc0 100644
--- a/lib/unistr/u32-cmp.c
+++ b/lib/unistr/u32-cmp.c
@@ -1,5 +1,5 @@
/* Compare pieces of UTF-32 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -31,18 +31,16 @@
int
u32_cmp (const uint32_t *s1, const uint32_t *s2, size_t n)
{
- for (; n > 0;)
+ for (; n > 0; n--)
{
uint32_t uc1 = *s1++;
uint32_t uc2 = *s2++;
- if (uc1 == uc2)
+ if (uc1 != uc2)
{
- n--;
- continue;
+ /* Note that uc1 and uc2 each have at most 31 bits. */
+ return (int)uc1 - (int)uc2;
+ /* > 0 if uc1 > uc2, < 0 if uc1 < uc2. */
}
- /* Note that uc1 and uc2 each have at most 31 bits. */
- return (int)uc1 - (int)uc2;
- /* > 0 if uc1 > uc2, < 0 if uc1 < uc2. */
}
return 0;
}
diff --git a/lib/unistr/u32-cmp2.c b/lib/unistr/u32-cmp2.c
index 4a31f8cf..605d8834 100644
--- a/lib/unistr/u32-cmp2.c
+++ b/lib/unistr/u32-cmp2.c
@@ -1,5 +1,5 @@
/* Compare pieces of UTF-32 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unistr/u32-cpy-alloc.c b/lib/unistr/u32-cpy-alloc.c
index 2b48d61f..37aa8c04 100644
--- a/lib/unistr/u32-cpy-alloc.c
+++ b/lib/unistr/u32-cpy-alloc.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-cpy.c b/lib/unistr/u32-cpy.c
index 27275497..fa030b66 100644
--- a/lib/unistr/u32-cpy.c
+++ b/lib/unistr/u32-cpy.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u32-endswith.c b/lib/unistr/u32-endswith.c
index 6f1cd5cb..a9b8d2a4 100644
--- a/lib/unistr/u32-endswith.c
+++ b/lib/unistr/u32-endswith.c
@@ -1,5 +1,5 @@
/* Substring test for UTF-32 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-mblen.c b/lib/unistr/u32-mblen.c
index f3b4fa14..377ad60a 100644
--- a/lib/unistr/u32-mblen.c
+++ b/lib/unistr/u32-mblen.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-32 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-mbsnlen.c b/lib/unistr/u32-mbsnlen.c
index e949beb0..74cc07d8 100644
--- a/lib/unistr/u32-mbsnlen.c
+++ b/lib/unistr/u32-mbsnlen.c
@@ -1,5 +1,5 @@
/* Count characters in UTF-32 string.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
diff --git a/lib/unistr/u32-mbtouc-unsafe.c b/lib/unistr/u32-mbtouc-unsafe.c
index 9e8bfb64..f4150885 100644
--- a/lib/unistr/u32-mbtouc-unsafe.c
+++ b/lib/unistr/u32-mbtouc-unsafe.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-32 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u32-mbtouc.c b/lib/unistr/u32-mbtouc.c
index 2352917e..ddc60783 100644
--- a/lib/unistr/u32-mbtouc.c
+++ b/lib/unistr/u32-mbtouc.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-32 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-mbtoucr.c b/lib/unistr/u32-mbtoucr.c
index 29a38fca..83e34732 100644
--- a/lib/unistr/u32-mbtoucr.c
+++ b/lib/unistr/u32-mbtoucr.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-32 string, returning an error code.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-move.c b/lib/unistr/u32-move.c
index c07e04de..a07d7cd2 100644
--- a/lib/unistr/u32-move.c
+++ b/lib/unistr/u32-move.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-next.c b/lib/unistr/u32-next.c
index 9ed2ef13..1bcf86f4 100644
--- a/lib/unistr/u32-next.c
+++ b/lib/unistr/u32-next.c
@@ -1,5 +1,5 @@
/* Iterate over next character in UTF-32 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -34,9 +34,7 @@
const uint32_t *
u32_next (ucs4_t *puc, const uint32_t *s)
{
- int count;
-
- count = u32_strmbtouc (puc, s);
+ int count = u32_strmbtouc (puc, s);
if (count > 0)
return s + count;
else
diff --git a/lib/unistr/u32-pcpy.c b/lib/unistr/u32-pcpy.c
index 135151c7..f05d9355 100644
--- a/lib/unistr/u32-pcpy.c
+++ b/lib/unistr/u32-pcpy.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-32 string, return pointer after last written unit.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2023.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u32-prev.c b/lib/unistr/u32-prev.c
index 626be452..d8369a70 100644
--- a/lib/unistr/u32-prev.c
+++ b/lib/unistr/u32-prev.c
@@ -1,5 +1,5 @@
/* Iterate over previous character in UTF-32 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-set.c b/lib/unistr/u32-set.c
index 157ad5f5..5c1a9d5c 100644
--- a/lib/unistr/u32-set.c
+++ b/lib/unistr/u32-set.c
@@ -1,5 +1,5 @@
/* Fill UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-startswith.c b/lib/unistr/u32-startswith.c
index 3c2b759d..a96a390d 100644
--- a/lib/unistr/u32-startswith.c
+++ b/lib/unistr/u32-startswith.c
@@ -1,5 +1,5 @@
/* Substring test for UTF-32 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-stpcpy.c b/lib/unistr/u32-stpcpy.c
index dd5b5e3a..5d4937db 100644
--- a/lib/unistr/u32-stpcpy.c
+++ b/lib/unistr/u32-stpcpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-stpncpy.c b/lib/unistr/u32-stpncpy.c
index 3cf683a5..6c657ae1 100644
--- a/lib/unistr/u32-stpncpy.c
+++ b/lib/unistr/u32-stpncpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strcat.c b/lib/unistr/u32-strcat.c
index cb4d3b7b..5ef4a881 100644
--- a/lib/unistr/u32-strcat.c
+++ b/lib/unistr/u32-strcat.c
@@ -1,5 +1,5 @@
/* Concatenate UTF-32 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u32-strchr.c b/lib/unistr/u32-strchr.c
index 8b8abfd7..7e91b09b 100644
--- a/lib/unistr/u32-strchr.c
+++ b/lib/unistr/u32-strchr.c
@@ -1,5 +1,5 @@
/* Search character in UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strcmp.c b/lib/unistr/u32-strcmp.c
index d0ec7d3c..346d46e9 100644
--- a/lib/unistr/u32-strcmp.c
+++ b/lib/unistr/u32-strcmp.c
@@ -1,5 +1,5 @@
/* Compare UTF-32 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -35,10 +35,11 @@ u32_strcmp (const uint32_t *s1, const uint32_t *s2)
{
uint32_t uc1 = *s1++;
uint32_t uc2 = *s2++;
- if (uc1 != 0 && uc1 == uc2)
- continue;
- /* Note that uc1 and uc2 each have at most 31 bits. */
- return (int)uc1 - (int)uc2;
- /* > 0 if uc1 > uc2, < 0 if uc1 < uc2. */
+ if (uc1 == 0 || uc1 != uc2)
+ {
+ /* Note that uc1 and uc2 each have at most 31 bits. */
+ return (int)uc1 - (int)uc2;
+ /* > 0 if uc1 > uc2, < 0 if uc1 < uc2. */
+ }
}
}
diff --git a/lib/unistr/u32-strcoll.c b/lib/unistr/u32-strcoll.c
index a20ba943..47d5161f 100644
--- a/lib/unistr/u32-strcoll.c
+++ b/lib/unistr/u32-strcoll.c
@@ -1,5 +1,5 @@
/* Compare UTF-32 strings using the collation rules of the current locale.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unistr/u32-strcpy.c b/lib/unistr/u32-strcpy.c
index f64a31f2..8a3b937b 100644
--- a/lib/unistr/u32-strcpy.c
+++ b/lib/unistr/u32-strcpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strcspn.c b/lib/unistr/u32-strcspn.c
index e03289ce..a7add17d 100644
--- a/lib/unistr/u32-strcspn.c
+++ b/lib/unistr/u32-strcspn.c
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strdup.c b/lib/unistr/u32-strdup.c
index 633ce0e9..4c5ca4f8 100644
--- a/lib/unistr/u32-strdup.c
+++ b/lib/unistr/u32-strdup.c
@@ -1,5 +1,5 @@
/* Copy UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strlen.c b/lib/unistr/u32-strlen.c
index 5aa8236e..496eb57b 100644
--- a/lib/unistr/u32-strlen.c
+++ b/lib/unistr/u32-strlen.c
@@ -1,5 +1,5 @@
/* Determine length of UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u32-strmblen.c b/lib/unistr/u32-strmblen.c
index 351ae6c5..1e71279a 100644
--- a/lib/unistr/u32-strmblen.c
+++ b/lib/unistr/u32-strmblen.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-32 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strmbtouc.c b/lib/unistr/u32-strmbtouc.c
index 3bdac61f..b02362a5 100644
--- a/lib/unistr/u32-strmbtouc.c
+++ b/lib/unistr/u32-strmbtouc.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-32 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strncat.c b/lib/unistr/u32-strncat.c
index a753526a..c611aa0b 100644
--- a/lib/unistr/u32-strncat.c
+++ b/lib/unistr/u32-strncat.c
@@ -1,5 +1,5 @@
/* Concatenate UTF-32 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strncmp.c b/lib/unistr/u32-strncmp.c
index 98461ad7..b6d2c038 100644
--- a/lib/unistr/u32-strncmp.c
+++ b/lib/unistr/u32-strncmp.c
@@ -1,5 +1,5 @@
/* Compare UTF-32 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -31,18 +31,16 @@
int
u32_strncmp (const uint32_t *s1, const uint32_t *s2, size_t n)
{
- for (; n > 0;)
+ for (; n > 0; n--)
{
uint32_t uc1 = *s1++;
uint32_t uc2 = *s2++;
- if (uc1 != 0 && uc1 == uc2)
+ if (uc1 == 0 || uc1 != uc2)
{
- n--;
- continue;
+ /* Note that uc1 and uc2 each have at most 31 bits. */
+ return (int)uc1 - (int)uc2;
+ /* > 0 if uc1 > uc2, < 0 if uc1 < uc2, = 0 if uc1 and uc2 are both 0. */
}
- /* Note that uc1 and uc2 each have at most 31 bits. */
- return (int)uc1 - (int)uc2;
- /* > 0 if uc1 > uc2, < 0 if uc1 < uc2, = 0 if uc1 and uc2 are both 0. */
}
return 0;
}
diff --git a/lib/unistr/u32-strncpy.c b/lib/unistr/u32-strncpy.c
index c3a932f1..8186c581 100644
--- a/lib/unistr/u32-strncpy.c
+++ b/lib/unistr/u32-strncpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strnlen.c b/lib/unistr/u32-strnlen.c
index 246c2fbe..3a32c4d8 100644
--- a/lib/unistr/u32-strnlen.c
+++ b/lib/unistr/u32-strnlen.c
@@ -1,5 +1,5 @@
/* Determine bounded length of UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strpbrk.c b/lib/unistr/u32-strpbrk.c
index f057dea0..aa46e1aa 100644
--- a/lib/unistr/u32-strpbrk.c
+++ b/lib/unistr/u32-strpbrk.c
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strrchr.c b/lib/unistr/u32-strrchr.c
index 10d5958c..fa7ee149 100644
--- a/lib/unistr/u32-strrchr.c
+++ b/lib/unistr/u32-strrchr.c
@@ -1,5 +1,5 @@
/* Search character in UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strspn.c b/lib/unistr/u32-strspn.c
index 4c88dbfc..7bea5aff 100644
--- a/lib/unistr/u32-strspn.c
+++ b/lib/unistr/u32-strspn.c
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strstr.c b/lib/unistr/u32-strstr.c
index 08b97453..be981e02 100644
--- a/lib/unistr/u32-strstr.c
+++ b/lib/unistr/u32-strstr.c
@@ -1,5 +1,5 @@
/* Substring test for UTF-32 strings.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-strtok.c b/lib/unistr/u32-strtok.c
index 2640f901..e7a23447 100644
--- a/lib/unistr/u32-strtok.c
+++ b/lib/unistr/u32-strtok.c
@@ -1,5 +1,5 @@
/* Tokenize UTF-32 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u32-to-u16.c b/lib/unistr/u32-to-u16.c
index 94530e2b..4ea9125a 100644
--- a/lib/unistr/u32-to-u16.c
+++ b/lib/unistr/u32-to-u16.c
@@ -1,5 +1,5 @@
/* Convert UTF-32 string to UTF-16 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -40,11 +40,10 @@ DST_UNIT *
FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
{
const SRC_UNIT *s_end = s + n;
+
/* Output string accumulator. */
DST_UNIT *result;
size_t allocated;
- size_t length;
-
if (resultbuf != NULL)
{
result = resultbuf;
@@ -55,23 +54,20 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
result = NULL;
allocated = 0;
}
- length = 0;
+ size_t length = 0;
/* Invariants:
result is either == resultbuf or == NULL or malloc-allocated.
If length > 0, then result != NULL. */
while (s < s_end)
{
- ucs4_t uc;
- int count;
-
/* Fetch a Unicode character from the input string. */
- uc = *s++;
+ ucs4_t uc = *s++;
/* No need to call the safe variant u32_mbtouc, because
u16_uctomb will verify uc anyway. */
/* Store it in the output string. */
- count = u16_uctomb (result + length, uc, allocated - length);
+ int count = u16_uctomb (result + length, uc, allocated - length);
if (count == -1)
{
if (!(result == resultbuf || result == NULL))
@@ -81,11 +77,11 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
}
if (count == -2)
{
- DST_UNIT *memory;
-
allocated = (allocated > 0 ? 2 * allocated : 12);
if (length + 2 > allocated)
allocated = length + 2;
+
+ DST_UNIT *memory;
if (result == resultbuf || result == NULL)
memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
else
@@ -126,9 +122,8 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- DST_UNIT *memory;
-
- memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ DST_UNIT *memory =
+ (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/unistr/u32-to-u8.c b/lib/unistr/u32-to-u8.c
index 0c4f0bc3..6460130b 100644
--- a/lib/unistr/u32-to-u8.c
+++ b/lib/unistr/u32-to-u8.c
@@ -1,5 +1,5 @@
/* Convert UTF-32 string to UTF-8 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
@@ -32,11 +32,10 @@ DST_UNIT *
FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
{
const SRC_UNIT *s_end = s + n;
+
/* Output string accumulator. */
DST_UNIT *result;
size_t allocated;
- size_t length;
-
if (resultbuf != NULL)
{
result = resultbuf;
@@ -47,23 +46,20 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
result = NULL;
allocated = 0;
}
- length = 0;
+ size_t length = 0;
/* Invariants:
result is either == resultbuf or == NULL or malloc-allocated.
If length > 0, then result != NULL. */
while (s < s_end)
{
- ucs4_t uc;
- int count;
-
/* Fetch a Unicode character from the input string. */
- uc = *s++;
+ ucs4_t uc = *s++;
/* No need to call the safe variant u32_mbtouc, because
u8_uctomb will verify uc anyway. */
/* Store it in the output string. */
- count = u8_uctomb (result + length, uc, allocated - length);
+ int count = u8_uctomb (result + length, uc, allocated - length);
if (count == -1)
{
if (!(result == resultbuf || result == NULL))
@@ -73,11 +69,11 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
}
if (count == -2)
{
- DST_UNIT *memory;
-
allocated = (allocated > 0 ? 2 * allocated : 12);
if (length + 6 > allocated)
allocated = length + 6;
+
+ DST_UNIT *memory;
if (result == resultbuf || result == NULL)
memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
else
@@ -118,9 +114,8 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- DST_UNIT *memory;
-
- memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ DST_UNIT *memory =
+ (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/unistr/u32-uctomb.c b/lib/unistr/u32-uctomb.c
index f68e4c0a..a2d9fa76 100644
--- a/lib/unistr/u32-uctomb.c
+++ b/lib/unistr/u32-uctomb.c
@@ -1,5 +1,5 @@
/* Store a character in UTF-32 string.
- Copyright (C) 2002, 2005-2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005-2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-check.c b/lib/unistr/u8-check.c
index e7c56f1e..f7fcc620 100644
--- a/lib/unistr/u8-check.c
+++ b/lib/unistr/u8-check.c
@@ -1,5 +1,5 @@
/* Check UTF-8 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-chr.c b/lib/unistr/u8-chr.c
index c34e1fe3..5f98cb7f 100644
--- a/lib/unistr/u8-chr.c
+++ b/lib/unistr/u8-chr.c
@@ -1,5 +1,5 @@
/* Search character in piece of UTF-8 string.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
@@ -46,8 +46,7 @@ u8_chr (const uint8_t *s, size_t n, ucs4_t uc)
{
uint8_t c[6];
- size_t uc_size;
- uc_size = u8_uctomb_aux (c, uc, 6);
+ size_t uc_size = u8_uctomb_aux (c, uc, 6);
if (n < uc_size)
return NULL;
diff --git a/lib/unistr/u8-cmp.c b/lib/unistr/u8-cmp.c
index b3926547..d00b9201 100644
--- a/lib/unistr/u8-cmp.c
+++ b/lib/unistr/u8-cmp.c
@@ -1,5 +1,5 @@
/* Compare pieces of UTF-8 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-cmp2.c b/lib/unistr/u8-cmp2.c
index f9bc3f90..54c9a76b 100644
--- a/lib/unistr/u8-cmp2.c
+++ b/lib/unistr/u8-cmp2.c
@@ -1,5 +1,5 @@
/* Compare pieces of UTF-8 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unistr/u8-cpy-alloc.c b/lib/unistr/u8-cpy-alloc.c
index 247b07c5..f3caf516 100644
--- a/lib/unistr/u8-cpy-alloc.c
+++ b/lib/unistr/u8-cpy-alloc.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-8 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-cpy.c b/lib/unistr/u8-cpy.c
index 7f19bf78..d5ea0412 100644
--- a/lib/unistr/u8-cpy.c
+++ b/lib/unistr/u8-cpy.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-8 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-endswith.c b/lib/unistr/u8-endswith.c
index 8135e88e..c684262a 100644
--- a/lib/unistr/u8-endswith.c
+++ b/lib/unistr/u8-endswith.c
@@ -1,5 +1,5 @@
/* Substring test for UTF-8 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-mblen.c b/lib/unistr/u8-mblen.c
index e2e4ba39..2d8663dd 100644
--- a/lib/unistr/u8-mblen.c
+++ b/lib/unistr/u8-mblen.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-8 string.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
diff --git a/lib/unistr/u8-mbsnlen.c b/lib/unistr/u8-mbsnlen.c
index d7043779..7cb168dd 100644
--- a/lib/unistr/u8-mbsnlen.c
+++ b/lib/unistr/u8-mbsnlen.c
@@ -1,5 +1,5 @@
/* Count characters in UTF-8 string.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software.
@@ -31,9 +31,7 @@
size_t
u8_mbsnlen (const uint8_t *s, size_t n)
{
- size_t characters;
-
- characters = 0;
+ size_t characters = 0;
while (n > 0)
{
ucs4_t uc;
diff --git a/lib/unistr/u8-mbtouc-aux.c b/lib/unistr/u8-mbtouc-aux.c
index 9f80d7e2..23554b73 100644
--- a/lib/unistr/u8-mbtouc-aux.c
+++ b/lib/unistr/u8-mbtouc-aux.c
@@ -1,5 +1,5 @@
/* Conversion UTF-8 to UCS-4.
- Copyright (C) 2001-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-mbtouc-unsafe-aux.c b/lib/unistr/u8-mbtouc-unsafe-aux.c
index 1683b8ad..eef38aa8 100644
--- a/lib/unistr/u8-mbtouc-unsafe-aux.c
+++ b/lib/unistr/u8-mbtouc-unsafe-aux.c
@@ -1,5 +1,5 @@
/* Conversion UTF-8 to UCS-4.
- Copyright (C) 2001-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-mbtouc-unsafe.c b/lib/unistr/u8-mbtouc-unsafe.c
index cf93e56f..718fb20d 100644
--- a/lib/unistr/u8-mbtouc-unsafe.c
+++ b/lib/unistr/u8-mbtouc-unsafe.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-8 string.
- Copyright (C) 1999-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-mbtouc.c b/lib/unistr/u8-mbtouc.c
index 6bcf085a..711e61d6 100644
--- a/lib/unistr/u8-mbtouc.c
+++ b/lib/unistr/u8-mbtouc.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-8 string.
- Copyright (C) 1999-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-mbtoucr.c b/lib/unistr/u8-mbtoucr.c
index 63415ab0..fa845675 100644
--- a/lib/unistr/u8-mbtoucr.c
+++ b/lib/unistr/u8-mbtoucr.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-8 string, returning an error code.
- Copyright (C) 1999-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-move.c b/lib/unistr/u8-move.c
index a31e36b1..00da3700 100644
--- a/lib/unistr/u8-move.c
+++ b/lib/unistr/u8-move.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-8 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-next.c b/lib/unistr/u8-next.c
index 3701701a..0d4d324a 100644
--- a/lib/unistr/u8-next.c
+++ b/lib/unistr/u8-next.c
@@ -1,5 +1,5 @@
/* Iterate over next character in UTF-8 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -34,9 +34,7 @@
const uint8_t *
u8_next (ucs4_t *puc, const uint8_t *s)
{
- int count;
-
- count = u8_strmbtouc (puc, s);
+ int count = u8_strmbtouc (puc, s);
if (count > 0)
return s + count;
else
diff --git a/lib/unistr/u8-pcpy.c b/lib/unistr/u8-pcpy.c
index e1462691..9e7990b3 100644
--- a/lib/unistr/u8-pcpy.c
+++ b/lib/unistr/u8-pcpy.c
@@ -1,5 +1,5 @@
/* Copy piece of UTF-8 string, return pointer after last written unit.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2023.
This file is free software.
diff --git a/lib/unistr/u8-prev.c b/lib/unistr/u8-prev.c
index e9d0eec5..52ad4c7c 100644
--- a/lib/unistr/u8-prev.c
+++ b/lib/unistr/u8-prev.c
@@ -1,5 +1,5 @@
/* Iterate over previous character in UTF-8 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-set.c b/lib/unistr/u8-set.c
index f9a9b9f1..0d196579 100644
--- a/lib/unistr/u8-set.c
+++ b/lib/unistr/u8-set.c
@@ -1,5 +1,5 @@
/* Fill UTF-8 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-startswith.c b/lib/unistr/u8-startswith.c
index 741480d0..391b3308 100644
--- a/lib/unistr/u8-startswith.c
+++ b/lib/unistr/u8-startswith.c
@@ -1,5 +1,5 @@
/* Substring test for UTF-8 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-stpcpy.c b/lib/unistr/u8-stpcpy.c
index 5e2a1d1b..06fe0998 100644
--- a/lib/unistr/u8-stpcpy.c
+++ b/lib/unistr/u8-stpcpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-8 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-stpncpy.c b/lib/unistr/u8-stpncpy.c
index a81be2a8..ba17f208 100644
--- a/lib/unistr/u8-stpncpy.c
+++ b/lib/unistr/u8-stpncpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-8 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strcat.c b/lib/unistr/u8-strcat.c
index a9ecca97..bc6cda6f 100644
--- a/lib/unistr/u8-strcat.c
+++ b/lib/unistr/u8-strcat.c
@@ -1,5 +1,5 @@
/* Concatenate UTF-8 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strchr.c b/lib/unistr/u8-strchr.c
index 3ccf0516..30468be1 100644
--- a/lib/unistr/u8-strchr.c
+++ b/lib/unistr/u8-strchr.c
@@ -1,5 +1,5 @@
/* Search character in UTF-8 string.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
@@ -37,8 +37,6 @@
uint8_t *
u8_strchr (const uint8_t *s, ucs4_t uc)
{
- uint8_t c[6];
-
if (uc < 0x80)
{
uint8_t c0 = uc;
@@ -65,187 +63,191 @@ u8_strchr (const uint8_t *s, ucs4_t uc)
}
}
else
+ {
/* Loops equivalent to strstr, optimized for a specific length (2, 3, 4)
of the needle. We use an algorithm similar to Boyer-Moore which
is documented in lib/unistr/u8-chr.c. There is additional
complication because we need to check after every byte for
a NUL byte, but the idea is the same. */
- switch (u8_uctomb_aux (c, uc, 6))
- {
- case 2:
- if (*s == 0 || s[1] == 0)
- break;
- {
- uint8_t c0 = c[0];
- uint8_t c1 = c[1];
- /* Search for { c0, c1 }. */
- uint8_t s1 = s[1];
-
- for (;;)
- {
- /* Here s[0] != 0, s[1] != 0.
- Test whether s[0..1] == { c0, c1 }. */
- if (s1 == c1)
- {
- if (*s == c0)
- return (uint8_t *) s;
- else
- /* Skip the search at s + 1, because s[1] = c1 < c0. */
- goto case2_skip2;
- }
- else
- {
- if (s1 == c0)
- goto case2_skip1;
- else
- /* Skip the search at s + 1, because s[1] != c0. */
- goto case2_skip2;
- }
- case2_skip2:
- s++;
- s1 = s[1];
- if (s[1] == 0)
- break;
- case2_skip1:
- s++;
- s1 = s[1];
- if (s[1] == 0)
- break;
- }
- }
- break;
+ uint8_t c[6];
- case 3:
- if (*s == 0 || s[1] == 0 || s[2] == 0)
- break;
+ switch (u8_uctomb_aux (c, uc, 6))
{
- uint8_t c0 = c[0];
- uint8_t c1 = c[1];
- uint8_t c2 = c[2];
- /* Search for { c0, c1, c2 }. */
- uint8_t s2 = s[2];
+ case 2:
+ if (*s == 0 || s[1] == 0)
+ break;
+ {
+ uint8_t c0 = c[0];
+ uint8_t c1 = c[1];
+ /* Search for { c0, c1 }. */
+ uint8_t s1 = s[1];
+
+ for (;;)
+ {
+ /* Here s[0] != 0, s[1] != 0.
+ Test whether s[0..1] == { c0, c1 }. */
+ if (s1 == c1)
+ {
+ if (*s == c0)
+ return (uint8_t *) s;
+ else
+ /* Skip the search at s + 1, because s[1] = c1 < c0. */
+ goto case2_skip2;
+ }
+ else
+ {
+ if (s1 == c0)
+ goto case2_skip1;
+ else
+ /* Skip the search at s + 1, because s[1] != c0. */
+ goto case2_skip2;
+ }
+ case2_skip2:
+ s++;
+ s1 = s[1];
+ if (s[1] == 0)
+ break;
+ case2_skip1:
+ s++;
+ s1 = s[1];
+ if (s[1] == 0)
+ break;
+ }
+ }
+ break;
- for (;;)
- {
- /* Here s[0] != 0, s[1] != 0, s[2] != 0.
- Test whether s[0..2] == { c0, c1, c2 }. */
- if (s2 == c2)
- {
- if (s[1] == c1 && *s == c0)
- return (uint8_t *) s;
- else
- /* If c2 != c1:
- Skip the search at s + 1, because s[2] == c2 != c1.
- Skip the search at s + 2, because s[2] == c2 < c0. */
- if (c2 == c1)
+ case 3:
+ if (*s == 0 || s[1] == 0 || s[2] == 0)
+ break;
+ {
+ uint8_t c0 = c[0];
+ uint8_t c1 = c[1];
+ uint8_t c2 = c[2];
+ /* Search for { c0, c1, c2 }. */
+ uint8_t s2 = s[2];
+
+ for (;;)
+ {
+ /* Here s[0] != 0, s[1] != 0, s[2] != 0.
+ Test whether s[0..2] == { c0, c1, c2 }. */
+ if (s2 == c2)
+ {
+ if (s[1] == c1 && *s == c0)
+ return (uint8_t *) s;
+ else
+ /* If c2 != c1:
+ Skip the search at s + 1, because s[2] == c2 != c1.
+ Skip the search at s + 2, because s[2] == c2 < c0. */
+ if (c2 == c1)
+ goto case3_skip1;
+ else
+ goto case3_skip3;
+ }
+ else
+ {
+ if (s2 == c1)
goto case3_skip1;
+ else if (s2 == c0)
+ /* Skip the search at s + 1, because s[2] != c1. */
+ goto case3_skip2;
else
+ /* Skip the search at s + 1, because s[2] != c1.
+ Skip the search at s + 2, because s[2] != c0. */
goto case3_skip3;
- }
- else
- {
- if (s2 == c1)
- goto case3_skip1;
- else if (s2 == c0)
- /* Skip the search at s + 1, because s[2] != c1. */
- goto case3_skip2;
- else
- /* Skip the search at s + 1, because s[2] != c1.
- Skip the search at s + 2, because s[2] != c0. */
- goto case3_skip3;
- }
- case3_skip3:
- s++;
- s2 = s[2];
- if (s[2] == 0)
- break;
- case3_skip2:
- s++;
- s2 = s[2];
- if (s[2] == 0)
- break;
- case3_skip1:
- s++;
- s2 = s[2];
- if (s[2] == 0)
- break;
- }
- }
- break;
-
- case 4:
- if (*s == 0 || s[1] == 0 || s[2] == 0 || s[3] == 0)
+ }
+ case3_skip3:
+ s++;
+ s2 = s[2];
+ if (s[2] == 0)
+ break;
+ case3_skip2:
+ s++;
+ s2 = s[2];
+ if (s[2] == 0)
+ break;
+ case3_skip1:
+ s++;
+ s2 = s[2];
+ if (s[2] == 0)
+ break;
+ }
+ }
break;
- {
- uint8_t c0 = c[0];
- uint8_t c1 = c[1];
- uint8_t c2 = c[2];
- uint8_t c3 = c[3];
- /* Search for { c0, c1, c2, c3 }. */
- uint8_t s3 = s[3];
- for (;;)
- {
- /* Here s[0] != 0, s[1] != 0, s[2] != 0, s[3] != 0.
- Test whether s[0..3] == { c0, c1, c2, c3 }. */
- if (s3 == c3)
- {
- if (s[2] == c2 && s[1] == c1 && *s == c0)
- return (uint8_t *) s;
- else
- /* If c3 != c2:
- Skip the search at s + 1, because s[3] == c3 != c2.
- If c3 != c1:
- Skip the search at s + 2, because s[3] == c3 != c1.
- Skip the search at s + 3, because s[3] == c3 < c0. */
- if (c3 == c2)
+ case 4:
+ if (*s == 0 || s[1] == 0 || s[2] == 0 || s[3] == 0)
+ break;
+ {
+ uint8_t c0 = c[0];
+ uint8_t c1 = c[1];
+ uint8_t c2 = c[2];
+ uint8_t c3 = c[3];
+ /* Search for { c0, c1, c2, c3 }. */
+ uint8_t s3 = s[3];
+
+ for (;;)
+ {
+ /* Here s[0] != 0, s[1] != 0, s[2] != 0, s[3] != 0.
+ Test whether s[0..3] == { c0, c1, c2, c3 }. */
+ if (s3 == c3)
+ {
+ if (s[2] == c2 && s[1] == c1 && *s == c0)
+ return (uint8_t *) s;
+ else
+ /* If c3 != c2:
+ Skip the search at s + 1, because s[3] == c3 != c2.
+ If c3 != c1:
+ Skip the search at s + 2, because s[3] == c3 != c1.
+ Skip the search at s + 3, because s[3] == c3 < c0. */
+ if (c3 == c2)
+ goto case4_skip1;
+ else if (c3 == c1)
+ goto case4_skip2;
+ else
+ goto case4_skip4;
+ }
+ else
+ {
+ if (s3 == c2)
goto case4_skip1;
- else if (c3 == c1)
+ else if (s3 == c1)
+ /* Skip the search at s + 1, because s[3] != c2. */
goto case4_skip2;
+ else if (s3 == c0)
+ /* Skip the search at s + 1, because s[3] != c2.
+ Skip the search at s + 2, because s[3] != c1. */
+ goto case4_skip3;
else
+ /* Skip the search at s + 1, because s[3] != c2.
+ Skip the search at s + 2, because s[3] != c1.
+ Skip the search at s + 3, because s[3] != c0. */
goto case4_skip4;
- }
- else
- {
- if (s3 == c2)
- goto case4_skip1;
- else if (s3 == c1)
- /* Skip the search at s + 1, because s[3] != c2. */
- goto case4_skip2;
- else if (s3 == c0)
- /* Skip the search at s + 1, because s[3] != c2.
- Skip the search at s + 2, because s[3] != c1. */
- goto case4_skip3;
- else
- /* Skip the search at s + 1, because s[3] != c2.
- Skip the search at s + 2, because s[3] != c1.
- Skip the search at s + 3, because s[3] != c0. */
- goto case4_skip4;
- }
- case4_skip4:
- s++;
- s3 = s[3];
- if (s[3] == 0)
- break;
- case4_skip3:
- s++;
- s3 = s[3];
- if (s[3] == 0)
- break;
- case4_skip2:
- s++;
- s3 = s[3];
- if (s[3] == 0)
- break;
- case4_skip1:
- s++;
- s3 = s[3];
- if (s[3] == 0)
- break;
- }
+ }
+ case4_skip4:
+ s++;
+ s3 = s[3];
+ if (s[3] == 0)
+ break;
+ case4_skip3:
+ s++;
+ s3 = s[3];
+ if (s[3] == 0)
+ break;
+ case4_skip2:
+ s++;
+ s3 = s[3];
+ if (s[3] == 0)
+ break;
+ case4_skip1:
+ s++;
+ s3 = s[3];
+ if (s[3] == 0)
+ break;
+ }
+ }
+ break;
}
- break;
- }
+ }
return NULL;
}
diff --git a/lib/unistr/u8-strcmp.c b/lib/unistr/u8-strcmp.c
index f2ce1cd4..1deb3879 100644
--- a/lib/unistr/u8-strcmp.c
+++ b/lib/unistr/u8-strcmp.c
@@ -1,5 +1,5 @@
/* Compare UTF-8 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strcoll.c b/lib/unistr/u8-strcoll.c
index 550fd8a2..f0f5862f 100644
--- a/lib/unistr/u8-strcoll.c
+++ b/lib/unistr/u8-strcoll.c
@@ -1,5 +1,5 @@
/* Compare UTF-8 strings using the collation rules of the current locale.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/unistr/u8-strcpy.c b/lib/unistr/u8-strcpy.c
index 080ae83b..0354d6b2 100644
--- a/lib/unistr/u8-strcpy.c
+++ b/lib/unistr/u8-strcpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-8 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strcspn.c b/lib/unistr/u8-strcspn.c
index 196f9087..ee10b336 100644
--- a/lib/unistr/u8-strcspn.c
+++ b/lib/unistr/u8-strcspn.c
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-8 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strdup.c b/lib/unistr/u8-strdup.c
index e62bada6..da4f6dbb 100644
--- a/lib/unistr/u8-strdup.c
+++ b/lib/unistr/u8-strdup.c
@@ -1,5 +1,5 @@
/* Copy UTF-8 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strlen.c b/lib/unistr/u8-strlen.c
index 4bf35379..5ac6b940 100644
--- a/lib/unistr/u8-strlen.c
+++ b/lib/unistr/u8-strlen.c
@@ -1,5 +1,5 @@
/* Determine length of UTF-8 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-strmblen.c b/lib/unistr/u8-strmblen.c
index 253afb43..603b4277 100644
--- a/lib/unistr/u8-strmblen.c
+++ b/lib/unistr/u8-strmblen.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-8 string.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
diff --git a/lib/unistr/u8-strmbtouc.c b/lib/unistr/u8-strmbtouc.c
index 48c4d6c1..b3bbf060 100644
--- a/lib/unistr/u8-strmbtouc.c
+++ b/lib/unistr/u8-strmbtouc.c
@@ -1,5 +1,5 @@
/* Look at first character in UTF-8 string.
- Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
diff --git a/lib/unistr/u8-strncat.c b/lib/unistr/u8-strncat.c
index 3bbcc0d7..7bf11e6e 100644
--- a/lib/unistr/u8-strncat.c
+++ b/lib/unistr/u8-strncat.c
@@ -1,5 +1,5 @@
/* Concatenate UTF-8 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strncmp.c b/lib/unistr/u8-strncmp.c
index 97162e08..27c03bdf 100644
--- a/lib/unistr/u8-strncmp.c
+++ b/lib/unistr/u8-strncmp.c
@@ -1,5 +1,5 @@
/* Compare UTF-8 strings.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strncpy.c b/lib/unistr/u8-strncpy.c
index cc37f225..91fd0a74 100644
--- a/lib/unistr/u8-strncpy.c
+++ b/lib/unistr/u8-strncpy.c
@@ -1,5 +1,5 @@
/* Copy UTF-8 string.
- Copyright (C) 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strnlen.c b/lib/unistr/u8-strnlen.c
index c62bac3a..a161add2 100644
--- a/lib/unistr/u8-strnlen.c
+++ b/lib/unistr/u8-strnlen.c
@@ -1,5 +1,5 @@
/* Determine bounded length of UTF-8 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strpbrk.c b/lib/unistr/u8-strpbrk.c
index 3adc03f9..6e19129f 100644
--- a/lib/unistr/u8-strpbrk.c
+++ b/lib/unistr/u8-strpbrk.c
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-8 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strrchr.c b/lib/unistr/u8-strrchr.c
index 4f364fa6..c4fcee99 100644
--- a/lib/unistr/u8-strrchr.c
+++ b/lib/unistr/u8-strrchr.c
@@ -1,5 +1,5 @@
/* Search character in UTF-8 string.
- Copyright (C) 1999, 2002, 2006-2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 1999, 2002, 2006-2007, 2009-2026 Free Software Foundation,
Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
@@ -38,7 +38,6 @@ u8_strrchr (const uint8_t *s, ucs4_t uc)
/* Calling u8_strlen and then searching from the other end would cause more
memory accesses. Avoid that, at the cost of a few more comparisons. */
uint8_t *result = NULL;
- uint8_t c[6];
if (uc < 0x80)
{
@@ -53,61 +52,65 @@ u8_strrchr (const uint8_t *s, ucs4_t uc)
}
}
else
- switch (u8_uctomb_aux (c, uc, 6))
- {
- case 2:
- if (*s)
- {
- uint8_t c0 = c[0];
- uint8_t c1 = c[1];
+ {
+ uint8_t c[6];
+
+ switch (u8_uctomb_aux (c, uc, 6))
+ {
+ case 2:
+ if (*s)
+ {
+ uint8_t c0 = c[0];
+ uint8_t c1 = c[1];
- /* FIXME: Maybe walking the string via u8_mblen is a win? */
- for (;; s++)
- {
- if (s[1] == 0)
- break;
- if (*s == c0 && s[1] == c1)
- result = (uint8_t *) s;
- }
- }
- break;
+ /* FIXME: Maybe walking the string via u8_mblen is a win? */
+ for (;; s++)
+ {
+ if (s[1] == 0)
+ break;
+ if (*s == c0 && s[1] == c1)
+ result = (uint8_t *) s;
+ }
+ }
+ break;
- case 3:
- if (*s && s[1])
- {
- uint8_t c0 = c[0];
- uint8_t c1 = c[1];
- uint8_t c2 = c[2];
+ case 3:
+ if (*s && s[1])
+ {
+ uint8_t c0 = c[0];
+ uint8_t c1 = c[1];
+ uint8_t c2 = c[2];
- /* FIXME: Maybe walking the string via u8_mblen is a win? */
- for (;; s++)
- {
- if (s[2] == 0)
- break;
- if (*s == c0 && s[1] == c1 && s[2] == c2)
- result = (uint8_t *) s;
- }
- }
- break;
+ /* FIXME: Maybe walking the string via u8_mblen is a win? */
+ for (;; s++)
+ {
+ if (s[2] == 0)
+ break;
+ if (*s == c0 && s[1] == c1 && s[2] == c2)
+ result = (uint8_t *) s;
+ }
+ }
+ break;
- case 4:
- if (*s && s[1] && s[2])
- {
- uint8_t c0 = c[0];
- uint8_t c1 = c[1];
- uint8_t c2 = c[2];
- uint8_t c3 = c[3];
+ case 4:
+ if (*s && s[1] && s[2])
+ {
+ uint8_t c0 = c[0];
+ uint8_t c1 = c[1];
+ uint8_t c2 = c[2];
+ uint8_t c3 = c[3];
- /* FIXME: Maybe walking the string via u8_mblen is a win? */
- for (;; s++)
- {
- if (s[3] == 0)
- break;
- if (*s == c0 && s[1] == c1 && s[2] == c2 && s[3] == c3)
- result = (uint8_t *) s;
- }
- }
- break;
- }
+ /* FIXME: Maybe walking the string via u8_mblen is a win? */
+ for (;; s++)
+ {
+ if (s[3] == 0)
+ break;
+ if (*s == c0 && s[1] == c1 && s[2] == c2 && s[3] == c3)
+ result = (uint8_t *) s;
+ }
+ }
+ break;
+ }
+ }
return result;
}
diff --git a/lib/unistr/u8-strspn.c b/lib/unistr/u8-strspn.c
index 918983cc..c9e5cef3 100644
--- a/lib/unistr/u8-strspn.c
+++ b/lib/unistr/u8-strspn.c
@@ -1,5 +1,5 @@
/* Search for some characters in UTF-8 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strstr.c b/lib/unistr/u8-strstr.c
index eb30108e..23c64608 100644
--- a/lib/unistr/u8-strstr.c
+++ b/lib/unistr/u8-strstr.c
@@ -1,5 +1,5 @@
/* Substring test for UTF-8 strings.
- Copyright (C) 1999, 2002, 2006, 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2010-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-strtok.c b/lib/unistr/u8-strtok.c
index bfd7032f..8428b751 100644
--- a/lib/unistr/u8-strtok.c
+++ b/lib/unistr/u8-strtok.c
@@ -1,5 +1,5 @@
/* Tokenize UTF-8 string.
- Copyright (C) 1999, 2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/unistr/u8-to-u16.c b/lib/unistr/u8-to-u16.c
index 64bd7a69..301a0916 100644
--- a/lib/unistr/u8-to-u16.c
+++ b/lib/unistr/u8-to-u16.c
@@ -1,5 +1,5 @@
/* Convert UTF-8 string to UTF-16 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -40,11 +40,10 @@ DST_UNIT *
FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
{
const SRC_UNIT *s_end = s + n;
+
/* Output string accumulator. */
DST_UNIT *result;
size_t allocated;
- size_t length;
-
if (resultbuf != NULL)
{
result = resultbuf;
@@ -55,18 +54,16 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
result = NULL;
allocated = 0;
}
- length = 0;
+ size_t length = 0;
/* Invariants:
result is either == resultbuf or == NULL or malloc-allocated.
If length > 0, then result != NULL. */
while (s < s_end)
{
- ucs4_t uc;
- int count;
-
/* Fetch a Unicode character from the input string. */
- count = u8_mbtoucr (&uc, s, s_end - s);
+ ucs4_t uc;
+ int count = u8_mbtoucr (&uc, s, s_end - s);
if (count < 0)
{
if (!(result == resultbuf || result == NULL))
@@ -87,11 +84,11 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
}
if (count == -2)
{
- DST_UNIT *memory;
-
allocated = (allocated > 0 ? 2 * allocated : 12);
if (length + 2 > allocated)
allocated = length + 2;
+
+ DST_UNIT *memory;
if (result == resultbuf || result == NULL)
memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
else
@@ -132,9 +129,8 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- DST_UNIT *memory;
-
- memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ DST_UNIT *memory =
+ (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/unistr/u8-to-u32.c b/lib/unistr/u8-to-u32.c
index 1f029ead..10e6a278 100644
--- a/lib/unistr/u8-to-u32.c
+++ b/lib/unistr/u8-to-u32.c
@@ -1,5 +1,5 @@
/* Convert UTF-8 string to UTF-32 string.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
@@ -32,11 +32,10 @@ DST_UNIT *
FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
{
const SRC_UNIT *s_end = s + n;
+
/* Output string accumulator. */
DST_UNIT *result;
size_t allocated;
- size_t length;
-
if (resultbuf != NULL)
{
result = resultbuf;
@@ -47,18 +46,16 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
result = NULL;
allocated = 0;
}
- length = 0;
+ size_t length = 0;
/* Invariants:
result is either == resultbuf or == NULL or malloc-allocated.
If length > 0, then result != NULL. */
while (s < s_end)
{
- ucs4_t uc;
- int count;
-
/* Fetch a Unicode character from the input string. */
- count = u8_mbtoucr (&uc, s, s_end - s);
+ ucs4_t uc;
+ int count = u8_mbtoucr (&uc, s, s_end - s);
if (count < 0)
{
if (!(result == resultbuf || result == NULL))
@@ -71,11 +68,11 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
/* Store it in the output string. */
if (length + 1 > allocated)
{
- DST_UNIT *memory;
-
allocated = (allocated > 0 ? 2 * allocated : 12);
if (length + 1 > allocated)
allocated = length + 1;
+
+ DST_UNIT *memory;
if (result == resultbuf || result == NULL)
memory = (DST_UNIT *) malloc (allocated * sizeof (DST_UNIT));
else
@@ -113,9 +110,8 @@ FUNC (const SRC_UNIT *s, size_t n, DST_UNIT *resultbuf, size_t *lengthp)
else if (result != resultbuf && length < allocated)
{
/* Shrink the allocated memory if possible. */
- DST_UNIT *memory;
-
- memory = (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
+ DST_UNIT *memory =
+ (DST_UNIT *) realloc (result, length * sizeof (DST_UNIT));
if (memory != NULL)
result = memory;
}
diff --git a/lib/unistr/u8-uctomb-aux.c b/lib/unistr/u8-uctomb-aux.c
index d0b5b7bb..59d78d3f 100644
--- a/lib/unistr/u8-uctomb-aux.c
+++ b/lib/unistr/u8-uctomb-aux.c
@@ -1,5 +1,5 @@
/* Conversion UCS-4 to UTF-8.
- Copyright (C) 2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistr/u8-uctomb.c b/lib/unistr/u8-uctomb.c
index 89ca2c07..eafec47e 100644
--- a/lib/unistr/u8-uctomb.c
+++ b/lib/unistr/u8-uctomb.c
@@ -1,5 +1,5 @@
/* Store a character in UTF-8 string.
- Copyright (C) 2002, 2005-2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005-2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/unistring/cdefs.h b/lib/unistring/cdefs.h
index 621235c0..77968ff7 100644
--- a/lib/unistring/cdefs.h
+++ b/lib/unistring/cdefs.h
@@ -1,5 +1,5 @@
/* Common macro definitions for C include files.
- Copyright (C) 2008-2023 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or
modify it under the terms of either:
@@ -43,6 +43,10 @@
#ifndef _GL_ATTRIBUTE_MAYBE_UNUSED
# define _GL_ATTRIBUTE_MAYBE_UNUSED _UC_ATTRIBUTE_MAYBE_UNUSED
#endif
+/* _GL_UNNAMED serves the same purpose. */
+#ifndef _GL_UNNAMED
+# define _GL_UNNAMED _UC_UNNAMED
+#endif
#ifndef _GL_ATTRIBUTE_MALLOC
# define _GL_ATTRIBUTE_MALLOC _UC_ATTRIBUTE_MALLOC
@@ -135,4 +139,11 @@
# define _UC_ATTRIBUTE_UNUSED
#endif
+#if ((defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 202311 \
+ && !defined __cplusplus)
+# define _UC_UNNAMED(id) unnamed_##id _UC_ATTRIBUTE_UNUSED
+#else
+# define _UC_UNNAMED(id)
+#endif
+
#endif /* _UNISTRING_CDEFS_H */
diff --git a/lib/unitypes.in.h b/lib/unitypes.in.h
index 6b8e79aa..36e48cf5 100644
--- a/lib/unitypes.in.h
+++ b/lib/unitypes.in.h
@@ -1,5 +1,5 @@
/* Elementary types and macros for the GNU UniString library.
- Copyright (C) 2002, 2005-2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005-2006, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/uniwbrk.in.h b/lib/uniwbrk.in.h
index dcb60392..8ab5fad8 100644
--- a/lib/uniwbrk.in.h
+++ b/lib/uniwbrk.in.h
@@ -1,5 +1,5 @@
/* Word breaks in Unicode strings.
- Copyright (C) 2001-2003, 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2005-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uniwbrk/u-wordbreaks.h b/lib/uniwbrk/u-wordbreaks.h
index 7a0d1a66..665ead67 100644
--- a/lib/uniwbrk/u-wordbreaks.h
+++ b/lib/uniwbrk/u-wordbreaks.h
@@ -1,5 +1,5 @@
/* Word breaks in UTF-8/UTF-16/UTF-32 strings. -*- coding: utf-8 -*-
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uniwbrk/u16-wordbreaks.c b/lib/uniwbrk/u16-wordbreaks.c
index 4ebc4711..023ee0d7 100644
--- a/lib/uniwbrk/u16-wordbreaks.c
+++ b/lib/uniwbrk/u16-wordbreaks.c
@@ -1,5 +1,5 @@
/* Word breaks in UTF-16 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uniwbrk/u32-wordbreaks.c b/lib/uniwbrk/u32-wordbreaks.c
index 5cde6681..47d127ee 100644
--- a/lib/uniwbrk/u32-wordbreaks.c
+++ b/lib/uniwbrk/u32-wordbreaks.c
@@ -1,5 +1,5 @@
/* Word breaks in UTF-32 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uniwbrk/u8-wordbreaks.c b/lib/uniwbrk/u8-wordbreaks.c
index a5c3d2ed..b0cc58ed 100644
--- a/lib/uniwbrk/u8-wordbreaks.c
+++ b/lib/uniwbrk/u8-wordbreaks.c
@@ -1,5 +1,5 @@
/* Word breaks in UTF-8 strings.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -54,7 +54,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -70,7 +69,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
@@ -102,11 +101,10 @@ main (int argc, char * argv[])
char *input = read_file (stdin);
int length = strlen (input);
char *breaks = malloc (length);
- int i;
u8_wordbreaks ((uint8_t *) input, length, breaks);
- for (i = 0; i < length; i++)
+ for (int i = 0; i < length; i++)
{
switch (breaks[i])
{
diff --git a/lib/uniwbrk/ulc-wordbreaks.c b/lib/uniwbrk/ulc-wordbreaks.c
index d73bd457..c904b73e 100644
--- a/lib/uniwbrk/ulc-wordbreaks.c
+++ b/lib/uniwbrk/ulc-wordbreaks.c
@@ -1,5 +1,5 @@
/* Word breaks in strings.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
@@ -66,25 +66,22 @@ ulc_wordbreaks (const char *s, size_t n, char *p)
if (offsets != NULL)
{
- uint8_t *t;
size_t m;
-
- t = u8_conv_from_encoding (encoding, iconveh_question_mark,
- s, n, offsets, NULL, &m);
+ uint8_t *t =
+ u8_conv_from_encoding (encoding, iconveh_question_mark,
+ s, n, offsets, NULL, &m);
if (t != NULL)
{
char *q = (char *) (m > 0 ? malloc (m) : NULL);
if (m == 0 || q != NULL)
{
- size_t i;
-
/* Determine the word breaks of the UTF-8 string. */
u8_wordbreaks (t, m, q);
/* Translate the result back to the original string. */
memset (p, 0, n);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
if (offsets[i] != (size_t)(-1))
p[i] = q[offsets[i]];
@@ -130,7 +127,6 @@ read_file (FILE *stream)
char *buf = NULL;
int alloc = 0;
int size = 0;
- int count;
while (! feof (stream))
{
@@ -146,7 +142,7 @@ read_file (FILE *stream)
exit (1);
}
}
- count = fread (buf + size, 1, BUFSIZE, stream);
+ int count = fread (buf + size, 1, BUFSIZE, stream);
if (count == 0)
{
if (ferror (stream))
@@ -179,11 +175,10 @@ main (int argc, char * argv[])
char *input = read_file (stdin);
int length = strlen (input);
char *breaks = malloc (length);
- int i;
ulc_wordbreaks (input, length, breaks);
- for (i = 0; i < length; i++)
+ for (int i = 0; i < length; i++)
{
switch (breaks[i])
{
diff --git a/lib/uniwbrk/wbrktable.c b/lib/uniwbrk/wbrktable.c
index 7bd41a25..1d6b063a 100644
--- a/lib/uniwbrk/wbrktable.c
+++ b/lib/uniwbrk/wbrktable.c
@@ -1,5 +1,5 @@
/* Word break auxiliary table. -*- coding: utf-8 -*-
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uniwbrk/wbrktable.h b/lib/uniwbrk/wbrktable.h
index b72aa012..2cbd3981 100644
--- a/lib/uniwbrk/wbrktable.h
+++ b/lib/uniwbrk/wbrktable.h
@@ -1,5 +1,5 @@
/* Word break auxiliary table.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uniwbrk/wordbreak-property.c b/lib/uniwbrk/wordbreak-property.c
index f703a459..fd1f47bc 100644
--- a/lib/uniwbrk/wordbreak-property.c
+++ b/lib/uniwbrk/wordbreak-property.c
@@ -1,5 +1,5 @@
/* Word break property.
- Copyright (C) 2001-2003, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software.
diff --git a/lib/uniwidth.in.h b/lib/uniwidth.in.h
index 293b65a8..9a5b8a1e 100644
--- a/lib/uniwidth.in.h
+++ b/lib/uniwidth.in.h
@@ -1,5 +1,5 @@
/* Display width functions.
- Copyright (C) 2001-2002, 2005, 2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 2001-2002, 2005, 2007, 2009-2026 Free Software Foundation,
Inc.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/uniwidth/cjk.h b/lib/uniwidth/cjk.h
index af41f637..9fc0dbde 100644
--- a/lib/uniwidth/cjk.h
+++ b/lib/uniwidth/cjk.h
@@ -1,5 +1,5 @@
/* Test for CJK encoding.
- Copyright (C) 2001-2002, 2005-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2005-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
@@ -15,7 +15,7 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include "streq.h"
+#include "streq-opt.h"
static int
is_cjk_encoding (const char *encoding)
diff --git a/lib/uniwidth/u16-strwidth.c b/lib/uniwidth/u16-strwidth.c
index 815d1044..d274c9ff 100644
--- a/lib/uniwidth/u16-strwidth.c
+++ b/lib/uniwidth/u16-strwidth.c
@@ -1,5 +1,5 @@
/* Determine display width of UTF-16 string.
- Copyright (C) 2001-2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/uniwidth/u16-width.c b/lib/uniwidth/u16-width.c
index 32d47edb..d6d9bfcd 100644
--- a/lib/uniwidth/u16-width.c
+++ b/lib/uniwidth/u16-width.c
@@ -1,5 +1,5 @@
/* Determine display width of UTF-16 string.
- Copyright (C) 2001-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -39,14 +39,12 @@ u16_width (const uint16_t *s, size_t n, const char *encoding)
while (s < s_end)
{
ucs4_t uc;
- int w;
-
s += u16_mbtouc_unsafe (&uc, s, s_end - s);
if (uc == 0)
break; /* end of string reached */
- w = uc_width (uc, encoding);
+ int w = uc_width (uc, encoding);
if (w >= 0) /* ignore control characters in the string */
width += w;
}
diff --git a/lib/uniwidth/u32-strwidth.c b/lib/uniwidth/u32-strwidth.c
index e7d894d8..66bc17f6 100644
--- a/lib/uniwidth/u32-strwidth.c
+++ b/lib/uniwidth/u32-strwidth.c
@@ -1,5 +1,5 @@
/* Determine display width of UTF-32 string.
- Copyright (C) 2001-2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/uniwidth/u32-width.c b/lib/uniwidth/u32-width.c
index bb4c04a8..42e343d4 100644
--- a/lib/uniwidth/u32-width.c
+++ b/lib/uniwidth/u32-width.c
@@ -1,5 +1,5 @@
/* Determine display width of UTF-32 string.
- Copyright (C) 2001-2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -37,12 +37,11 @@ u32_width (const uint32_t *s, size_t n, const char *encoding)
while (s < s_end)
{
ucs4_t uc = *s++;
- int w;
if (uc == 0)
break; /* end of string reached */
- w = uc_width (uc, encoding);
+ int w = uc_width (uc, encoding);
if (w >= 0) /* ignore control characters in the string */
width += w;
}
diff --git a/lib/uniwidth/u8-strwidth.c b/lib/uniwidth/u8-strwidth.c
index 794d60a0..1efd104f 100644
--- a/lib/uniwidth/u8-strwidth.c
+++ b/lib/uniwidth/u8-strwidth.c
@@ -1,5 +1,5 @@
/* Determine display width of UTF-8 string.
- Copyright (C) 2001-2002, 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
diff --git a/lib/uniwidth/u8-width.c b/lib/uniwidth/u8-width.c
index a4df4c13..950ef419 100644
--- a/lib/uniwidth/u8-width.c
+++ b/lib/uniwidth/u8-width.c
@@ -1,5 +1,5 @@
/* Determine display width of UTF-8 string.
- Copyright (C) 2001-2002, 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006-2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software.
@@ -39,14 +39,12 @@ u8_width (const uint8_t *s, size_t n, const char *encoding)
while (s < s_end)
{
ucs4_t uc;
- int w;
-
s += u8_mbtouc_unsafe (&uc, s, s_end - s);
if (uc == 0)
break; /* end of string reached */
- w = uc_width (uc, encoding);
+ int w = uc_width (uc, encoding);
if (w >= 0) /* ignore control characters in the string */
width += w;
}
diff --git a/lib/uniwidth/width.c b/lib/uniwidth/width.c
index 5ada88d9..683f5513 100644
--- a/lib/uniwidth/width.c
+++ b/lib/uniwidth/width.c
@@ -1,5 +1,5 @@
/* Determine display width of Unicode character.
- Copyright (C) 2001-2002, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2002, 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2002.
This file is free software: you can redistribute it and/or modify
diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c
index 614da318..12bdd45b 100644
--- a/lib/vasnprintf.c
+++ b/lib/vasnprintf.c
@@ -1,5 +1,5 @@
/* vsprintf with automatic memory allocation.
- Copyright (C) 1999, 2002-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -134,6 +134,16 @@
# include "fpucw.h"
#endif
+#if HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
+/* Override macros from fpucw.h. */
+# undef DECL_LONG_DOUBLE_ROUNDING
+# define DECL_LONG_DOUBLE_ROUNDING
+# undef BEGIN_LONG_DOUBLE_ROUNDING
+# define BEGIN_LONG_DOUBLE_ROUNDING()
+# undef END_LONG_DOUBLE_ROUNDING
+# define END_LONG_DOUBLE_ROUNDING()
+#endif
+
/* Default parameters. */
#ifndef VASNPRINTF
# if WIDE_CHAR_VERSION
@@ -739,19 +749,18 @@ multiply (mpn_t src1, mpn_t src2, mpn_t *dest)
/* Here 1 <= len1 <= len2. */
size_t dlen;
mp_limb_t *dp;
- size_t k, i, j;
dlen = len1 + len2;
dp = (mp_limb_t *) malloc (dlen * sizeof (mp_limb_t));
if (dp == NULL)
return NOMEM_PTR;
- for (k = len2; k > 0; )
+ for (size_t k = len2; k > 0; )
dp[--k] = 0;
- for (i = 0; i < len1; i++)
+ for (size_t i = 0; i < len1; i++)
{
mp_limb_t digit1 = p1[i];
mp_twolimb_t carry = 0;
- for (j = 0; j < len2; j++)
+ for (size_t j = 0; j < len2; j++)
{
mp_limb_t digit2 = p2[j];
carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2;
@@ -835,7 +844,6 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
size_t a_len = a.nlimbs;
const mp_limb_t *b_ptr = b.limbs;
size_t b_len = b.nlimbs;
- mp_limb_t *roomptr;
mp_limb_t *tmp_roomptr = NULL;
mp_limb_t *q_ptr;
size_t q_len;
@@ -845,7 +853,7 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
/* Allocate room for a_len+2 digits.
(Need a_len+1 digits for the real division and 1 more digit for the
final rounding of q.) */
- roomptr = (mp_limb_t *) malloc ((a_len + 2) * sizeof (mp_limb_t));
+ mp_limb_t *roomptr = (mp_limb_t *) malloc ((a_len + 2) * sizeof (mp_limb_t));
if (roomptr == NULL)
return NOMEM_PTR;
@@ -887,8 +895,7 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
mp_limb_t remainder = 0;
const mp_limb_t *sourceptr = a_ptr + a_len;
mp_limb_t *destptr = q_ptr + a_len;
- size_t count;
- for (count = a_len; count > 0; count--)
+ for (size_t count = a_len; count > 0; count--)
{
mp_twolimb_t num =
((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--sourceptr;
@@ -989,8 +996,7 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
const mp_limb_t *sourceptr = b_ptr;
mp_limb_t *destptr = tmp_roomptr;
mp_twolimb_t accu = 0;
- size_t count;
- for (count = b_len; count > 0; count--)
+ for (size_t count = b_len; count > 0; count--)
{
accu += (mp_twolimb_t) *sourceptr++ << s;
*destptr++ = (mp_limb_t) accu;
@@ -1017,8 +1023,7 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
const mp_limb_t *sourceptr = a_ptr;
mp_limb_t *destptr = r_ptr;
mp_twolimb_t accu = 0;
- size_t count;
- for (count = a_len; count > 0; count--)
+ for (size_t count = a_len; count > 0; count--)
{
accu += (mp_twolimb_t) *sourceptr++ << s;
*destptr++ = (mp_limb_t) accu;
@@ -1094,8 +1099,7 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
const mp_limb_t *sourceptr = b_ptr;
mp_limb_t *destptr = r_ptr + j;
mp_twolimb_t carry = 0;
- size_t count;
- for (count = b_len; count > 0; count--)
+ for (size_t count = b_len; count > 0; count--)
{
/* Here 0 <= carry <= q*. */
carry =
@@ -1119,8 +1123,7 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
const mp_limb_t *sourceptr = b_ptr;
mp_limb_t *destptr = r_ptr + j;
mp_limb_t carry = 0;
- size_t count;
- for (count = b_len; count > 0; count--)
+ for (size_t count = b_len; count > 0; count--)
{
mp_limb_t source1 = *sourceptr++;
mp_limb_t source2 = *destptr;
@@ -1152,8 +1155,7 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
{
mp_limb_t ptr = r_ptr + r_len;
mp_twolimb_t accu = 0;
- size_t count;
- for (count = r_len; count > 0; count--)
+ for (size_t count = r_len; count > 0; count--)
{
accu = (mp_twolimb_t) (mp_limb_t) accu << GMP_LIMB_BITS;
accu += (mp_twolimb_t) *--ptr << (GMP_LIMB_BITS - s);
@@ -1168,29 +1170,25 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
/* Compare r << 1 with b. */
if (r_len > b_len)
goto increment_q;
- {
- size_t i;
- for (i = b_len;;)
- {
- mp_limb_t r_i =
- (i <= r_len && i > 0 ? r_ptr[i - 1] >> (GMP_LIMB_BITS - 1) : 0)
- | (i < r_len ? r_ptr[i] << 1 : 0);
- mp_limb_t b_i = (i < b_len ? b_ptr[i] : 0);
- if (r_i > b_i)
- goto increment_q;
- if (r_i < b_i)
- goto keep_q;
- if (i == 0)
- break;
- i--;
- }
- }
+ for (size_t i = b_len;;)
+ {
+ mp_limb_t r_i =
+ (i <= r_len && i > 0 ? r_ptr[i - 1] >> (GMP_LIMB_BITS - 1) : 0)
+ | (i < r_len ? r_ptr[i] << 1 : 0);
+ mp_limb_t b_i = (i < b_len ? b_ptr[i] : 0);
+ if (r_i > b_i)
+ goto increment_q;
+ if (r_i < b_i)
+ goto keep_q;
+ if (i == 0)
+ break;
+ i--;
+ }
if (q_len > 0 && ((q_ptr[0] & 1) != 0))
/* q is odd. */
increment_q:
{
- size_t i;
- for (i = 0; i < q_len; i++)
+ for (size_t i = 0; i < q_len; i++)
if (++(q_ptr[i]) != 0)
goto keep_q;
q_ptr[q_len++] = 1;
@@ -1236,8 +1234,7 @@ convert_to_decimal (mpn_t a, size_t extra_zeroes)
/* Divide a by 10^9, in-place. */
mp_limb_t remainder = 0;
mp_limb_t *ptr = a_ptr + a_len;
- size_t count;
- for (count = a_len; count > 0; count--)
+ for (size_t count = a_len; count > 0; count--)
{
mp_twolimb_t num =
((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--ptr;
@@ -1245,7 +1242,7 @@ convert_to_decimal (mpn_t a, size_t extra_zeroes)
remainder = num % 1000000000;
}
/* Store the remainder as 9 decimal digits. */
- for (count = 9; count > 0; count--)
+ for (size_t count = 9; count > 0; count--)
{
*d_ptr++ = '0' + (remainder % 10);
remainder = remainder / 10;
@@ -1279,18 +1276,15 @@ convert_to_decimal (mpn_t a, size_t extra_zeroes)
static void *
decode_long_double (long double x, int *ep, mpn_t *mp)
{
- mpn_t m;
- int exp;
- long double y;
- size_t i;
-
/* Allocate memory for result. */
+ mpn_t m;
m.nlimbs = (LDBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS;
m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t));
if (m.limbs == NULL)
return NULL;
/* Split into exponential part and mantissa. */
- y = safe_frexpl (x, &exp);
+ int exp;
+ long double y = safe_frexpl (x, &exp);
if (!(y >= 0.0L && y < 1.0L))
abort ();
/* x = 2^exp * y = 2^(exp - LDBL_MANT_BIT) * (y * 2^LDBL_MANT_BIT), and the
@@ -1328,7 +1322,7 @@ decode_long_double (long double x, int *ep, mpn_t *mp)
}
# endif
# endif
- for (i = LDBL_MANT_BIT / GMP_LIMB_BITS; i > 0; )
+ for (size_t i = LDBL_MANT_BIT / GMP_LIMB_BITS; i > 0; )
{
mp_limb_t hi, lo;
y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
@@ -1367,18 +1361,15 @@ decode_long_double (long double x, int *ep, mpn_t *mp)
static void *
decode_double (double x, int *ep, mpn_t *mp)
{
- mpn_t m;
- int exp;
- double y;
- size_t i;
-
/* Allocate memory for result. */
+ mpn_t m;
m.nlimbs = (DBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS;
m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t));
if (m.limbs == NULL)
return NULL;
/* Split into exponential part and mantissa. */
- y = frexp (x, &exp);
+ int exp;
+ double y = frexp (x, &exp);
if (!(y >= 0.0 && y < 1.0))
abort ();
/* x = 2^exp * y = 2^(exp - DBL_MANT_BIT) * (y * 2^DBL_MANT_BIT), and the
@@ -1416,7 +1407,7 @@ decode_double (double x, int *ep, mpn_t *mp)
}
# endif
# endif
- for (i = DBL_MANT_BIT / GMP_LIMB_BITS; i > 0; )
+ for (size_t i = DBL_MANT_BIT / GMP_LIMB_BITS; i > 0; )
{
mp_limb_t hi, lo;
y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
@@ -1451,24 +1442,11 @@ decode_double (double x, int *ep, mpn_t *mp)
static char *
scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
{
- int s;
- size_t extra_zeroes;
- unsigned int abs_n;
- unsigned int abs_s;
- mp_limb_t *pow5_ptr;
- size_t pow5_len;
- unsigned int s_limbs;
- unsigned int s_bits;
- mpn_t pow5;
- mpn_t z;
- void *z_memory;
- char *digits;
-
/* x = 2^e * m, hence
y = round (2^e * 10^n * m) = round (2^(e+n) * 5^n * m)
= round (2^s * 5^n * m). */
- s = e + n;
- extra_zeroes = 0;
+ int s = e + n;
+ size_t extra_zeroes = 0;
/* Factor out a common power of 10 if possible. */
if (s > 0 && n > 0)
{
@@ -1481,11 +1459,12 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
z = round (2^s * 5^n * m). */
/* Compute 5^|n|, possibly shifted by |s| bits if n and s have the same
sign. 2.322 is slightly larger than log(5)/log(2). */
- abs_n = (n >= 0 ? n : -n);
- abs_s = (s >= 0 ? s : -s);
- pow5_ptr = (mp_limb_t *) malloc (((int)(abs_n * (2.322f / GMP_LIMB_BITS)) + 1
- + abs_s / GMP_LIMB_BITS + 1)
- * sizeof (mp_limb_t));
+ unsigned int abs_n = (n >= 0 ? n : -n);
+ unsigned int abs_s = (s >= 0 ? s : -s);
+ mp_limb_t *pow5_ptr =
+ (mp_limb_t *) malloc (((int)(abs_n * (2.322f / GMP_LIMB_BITS)) + 1
+ + abs_s / GMP_LIMB_BITS + 1)
+ * sizeof (mp_limb_t));
if (pow5_ptr == NULL)
{
free (memory);
@@ -1493,7 +1472,7 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
}
/* Initialize with 1. */
pow5_ptr[0] = 1;
- pow5_len = 1;
+ size_t pow5_len = 1;
/* Multiply with 5^|n|. */
if (abs_n > 0)
{
@@ -1502,13 +1481,11 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625,
48828125, 244140625, 1220703125
};
- unsigned int n13;
- for (n13 = 0; n13 <= abs_n; n13 += 13)
+ for (unsigned int n13 = 0; n13 <= abs_n; n13 += 13)
{
mp_limb_t digit1 = small_pow5[n13 + 13 <= abs_n ? 13 : abs_n - n13];
- size_t j;
mp_twolimb_t carry = 0;
- for (j = 0; j < pow5_len; j++)
+ for (size_t j = 0; j < pow5_len; j++)
{
mp_limb_t digit2 = pow5_ptr[j];
carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2;
@@ -1519,8 +1496,11 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
pow5_ptr[pow5_len++] = (mp_limb_t) carry;
}
}
- s_limbs = abs_s / GMP_LIMB_BITS;
- s_bits = abs_s % GMP_LIMB_BITS;
+ unsigned int s_limbs = abs_s / GMP_LIMB_BITS;
+ unsigned int s_bits = abs_s % GMP_LIMB_BITS;
+ mpn_t pow5;
+ mpn_t z;
+ void *z_memory;
if (n >= 0 ? s >= 0 : s <= 0)
{
/* Multiply with 2^|s|. */
@@ -1528,8 +1508,7 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
{
mp_limb_t *ptr = pow5_ptr;
mp_twolimb_t accu = 0;
- size_t count;
- for (count = pow5_len; count > 0; count--)
+ for (size_t count = pow5_len; count > 0; count--)
{
accu += (mp_twolimb_t) *ptr << s_bits;
*ptr++ = (mp_limb_t) accu;
@@ -1543,13 +1522,12 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
}
if (s_limbs > 0)
{
- size_t count;
- for (count = pow5_len; count > 0;)
+ for (size_t count = pow5_len; count > 0;)
{
count--;
pow5_ptr[s_limbs + count] = pow5_ptr[count];
}
- for (count = s_limbs; count > 0;)
+ for (size_t count = s_limbs; count > 0;)
{
count--;
pow5_ptr[count] = 0;
@@ -1590,8 +1568,7 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
/* Construct 2^|s|. */
{
mp_limb_t *ptr = pow5_ptr + pow5_len;
- size_t i;
- for (i = 0; i < s_limbs; i++)
+ for (size_t i = 0; i < s_limbs; i++)
ptr[i] = 0;
ptr[s_limbs] = (mp_limb_t) 1 << s_bits;
denominator.limbs = ptr;
@@ -1616,17 +1593,13 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
}
{
mp_limb_t *destptr = num_ptr;
- {
- size_t i;
- for (i = 0; i < s_limbs; i++)
- *destptr++ = 0;
- }
+ for (size_t i = 0; i < s_limbs; i++)
+ *destptr++ = 0;
if (s_bits > 0)
{
const mp_limb_t *sourceptr = m.limbs;
mp_twolimb_t accu = 0;
- size_t count;
- for (count = m.nlimbs; count > 0; count--)
+ for (size_t count = m.nlimbs; count > 0; count--)
{
accu += (mp_twolimb_t) *sourceptr++ << s_bits;
*destptr++ = (mp_limb_t) accu;
@@ -1638,8 +1611,7 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
else
{
const mp_limb_t *sourceptr = m.limbs;
- size_t count;
- for (count = m.nlimbs; count > 0; count--)
+ for (size_t count = m.nlimbs; count > 0; count--)
*destptr++ = *sourceptr++;
}
numerator.limbs = num_ptr;
@@ -1656,7 +1628,7 @@ scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
if (z_memory == NOMEM_PTR)
return NULL;
- digits = convert_to_decimal (z, extra_zeroes);
+ char *digits = convert_to_decimal (z, extra_zeroes);
free (z_memory);
return digits;
}
@@ -1711,13 +1683,9 @@ scale10_round_decimal_double (double x, int n)
static int
floorlog10l (long double x)
{
- int exp;
- long double y;
- double z;
- double l;
-
/* Split into exponential part and mantissa. */
- y = safe_frexpl (x, &exp);
+ int exp;
+ long double y = safe_frexpl (x, &exp);
if (!(y >= 0.0L && y < 1.0L))
abort ();
if (y == 0.0L)
@@ -1758,8 +1726,8 @@ floorlog10l (long double x)
if (!(y >= 0.5L && y < 1.0L))
abort ();
/* Compute an approximation for l = log2(x) = exp + log2(y). */
- l = exp;
- z = y;
+ double l = exp;
+ double z = y;
if (z < 0.70710678118654752444)
{
z *= 1.4142135623730950488;
@@ -1802,13 +1770,9 @@ floorlog10l (long double x)
static int
floorlog10 (double x)
{
- int exp;
- double y;
- double z;
- double l;
-
/* Split into exponential part and mantissa. */
- y = frexp (x, &exp);
+ int exp;
+ double y = frexp (x, &exp);
if (!(y >= 0.0 && y < 1.0))
abort ();
if (y == 0.0)
@@ -1849,8 +1813,8 @@ floorlog10 (double x)
if (!(y >= 0.5 && y < 1.0))
abort ();
/* Compute an approximation for l = log2(x) = exp + log2(y). */
- l = exp;
- z = y;
+ double l = exp;
+ double z = y;
if (z < 0.70710678118654752444)
{
z *= 1.4142135623730950488;
@@ -2513,21 +2477,12 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
goto fail_1_with_EINVAL;
{
- size_t buf_neededlength;
- TCHAR_T *buf;
- TCHAR_T *buf_malloced;
- const FCHAR_T *cp;
- size_t di;
- DIRECTIVE *dp;
- /* Output string accumulator. */
- DCHAR_T *result;
- size_t allocated;
- size_t length;
-
/* Allocate a small buffer that will hold a directive passed to
sprintf or snprintf. */
- buf_neededlength =
+ size_t buf_neededlength =
xsum4 (7, d.max_width_length, d.max_precision_length, 6);
+ TCHAR_T *buf;
+ TCHAR_T *buf_malloced;
#if HAVE_ALLOCA
if (buf_neededlength < 4000 / sizeof (TCHAR_T))
{
@@ -2546,9 +2501,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
buf_malloced = buf;
}
- result = resultbuf;
- allocated = (resultbuf != NULL ? *lengthp : 0);
- length = 0;
+ /* Output string accumulator. */
+ DCHAR_T *result = resultbuf;
+ size_t allocated = (resultbuf != NULL ? *lengthp : 0);
+ size_t length = 0;
+
/* Invariants:
result is either == resultbuf or malloc-allocated.
If result == NULL, resultbuf is == NULL as well.
@@ -2559,15 +2516,13 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
#define ENSURE_ALLOCATION_ELSE(needed, oom_statement) \
if ((needed) > allocated) \
{ \
- size_t memory_size; \
- DCHAR_T *memory; \
- \
allocated = (allocated > 0 ? xtimes (allocated, 2) : 12); \
if ((needed) > allocated) \
allocated = (needed); \
- memory_size = xtimes (allocated, sizeof (DCHAR_T)); \
+ size_t memory_size = xtimes (allocated, sizeof (DCHAR_T)); \
if (size_overflow_p (memory_size)) \
oom_statement \
+ DCHAR_T *memory; \
if (result == resultbuf) \
memory = (DCHAR_T *) malloc (memory_size); \
else \
@@ -2581,6 +2536,9 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
#define ENSURE_ALLOCATION(needed) \
ENSURE_ALLOCATION_ELSE((needed), goto out_of_memory; )
+ const FCHAR_T *cp;
+ size_t di;
+ DIRECTIVE *dp;
for (cp = format, di = 0, dp = &d.dir[0]; ; cp = dp->dir_end, di++, dp++)
{
if (cp != dp->dir_start)
@@ -2681,22 +2639,16 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
arg_type type = a.arg[dp->arg_index].type;
int flags = dp->flags;
- int has_width;
- size_t width;
- int has_precision;
- size_t precision;
- has_width = 0;
- width = 0;
+ int has_width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -2719,17 +2671,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
has_width = 1;
}
- has_precision = 0;
- precision = 0;
+ int has_precision = 0;
+ size_t precision = 0;
if (dp->precision_start != dp->precision_end)
{
if (dp->precision_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->precision_arg_index].a.a_int;
+ int arg = a.arg[dp->precision_arg_index].a.a_int;
/* "A negative precision is taken as if the precision
were omitted." */
if (arg >= 0)
@@ -3074,22 +3024,16 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
than INT_MAX characters, whence snprintf or sprintf would
fail to process it. */
int flags = dp->flags;
- int has_width;
- size_t width;
- int has_precision;
- size_t precision;
- has_width = 0;
- width = 0;
+ int has_width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -3112,17 +3056,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
has_width = 1;
}
- has_precision = 0;
- precision = 6;
+ int has_precision = 0;
+ size_t precision = 6;
if (dp->precision_start != dp->precision_end)
{
if (dp->precision_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->precision_arg_index].a.a_int;
+ int arg = a.arg[dp->precision_arg_index].a.a_int;
/* "A negative precision is taken as if the precision
were omitted." */
if (arg >= 0)
@@ -3144,18 +3086,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
const char *arg = a.arg[dp->arg_index].a.a_string;
- size_t bytes;
-# if ENABLE_UNISTDIO && DCHAR_IS_TCHAR
- size_t characters;
-# endif
-# if !DCHAR_IS_TCHAR
- /* This code assumes that TCHAR_T is 'char'. */
- static_assert (sizeof (TCHAR_T) == 1);
- DCHAR_T *tmpdst;
- size_t tmpdst_len;
-# endif
- size_t w;
+ size_t bytes;
if (has_precision)
{
/* Use only at most PRECISION bytes, from the left. */
@@ -3169,6 +3101,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
}
# if ENABLE_UNISTDIO && DCHAR_IS_TCHAR
+ size_t characters;
if (has_width)
characters = mbsnlen (arg, bytes);
else
@@ -3180,6 +3113,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
# endif
# if !DCHAR_IS_TCHAR
+ /* This code assumes that TCHAR_T is 'char'. */
+ static_assert (sizeof (TCHAR_T) == 1);
+ DCHAR_T *tmpdst;
+ size_t tmpdst_len;
/* Convert from TCHAR_T[] to DCHAR_T[]. */
tmpdst =
DCHAR_CONV_FROM_ENCODING (locale_charset (),
@@ -3191,6 +3128,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
goto fail_with_errno;
# endif
+ size_t w;
if (has_width)
{
# if ENABLE_UNISTDIO
@@ -3260,18 +3198,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
convert back the result from a char[] to a wchar_t[].
Instead, just copy the argument wchar_t[] to the result. */
int flags = dp->flags;
- size_t width;
- width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -3300,20 +3235,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
if (dp->conversion == 's')
{
- int has_precision;
- size_t precision;
-
- has_precision = 0;
- precision = 6;
+ int has_precision = 0;
+ size_t precision = 6;
if (dp->precision_start != dp->precision_end)
{
if (dp->precision_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->precision_arg_index].a.a_int;
+ int arg = a.arg[dp->precision_arg_index].a.a_int;
/* "A negative precision is taken as if the precision
were omitted." */
if (arg >= 0)
@@ -3339,9 +3269,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
/* Use only at most PRECISION wide characters, from
the left. */
- const wchar_t *ls_arg_end;
-
- ls_arg_end = ls_arg;
+ const wchar_t *ls_arg_end = ls_arg;
characters = 0;
for (; precision > 0; precision--)
{
@@ -3413,22 +3341,16 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
such bugs, we implement the entire processing of the 's'
directive ourselves. */
int flags = dp->flags;
- int has_width;
- size_t width;
- int has_precision;
- size_t precision;
- has_width = 0;
- width = 0;
+ int has_width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -3451,17 +3373,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
has_width = 1;
}
- has_precision = 0;
- precision = 6;
+ int has_precision = 0;
+ size_t precision = 6;
if (dp->precision_start != dp->precision_end)
{
if (dp->precision_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->precision_arg_index].a.a_int;
+ int arg = a.arg[dp->precision_arg_index].a.a_int;
/* "A negative precision is taken as if the precision
were omitted." */
if (arg >= 0)
@@ -3563,13 +3483,12 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
if (has_precision || has_width)
{
/* We know the number of wide characters in advance. */
- size_t remaining;
# if HAVE_MBRTOWC
mbstate_t state;
mbszero (&state);
# endif
ENSURE_ALLOCATION (xsum (length, characters));
- for (remaining = characters; remaining > 0; remaining--)
+ for (size_t remaining = characters; remaining > 0; remaining--)
{
wchar_t wc;
int count;
@@ -3655,13 +3574,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
# endif
while (precision > 0)
{
- char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
- int count;
-
if (*arg_end == 0)
/* Found the terminating null wide character. */
break;
- count = local_wcrtomb (cbuf, *arg_end, &state);
+ char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count = local_wcrtomb (cbuf, *arg_end, &state);
if (count < 0)
/* Cannot convert. */
goto fail_with_EILSEQ;
@@ -3694,13 +3611,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
# endif
for (;;)
{
- char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
- int count;
-
if (*arg_end == 0)
/* Found the terminating null wide character. */
break;
- count = local_wcrtomb (cbuf, *arg_end, &state);
+ char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count = local_wcrtomb (cbuf, *arg_end, &state);
if (count < 0)
/* Cannot convert. */
goto fail_with_EILSEQ;
@@ -3727,27 +3642,22 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
# if !DCHAR_IS_TCHAR
{
- TCHAR_T *tmpsrc;
-
/* Convert the string into a piece of temporary memory. */
- tmpsrc = (TCHAR_T *) malloc (bytes * sizeof (TCHAR_T));
+ TCHAR_T *tmpsrc = (TCHAR_T *) malloc (bytes * sizeof (TCHAR_T));
if (tmpsrc == NULL)
goto out_of_memory;
{
TCHAR_T *tmpptr = tmpsrc;
- size_t remaining;
# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
mbstate_t state;
mbszero (&state);
# endif
- for (remaining = bytes; remaining > 0; )
+ for (size_t remaining = bytes; remaining > 0; )
{
- char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
- int count;
-
if (*arg == 0)
abort ();
- count = local_wcrtomb (cbuf, *arg, &state);
+ char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count = local_wcrtomb (cbuf, *arg, &state);
if (count <= 0)
/* Inconsistency. */
abort ();
@@ -3814,20 +3724,17 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
if (has_precision || has_width)
{
/* We know the number of bytes in advance. */
- size_t remaining;
# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
mbstate_t state;
mbszero (&state);
# endif
ENSURE_ALLOCATION (xsum (length, bytes));
- for (remaining = bytes; remaining > 0; )
+ for (size_t remaining = bytes; remaining > 0; )
{
- char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
- int count;
-
if (*arg == 0)
abort ();
- count = local_wcrtomb (cbuf, *arg, &state);
+ char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count = local_wcrtomb (cbuf, *arg, &state);
if (count <= 0)
/* Inconsistency. */
abort ();
@@ -3847,12 +3754,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
# endif
while (arg < arg_end)
{
- char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
- int count;
-
if (*arg == 0)
abort ();
- count = local_wcrtomb (cbuf, *arg, &state);
+ char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count = local_wcrtomb (cbuf, *arg, &state);
if (count <= 0)
/* Cannot convert. */
goto fail_with_EILSEQ;
@@ -3889,20 +3794,16 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
a correct behaviour for the null wint_t argument and/or the
fallback that avoids EILSEQ. */
int flags = dp->flags;
- int has_width;
- size_t width;
- has_width = 0;
- width = 0;
+ int has_width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -3945,14 +3846,13 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
# endif
{
/* Count the number of bytes. */
- char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
- int count;
# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
mbstate_t state;
mbszero (&state);
# endif
- count = local_wcrtomb (cbuf, arg, &state);
+ char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count = local_wcrtomb (cbuf, arg, &state);
if (count < 0)
/* Cannot convert. */
goto fail_with_EILSEQ;
@@ -3980,14 +3880,13 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
/* Convert the string into a piece of temporary memory. */
if (bytes > 0)
{
- char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
- int count;
# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
mbstate_t state;
mbszero (&state);
# endif
- count = local_wcrtomb (cbuf, arg, &state);
+ char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count = local_wcrtomb (cbuf, arg, &state);
if (count <= 0)
/* Inconsistency. */
abort ();
@@ -4047,13 +3946,12 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
ENSURE_ALLOCATION (xsum (length, bytes));
if (bytes > 0)
{
- int count;
# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
mbstate_t state;
mbszero (&state);
# endif
- count = local_wcrtomb (result + length, arg, &state);
+ int count = local_wcrtomb (result + length, arg, &state);
if (count <= 0)
/* Inconsistency. */
abort ();
@@ -4062,14 +3960,13 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
}
else
{
- char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
- int count;
# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
mbstate_t state;
mbszero (&state);
# endif
- count = local_wcrtomb (cbuf, arg, &state);
+ char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */
+ int count = local_wcrtomb (cbuf, arg, &state);
if (count < 0)
/* Cannot convert. */
goto fail_with_EILSEQ;
@@ -4102,18 +3999,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
/* Implement the 'c' directive ourselves, in order to avoid
EILSEQ in the "C" locale. */
int flags = dp->flags;
- size_t width;
- width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -4139,9 +4033,9 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
char arg = (char) a.arg[dp->arg_index].a.a_char;
mbstate_t state;
- wchar_t wc;
-
mbszero (&state);
+
+ wchar_t wc;
int count = mbrtowc (&wc, &arg, 1, &state);
if (count < 0)
/* Invalid or incomplete multibyte character. */
@@ -4182,30 +4076,16 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
arg_type type = a.arg[dp->arg_index].type;
int flags = dp->flags;
- int has_width;
- size_t width;
- int has_precision;
- size_t precision;
- size_t tmp_length;
- size_t count;
- DCHAR_T tmpbuf[700];
- DCHAR_T *tmp;
- DCHAR_T *tmp_end;
- DCHAR_T *tmp_start;
- DCHAR_T *pad_ptr;
- DCHAR_T *p;
- has_width = 0;
- width = 0;
+ int has_width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -4228,17 +4108,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
has_width = 1;
}
- has_precision = 0;
- precision = 1;
+ int has_precision = 0;
+ size_t precision = 1;
if (dp->precision_start != dp->precision_end)
{
if (dp->precision_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->precision_arg_index].a.a_int;
+ int arg = a.arg[dp->precision_arg_index].a.a_int;
/* "A negative precision is taken as if the precision
were omitted." */
if (arg >= 0)
@@ -4259,6 +4137,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
}
/* Allocate a temporary buffer of sufficient size. */
+ size_t tmp_length;
switch (type)
{
default:
@@ -4325,6 +4204,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
if (tmp_length < width)
tmp_length = width;
+ DCHAR_T tmpbuf[700];
+ DCHAR_T *tmp;
if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T))
tmp = tmpbuf;
else
@@ -4340,7 +4221,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
goto out_of_memory;
}
- tmp_end = tmp + tmp_length;
+ DCHAR_T *tmp_end = tmp + tmp_length;
unsigned long long arg;
switch (type)
@@ -4389,7 +4270,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
}
int need_prefix = ((flags & FLAG_ALT) && arg != 0);
- p = tmp_end;
+ DCHAR_T *p = tmp_end;
/* "The result of converting a zero value with a precision
of zero is no characters." */
if (!(has_precision && precision == 0 && arg == 0))
@@ -4409,7 +4290,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
*--p = '0';
}
- pad_ptr = p;
+ DCHAR_T *pad_ptr = p;
if (need_prefix)
{
@@ -4422,12 +4303,12 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
# endif
*--p = '0';
}
- tmp_start = p;
+ DCHAR_T *tmp_start = p;
/* The generated string now extends from tmp_start to tmp_end,
with the zero padding insertion point being at pad_ptr,
tmp_start <= pad_ptr <= tmp_end. */
- count = tmp_end - tmp_start;
+ size_t count = tmp_end - tmp_start;
if (count < width)
{
@@ -4503,26 +4384,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
arg_type type = a.arg[dp->arg_index].type;
int flags = dp->flags;
- size_t width;
- int has_precision;
- size_t precision;
- size_t tmp_length;
- size_t count;
- DCHAR_T tmpbuf[700];
- DCHAR_T *tmp;
- DCHAR_T *pad_ptr;
- DCHAR_T *p;
- width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -4544,17 +4414,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
goto overflow;
}
- has_precision = 0;
- precision = 0;
+ int has_precision = 0;
+ size_t precision = 0;
if (dp->precision_start != dp->precision_end)
{
if (dp->precision_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->precision_arg_index].a.a_int;
+ int arg = a.arg[dp->precision_arg_index].a.a_int;
/* "A negative precision is taken as if the precision
were omitted." */
if (arg >= 0)
@@ -4575,6 +4443,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
}
/* Allocate a temporary buffer of sufficient size. */
+ size_t tmp_length;
if (type == TYPE_LONGDOUBLE)
tmp_length =
(unsigned int) ((LDBL_DIG + 1)
@@ -4597,6 +4466,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */
+ DCHAR_T tmpbuf[700];
+ DCHAR_T *tmp;
if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T))
tmp = tmpbuf;
else
@@ -4612,8 +4483,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
goto out_of_memory;
}
- pad_ptr = NULL;
- p = tmp;
+ DCHAR_T *pad_ptr = NULL;
+ DCHAR_T *p = tmp;
if (type == TYPE_LONGDOUBLE)
{
# if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || (NEED_WPRINTF_DIRECTIVE_LA && WIDE_CHAR_VERSION)
@@ -4632,11 +4503,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
}
else
{
- int sign = 0;
DECL_LONG_DOUBLE_ROUNDING
BEGIN_LONG_DOUBLE_ROUNDING ();
+ int sign = 0;
if (signbit (arg)) /* arg < 0.0L or negative zero */
{
sign = -1;
@@ -4665,7 +4536,6 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
int exponent;
long double mantissa;
-
if (arg > 0.0L)
mantissa = printf_frexpl (arg, &exponent);
else
@@ -4679,9 +4549,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
/* Round the mantissa. */
long double tail = mantissa;
- size_t q;
- for (q = precision; ; q--)
+ for (size_t q = precision; ; q--)
{
int digit = (int) tail;
tail -= digit;
@@ -4696,7 +4565,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
tail *= 16.0L;
}
if (tail != 0.0L)
- for (q = precision; q > 0; q--)
+ for (size_t q = precision; q > 0; q--)
tail *= 0.0625L;
mantissa += tail;
}
@@ -4705,9 +4574,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
*p++ = dp->conversion - 'A' + 'X';
pad_ptr = p;
{
- int digit;
-
- digit = (int) mantissa;
+ int digit = (int) mantissa;
mantissa -= digit;
*p++ = '0' + digit;
if ((flags & FLAG_ALT)
@@ -4754,9 +4621,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
char expbuf[6 + 1];
- const char *ep;
sprintf (expbuf, "%+d", exponent);
- for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ for (const char *ep = expbuf; (*p = *ep) != '\0'; ep++)
p++;
}
# endif
@@ -4787,7 +4653,6 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
int sign = 0;
-
if (signbit (arg)) /* arg < 0.0 or negative zero */
{
sign = -1;
@@ -4816,7 +4681,6 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
int exponent;
double mantissa;
-
if (arg > 0.0)
mantissa = printf_frexp (arg, &exponent);
else
@@ -4830,9 +4694,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
/* Round the mantissa. */
double tail = mantissa;
- size_t q;
- for (q = precision; ; q--)
+ for (size_t q = precision; ; q--)
{
int digit = (int) tail;
tail -= digit;
@@ -4847,7 +4710,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
tail *= 16.0;
}
if (tail != 0.0)
- for (q = precision; q > 0; q--)
+ for (size_t q = precision; q > 0; q--)
tail *= 0.0625;
mantissa += tail;
}
@@ -4856,9 +4719,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
*p++ = dp->conversion - 'A' + 'X';
pad_ptr = p;
{
- int digit;
-
- digit = (int) mantissa;
+ int digit = (int) mantissa;
mantissa -= digit;
*p++ = '0' + digit;
if ((flags & FLAG_ALT)
@@ -4905,9 +4766,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
char expbuf[6 + 1];
- const char *ep;
sprintf (expbuf, "%+d", exponent);
- for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ for (const char *ep = expbuf; (*p = *ep) != '\0'; ep++)
p++;
}
# endif
@@ -4920,7 +4780,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
/* The generated string now extends from tmp to p, with the
zero padding insertion point being at pad_ptr. */
- count = p - tmp;
+ size_t count = p - tmp;
if (count < width)
{
@@ -5011,26 +4871,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
arg_type type = a.arg[dp->arg_index].type;
# endif
int flags = dp->flags;
- size_t width;
- size_t count;
- int has_precision;
- size_t precision;
- size_t tmp_length;
- DCHAR_T tmpbuf[700];
- DCHAR_T *tmp;
- DCHAR_T *pad_ptr;
- DCHAR_T *p;
- width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -5052,17 +4901,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
goto overflow;
}
- has_precision = 0;
- precision = 0;
+ int has_precision = 0;
+ size_t precision = 0;
if (dp->precision_start != dp->precision_end)
{
if (dp->precision_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->precision_arg_index].a.a_int;
+ int arg = a.arg[dp->precision_arg_index].a.a_int;
/* "A negative precision is taken as if the precision
were omitted." */
if (arg >= 0)
@@ -5091,6 +4938,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
precision = 6;
/* Allocate a temporary buffer of sufficient size. */
+ size_t tmp_length;
# if NEED_PRINTF_DOUBLE && NEED_PRINTF_LONG_DOUBLE
tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : DBL_DIG + 1);
# elif NEED_PRINTF_INFINITE_DOUBLE && NEED_PRINTF_LONG_DOUBLE
@@ -5155,6 +5003,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */
+ DCHAR_T tmpbuf[700];
+ DCHAR_T *tmp;
if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T))
tmp = tmpbuf;
else
@@ -5170,8 +5020,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
goto out_of_memory;
}
- pad_ptr = NULL;
- p = tmp;
+ DCHAR_T *pad_ptr = NULL;
+ DCHAR_T *p = tmp;
# if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE
# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE
@@ -5193,11 +5043,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
}
else
{
- int sign = 0;
DECL_LONG_DOUBLE_ROUNDING
BEGIN_LONG_DOUBLE_ROUNDING ();
+ int sign = 0;
if (signbit (arg)) /* arg < 0.0L or negative zero */
{
sign = -1;
@@ -5229,17 +5079,14 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
if (dp->conversion == 'f' || dp->conversion == 'F')
{
- char *digits;
- size_t ndigits;
-
- digits =
+ char *digits =
scale10_round_decimal_long_double (arg, precision);
if (digits == NULL)
{
END_LONG_DOUBLE_ROUNDING ();
goto out_of_memory;
}
- ndigits = strlen (digits);
+ size_t ndigits = strlen (digits);
if (ndigits > precision)
{
@@ -5355,12 +5202,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
/* arg > 0.0L. */
- int adjusted;
+ exponent = floorlog10l (arg);
+ int adjusted = 0;
char *digits;
size_t ndigits;
-
- exponent = floorlog10l (arg);
- adjusted = 0;
for (;;)
{
digits =
@@ -5451,9 +5296,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
char expbuf[6 + 1];
- const char *ep;
sprintf (expbuf, "%+.2d", exponent);
- for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ for (const char *ep = expbuf; (*p = *ep) != '\0'; ep++)
p++;
}
# endif
@@ -5489,14 +5333,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
/* arg > 0.0L. */
- int exponent;
- int adjusted;
+ int exponent = floorlog10l (arg);
+ int adjusted = 0;
char *digits;
size_t ndigits;
- size_t nzeroes;
-
- exponent = floorlog10l (arg);
- adjusted = 0;
for (;;)
{
digits =
@@ -5556,7 +5396,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
/* Determine the number of trailing zeroes
that have to be dropped. */
- nzeroes = 0;
+ size_t nzeroes = 0;
if ((flags & FLAG_ALT) == 0)
while (nzeroes < ndigits
&& digits[nzeroes] == '0')
@@ -5706,9 +5546,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
char expbuf[6 + 1];
- const char *ep;
sprintf (expbuf, "%+.2d", exponent);
- for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ for (const char *ep = expbuf; (*p = *ep) != '\0'; ep++)
p++;
}
# endif
@@ -5808,7 +5647,6 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
int sign = 0;
-
if (signbit (arg)) /* arg < 0.0 or negative zero */
{
sign = -1;
@@ -5840,14 +5678,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
if (dp->conversion == 'f' || dp->conversion == 'F')
{
- char *digits;
- size_t ndigits;
-
- digits =
+ char *digits =
scale10_round_decimal_double (arg, precision);
if (digits == NULL)
goto out_of_memory;
- ndigits = strlen (digits);
+ size_t ndigits = strlen (digits);
if (ndigits > precision)
{
@@ -5963,12 +5798,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
/* arg > 0.0. */
- int adjusted;
+ exponent = floorlog10 (arg);
+ int adjusted = 0;
char *digits;
size_t ndigits;
-
- exponent = floorlog10 (arg);
- adjusted = 0;
for (;;)
{
digits =
@@ -6070,9 +5903,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
char expbuf[6 + 1];
- const char *ep;
sprintf (expbuf, decimal_format, exponent);
- for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ for (const char *ep = expbuf; (*p = *ep) != '\0'; ep++)
p++;
}
}
@@ -6109,14 +5941,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
/* arg > 0.0. */
- int exponent;
- int adjusted;
+ int exponent = floorlog10 (arg);
+ int adjusted = 0;
char *digits;
size_t ndigits;
- size_t nzeroes;
-
- exponent = floorlog10 (arg);
- adjusted = 0;
for (;;)
{
digits =
@@ -6172,7 +6000,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
/* Determine the number of trailing zeroes
that have to be dropped. */
- nzeroes = 0;
+ size_t nzeroes = 0;
if ((flags & FLAG_ALT) == 0)
while (nzeroes < ndigits
&& digits[nzeroes] == '0')
@@ -6337,9 +6165,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
else
{
char expbuf[6 + 1];
- const char *ep;
sprintf (expbuf, decimal_format, exponent);
- for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ for (const char *ep = expbuf; (*p = *ep) != '\0'; ep++)
p++;
}
}
@@ -6409,7 +6236,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
/* The generated string now extends from tmp to p, with the
zero padding insertion point being at pad_ptr. */
- count = p - tmp;
+ size_t count = p - tmp;
if (count < width)
{
@@ -6473,16 +6300,6 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
arg_type type = a.arg[dp->arg_index].type;
int flags = dp->flags;
-#if (WIDE_CHAR_VERSION && MUSL_LIBC) || NEED_PRINTF_FLAG_LEFTADJUST || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_FLAG_ALT_PRECISION_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION || NEED_PRINTF_FLAG_GROUPING || NEED_PRINTF_FLAG_GROUPING_INT
- int has_width;
-#endif
-#if !USE_SNPRINTF || WIDE_CHAR_VERSION || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || NEED_PRINTF_FLAG_LEFTADJUST || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_FLAG_ALT_PRECISION_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION || NEED_PRINTF_FLAG_GROUPING || NEED_PRINTF_FLAG_GROUPING_INT
- size_t width;
-#endif
-#if !USE_SNPRINTF || (WIDE_CHAR_VERSION && DCHAR_IS_TCHAR) || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || (WIDE_CHAR_VERSION && MUSL_LIBC) || NEED_PRINTF_FLAG_LEFTADJUST || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_FLAG_ALT_PRECISION_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION || NEED_PRINTF_FLAG_GROUPING || NEED_PRINTF_FLAG_GROUPING_INT
- int has_precision;
- size_t precision;
-#endif
#if NEED_PRINTF_FLAG_ALT_PRECISION_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
int prec_ourselves;
#else
@@ -6511,19 +6328,17 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
#endif
#if (WIDE_CHAR_VERSION && MUSL_LIBC) || NEED_PRINTF_FLAG_LEFTADJUST || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_FLAG_ALT_PRECISION_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION || NEED_PRINTF_FLAG_GROUPING || NEED_PRINTF_FLAG_GROUPING_INT
- has_width = 0;
+ int has_width = 0;
#endif
#if !USE_SNPRINTF || WIDE_CHAR_VERSION || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || NEED_PRINTF_FLAG_LEFTADJUST || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_FLAG_ALT_PRECISION_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION || NEED_PRINTF_FLAG_GROUPING || NEED_PRINTF_FLAG_GROUPING_INT
- width = 0;
+ size_t width = 0;
if (dp->width_start != dp->width_end)
{
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -6551,17 +6366,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
#endif
#if !USE_SNPRINTF || (WIDE_CHAR_VERSION && DCHAR_IS_TCHAR) || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF || (WIDE_CHAR_VERSION && MUSL_LIBC) || NEED_PRINTF_FLAG_LEFTADJUST || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_FLAG_ALT_PRECISION_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION || NEED_PRINTF_FLAG_GROUPING || NEED_PRINTF_FLAG_GROUPING_INT
- has_precision = 0;
- precision = 6;
+ int has_precision = 0;
+ size_t precision = 6;
if (dp->precision_start != dp->precision_end)
{
if (dp->precision_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->precision_arg_index].a.a_int;
+ int arg = a.arg[dp->precision_arg_index].a.a_int;
/* "A negative precision is taken as if the precision
were omitted." */
if (arg >= 0)
@@ -6730,11 +6543,9 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
quick check anyway. */
if (dp->width_arg_index != ARG_NONE)
{
- int arg;
-
if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
abort ();
- arg = a.arg[dp->width_arg_index].a.a_int;
+ int arg = a.arg[dp->width_arg_index].a.a_int;
width = arg;
if (arg < 0)
{
@@ -6959,7 +6770,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
/* The following platforms forbid %n:
- On glibc2 systems from 2004-10-18 or newer, the use of
%n in format strings in writable memory may crash the
- program (if compiled with _FORTIFY_SOURCE=2).
+ program (if compiled with _FORTIFY_SOURCE >= 2).
- On macOS 10.13 or newer, the use of %n in format
strings in writable memory by default crashes the
program.
@@ -7659,16 +7470,16 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
)
{
/* The result string is not guaranteed to be ASCII. */
- const TCHAR_T *tmpsrc;
- DCHAR_T *tmpdst;
- size_t tmpdst_len;
/* This code assumes that TCHAR_T is 'char'. */
static_assert (sizeof (TCHAR_T) == 1);
+ const TCHAR_T *tmpsrc;
# if USE_SNPRINTF
tmpsrc = (TCHAR_T *) (result + length);
# else
tmpsrc = tmp;
# endif
+ DCHAR_T *tmpdst;
+ size_t tmpdst_len;
# if WIDE_CHAR_VERSION
/* Convert tmpsrc[0..count-1] to a freshly allocated
wide character array. */
@@ -7746,9 +7557,6 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
# endif
{
const TCHAR_T *tmpsrc;
- DCHAR_T *tmpdst;
- size_t n;
-
# if USE_SNPRINTF
if (result == resultbuf)
{
@@ -7768,11 +7576,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
tmpsrc = tmp;
ENSURE_ALLOCATION (xsum (length, count));
# endif
- tmpdst = result + length;
+ DCHAR_T *tmpdst = result + length;
/* Copy backwards, because of overlapping. */
tmpsrc += count;
tmpdst += count;
- for (n = count; n > 0; n--)
+ for (size_t n = count; n > 0; n--)
*--tmpdst = *--tmpsrc;
}
}
@@ -7957,8 +7765,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
{
/* Convert the %f result to upper case for %F. */
DCHAR_T *rp = result + length;
- size_t rc;
- for (rc = count; rc > 0; rc--, rp++)
+ for (size_t rc = count; rc > 0; rc--, rp++)
if (*rp >= 'a' && *rp <= 'z')
*rp = *rp - 'a' + 'A';
}
@@ -7981,9 +7788,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
if (result != resultbuf && length + 1 < allocated)
{
/* Shrink the allocated memory if possible. */
- DCHAR_T *memory;
-
- memory = (DCHAR_T *) realloc (result, (length + 1) * sizeof (DCHAR_T));
+ DCHAR_T *memory =
+ (DCHAR_T *) realloc (result, (length + 1) * sizeof (DCHAR_T));
if (memory != NULL)
result = memory;
}
diff --git a/lib/verify.h b/lib/verify.h
index 3b01d7c2..ad45c39d 100644
--- a/lib/verify.h
+++ b/lib/verify.h
@@ -1,6 +1,6 @@
/* Compile-time assert-like macros.
- Copyright (C) 2005-2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2006, 2009-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/warn-on-use.h b/lib/warn-on-use.h
index c0072412..97f36ea2 100644
--- a/lib/warn-on-use.h
+++ b/lib/warn-on-use.h
@@ -1,5 +1,5 @@
/* A C macro for emitting warnings if a function is used.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2010-2026 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
diff --git a/lib/wchar.in.h b/lib/wchar.in.h
index ab602a28..a60a4dfc 100644
--- a/lib/wchar.in.h
+++ b/lib/wchar.in.h
@@ -1,6 +1,6 @@
/* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -301,7 +301,7 @@ _GL_EXTERN_C int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3)
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (2, 3);
# ifndef __cplusplus
-_GL_EXTERN_C wchar_t *wmemchr (const wchar_t *__s, wchar_t __wc, size_t __n)
+_GL_EXTERN_C wchar_t *(wmemchr) (const wchar_t *__s, wchar_t __wc, size_t __n)
_GL_ATTRIBUTE_NONNULL_IF_NONZERO (1, 3);
# endif
_GL_EXTERN_C wchar_t *wmemset (wchar_t *__s, wchar_t __wc, size_t __n)
@@ -332,7 +332,6 @@ _GL_CXXALIAS_SYS_CAST (btowc, wint_t, (int c));
_GL_CXXALIASWARN (btowc);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef btowc
# if HAVE_RAW_DECL_BTOWC
_GL_WARN_ON_USE (btowc, "btowc is unportable - "
"use gnulib module btowc for portability");
@@ -360,7 +359,6 @@ _GL_CXXALIAS_SYS (wctob, int, (wint_t wc));
_GL_CXXALIASWARN (wctob);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wctob
# if HAVE_RAW_DECL_WCTOB
_GL_WARN_ON_USE (wctob, "wctob is unportable - "
"use gnulib module wctob for portability");
@@ -387,7 +385,6 @@ _GL_CXXALIAS_SYS (mbsinit, int, (const mbstate_t *ps));
_GL_CXXALIASWARN (mbsinit);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mbsinit
# if HAVE_RAW_DECL_MBSINIT
_GL_WARN_ON_USE (mbsinit, "mbsinit is unportable - "
"use gnulib module mbsinit for portability");
@@ -627,7 +624,6 @@ _GL_CXXALIAS_SYS (mbrtowc, size_t,
_GL_CXXALIASWARN (mbrtowc);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mbrtowc
# if HAVE_RAW_DECL_MBRTOWC
_GL_WARN_ON_USE (mbrtowc, "mbrtowc is unportable - "
"use gnulib module mbrtowc for portability");
@@ -658,7 +654,6 @@ _GL_CXXALIAS_SYS (mbrlen, size_t,
_GL_CXXALIASWARN (mbrlen);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mbrlen
# if HAVE_RAW_DECL_MBRLEN
_GL_WARN_ON_USE (mbrlen, "mbrlen is unportable - "
"use gnulib module mbrlen for portability");
@@ -699,7 +694,6 @@ _GL_CXXALIAS_SYS (mbsrtowcs, size_t,
_GL_CXXALIASWARN (mbsrtowcs);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mbsrtowcs
# if HAVE_RAW_DECL_MBSRTOWCS
_GL_WARN_ON_USE (mbsrtowcs, "mbsrtowcs is unportable - "
"use gnulib module mbsrtowcs for portability");
@@ -740,7 +734,6 @@ _GL_CXXALIAS_SYS (mbsnrtowcs, size_t,
_GL_CXXALIASWARN (mbsnrtowcs);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mbsnrtowcs
# if HAVE_RAW_DECL_MBSNRTOWCS
_GL_WARN_ON_USE (mbsnrtowcs, "mbsnrtowcs is unportable - "
"use gnulib module mbsnrtowcs for portability");
@@ -771,7 +764,6 @@ _GL_CXXALIAS_SYS (wcrtomb, size_t,
_GL_CXXALIASWARN (wcrtomb);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcrtomb
# if HAVE_RAW_DECL_WCRTOMB
_GL_WARN_ON_USE (wcrtomb, "wcrtomb is unportable - "
"use gnulib module wcrtomb for portability");
@@ -812,7 +804,6 @@ _GL_CXXALIAS_SYS (wcsrtombs, size_t,
_GL_CXXALIASWARN (wcsrtombs);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcsrtombs
# if HAVE_RAW_DECL_WCSRTOMBS
_GL_WARN_ON_USE (wcsrtombs, "wcsrtombs is unportable - "
"use gnulib module wcsrtombs for portability");
@@ -857,7 +848,6 @@ _GL_CXXALIAS_SYS (wcsnrtombs, size_t,
_GL_CXXALIASWARN (wcsnrtombs);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcsnrtombs
# if HAVE_RAW_DECL_WCSNRTOMBS
_GL_WARN_ON_USE (wcsnrtombs, "wcsnrtombs is unportable - "
"use gnulib module wcsnrtombs for portability");
@@ -885,7 +875,6 @@ _GL_CXXALIAS_SYS (wcwidth, int, (wchar_t));
_GL_CXXALIASWARN (wcwidth);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcwidth
# if HAVE_RAW_DECL_WCWIDTH
_GL_WARN_ON_USE (wcwidth, "wcwidth is unportable - "
"use gnulib module wcwidth for portability");
@@ -918,7 +907,6 @@ _GL_CXXALIASWARN1 (wmemchr, const wchar_t *,
_GL_CXXALIASWARN (wmemchr);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wmemchr
# if HAVE_RAW_DECL_WMEMCHR
_GL_WARN_ON_USE (wmemchr, "wmemchr is unportable - "
"use gnulib module wmemchr for portability");
@@ -955,7 +943,6 @@ _GL_CXXALIAS_SYS (wmemcmp, int,
_GL_CXXALIASWARN (wmemcmp);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wmemcmp
# if HAVE_RAW_DECL_WMEMCMP
_GL_WARN_ON_USE (wmemcmp, "wmemcmp is unportable - "
"use gnulib module wmemcmp for portability");
@@ -979,7 +966,6 @@ _GL_CXXALIAS_SYS (wmemcpy, wchar_t *,
_GL_CXXALIASWARN (wmemcpy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wmemcpy
# if HAVE_RAW_DECL_WMEMCPY
_GL_WARN_ON_USE (wmemcpy, "wmemcpy is unportable - "
"use gnulib module wmemcpy for portability");
@@ -1002,7 +988,6 @@ _GL_CXXALIAS_SYS (wmemmove, wchar_t *,
_GL_CXXALIASWARN (wmemmove);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wmemmove
# if HAVE_RAW_DECL_WMEMMOVE
_GL_WARN_ON_USE (wmemmove, "wmemmove is unportable - "
"use gnulib module wmemmove for portability");
@@ -1038,7 +1023,6 @@ _GL_CXXALIAS_SYS (wmempcpy, wchar_t *,
_GL_CXXALIASWARN (wmempcpy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wmempcpy
# if HAVE_RAW_DECL_WMEMPCPY
_GL_WARN_ON_USE (wmempcpy, "wmempcpy is unportable - "
"use gnulib module wmempcpy for portability");
@@ -1057,7 +1041,6 @@ _GL_CXXALIAS_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n));
_GL_CXXALIASWARN (wmemset);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wmemset
# if HAVE_RAW_DECL_WMEMSET
_GL_WARN_ON_USE (wmemset, "wmemset is unportable - "
"use gnulib module wmemset for portability");
@@ -1075,7 +1058,6 @@ _GL_CXXALIAS_SYS (wcslen, size_t, (const wchar_t *s));
_GL_CXXALIASWARN (wcslen);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcslen
# if HAVE_RAW_DECL_WCSLEN
_GL_WARN_ON_USE (wcslen, "wcslen is unportable - "
"use gnulib module wcslen for portability");
@@ -1095,7 +1077,6 @@ _GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen),
_GL_CXXALIAS_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen));
_GL_CXXALIASWARN (wcsnlen);
#elif defined GNULIB_POSIXCHECK
-# undef wcsnlen
# if HAVE_RAW_DECL_WCSNLEN
_GL_WARN_ON_USE (wcsnlen, "wcsnlen is unportable - "
"use gnulib module wcsnlen for portability");
@@ -1115,7 +1096,6 @@ _GL_CXXALIAS_SYS (wcscpy, wchar_t *,
_GL_CXXALIASWARN (wcscpy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcscpy
# if HAVE_RAW_DECL_WCSCPY
_GL_WARN_ON_USE (wcscpy, "wcscpy is unportable - "
"use gnulib module wcscpy for portability");
@@ -1136,7 +1116,6 @@ _GL_CXXALIAS_SYS (wcpcpy, wchar_t *,
(wchar_t *restrict dest, const wchar_t *restrict src));
_GL_CXXALIASWARN (wcpcpy);
#elif defined GNULIB_POSIXCHECK
-# undef wcpcpy
# if HAVE_RAW_DECL_WCPCPY
_GL_WARN_ON_USE (wcpcpy, "wcpcpy is unportable - "
"use gnulib module wcpcpy for portability");
@@ -1160,7 +1139,6 @@ _GL_CXXALIAS_SYS (wcsncpy, wchar_t *,
_GL_CXXALIASWARN (wcsncpy);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcsncpy
# if HAVE_RAW_DECL_WCSNCPY
_GL_WARN_ON_USE (wcsncpy, "wcsncpy is unportable - "
"use gnulib module wcsncpy for portability");
@@ -1184,7 +1162,6 @@ _GL_CXXALIAS_SYS (wcpncpy, wchar_t *,
const wchar_t *restrict src, size_t n));
_GL_CXXALIASWARN (wcpncpy);
#elif defined GNULIB_POSIXCHECK
-# undef wcpncpy
# if HAVE_RAW_DECL_WCPNCPY
_GL_WARN_ON_USE (wcpncpy, "wcpncpy is unportable - "
"use gnulib module wcpncpy for portability");
@@ -1204,7 +1181,6 @@ _GL_CXXALIAS_SYS (wcscat, wchar_t *,
_GL_CXXALIASWARN (wcscat);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcscat
# if HAVE_RAW_DECL_WCSCAT
_GL_WARN_ON_USE (wcscat, "wcscat is unportable - "
"use gnulib module wcscat for portability");
@@ -1243,7 +1219,6 @@ _GL_CXXALIAS_SYS (wcsncat, wchar_t *,
_GL_CXXALIASWARN (wcsncat);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcsncat
# if HAVE_RAW_DECL_WCSNCAT
_GL_WARN_ON_USE (wcsncat, "wcsncat is unportable - "
"use gnulib module wcsncat for portability");
@@ -1272,7 +1247,6 @@ _GL_CXXALIAS_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2));
_GL_CXXALIASWARN (wcscmp);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcscmp
# if HAVE_RAW_DECL_WCSCMP
_GL_WARN_ON_USE (wcscmp, "wcscmp is unportable - "
"use gnulib module wcscmp for portability");
@@ -1309,7 +1283,6 @@ _GL_CXXALIAS_SYS (wcsncmp, int,
_GL_CXXALIASWARN (wcsncmp);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcsncmp
# if HAVE_RAW_DECL_WCSNCMP
_GL_WARN_ON_USE (wcsncmp, "wcsncmp is unportable - "
"use gnulib module wcsncmp for portability");
@@ -1329,7 +1302,6 @@ _GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2),
_GL_CXXALIAS_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2));
_GL_CXXALIASWARN (wcscasecmp);
#elif defined GNULIB_POSIXCHECK
-# undef wcscasecmp
# if HAVE_RAW_DECL_WCSCASECMP
_GL_WARN_ON_USE (wcscasecmp, "wcscasecmp is unportable - "
"use gnulib module wcscasecmp for portability");
@@ -1351,7 +1323,6 @@ _GL_CXXALIAS_SYS (wcsncasecmp, int,
(const wchar_t *s1, const wchar_t *s2, size_t n));
_GL_CXXALIASWARN (wcsncasecmp);
#elif defined GNULIB_POSIXCHECK
-# undef wcsncasecmp
# if HAVE_RAW_DECL_WCSNCASECMP
_GL_WARN_ON_USE (wcsncasecmp, "wcsncasecmp is unportable - "
"use gnulib module wcsncasecmp for portability");
@@ -1370,7 +1341,6 @@ _GL_CXXALIAS_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2));
_GL_CXXALIASWARN (wcscoll);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcscoll
# if HAVE_RAW_DECL_WCSCOLL
_GL_WARN_ON_USE (wcscoll, "wcscoll is unportable - "
"use gnulib module wcscoll for portability");
@@ -1392,7 +1362,6 @@ _GL_CXXALIAS_SYS (wcsxfrm, size_t,
_GL_CXXALIASWARN (wcsxfrm);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcsxfrm
# if HAVE_RAW_DECL_WCSXFRM
_GL_WARN_ON_USE (wcsxfrm, "wcsxfrm is unportable - "
"use gnulib module wcsxfrm for portability");
@@ -1443,7 +1412,6 @@ _GL_FUNCDECL_SYS (wcsdup, wchar_t *,
# endif
# endif
# if defined GNULIB_POSIXCHECK
-# undef wcsdup
# if HAVE_RAW_DECL_WCSDUP
_GL_WARN_ON_USE (wcsdup, "wcsdup is unportable - "
"use gnulib module wcsdup for portability");
@@ -1503,7 +1471,6 @@ _GL_CXXALIASWARN1 (wcschr, const wchar_t *, (const wchar_t *wcs, wchar_t wc));
_GL_CXXALIASWARN (wcschr);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcschr
# if HAVE_RAW_DECL_WCSCHR
_GL_WARN_ON_USE (wcschr, "wcschr is unportable - "
"use gnulib module wcschr for portability");
@@ -1534,7 +1501,6 @@ _GL_CXXALIASWARN1 (wcsrchr, const wchar_t *, (const wchar_t *wcs, wchar_t wc));
_GL_CXXALIASWARN (wcsrchr);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcsrchr
# if HAVE_RAW_DECL_WCSRCHR
_GL_WARN_ON_USE (wcsrchr, "wcsrchr is unportable - "
"use gnulib module wcsrchr for portability");
@@ -1554,7 +1520,6 @@ _GL_CXXALIAS_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject));
_GL_CXXALIASWARN (wcscspn);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcscspn
# if HAVE_RAW_DECL_WCSCSPN
_GL_WARN_ON_USE (wcscspn, "wcscspn is unportable - "
"use gnulib module wcscspn for portability");
@@ -1574,7 +1539,6 @@ _GL_CXXALIAS_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept));
_GL_CXXALIASWARN (wcsspn);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcsspn
# if HAVE_RAW_DECL_WCSSPN
_GL_WARN_ON_USE (wcsspn, "wcsspn is unportable - "
"use gnulib module wcsspn for portability");
@@ -1608,7 +1572,6 @@ _GL_CXXALIASWARN1 (wcspbrk, const wchar_t *,
_GL_CXXALIASWARN (wcspbrk);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcspbrk
# if HAVE_RAW_DECL_WCSPBRK
_GL_WARN_ON_USE (wcspbrk, "wcspbrk is unportable - "
"use gnulib module wcspbrk for portability");
@@ -1661,7 +1624,6 @@ _GL_CXXALIASWARN1 (wcsstr, const wchar_t *,
_GL_CXXALIASWARN (wcsstr);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcsstr
# if HAVE_RAW_DECL_WCSSTR
_GL_WARN_ON_USE (wcsstr, "wcsstr is unportable - "
"use gnulib module wcsstr for portability");
@@ -1696,7 +1658,6 @@ _GL_CXXALIAS_SYS (wcstok, wchar_t *,
_GL_CXXALIASWARN (wcstok);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcstok
# if HAVE_RAW_DECL_WCSTOK
_GL_WARN_ON_USE (wcstok, "wcstok is unportable - "
"use gnulib module wcstok for portability");
@@ -1726,7 +1687,6 @@ _GL_CXXALIAS_SYS (wcswidth, int, (const wchar_t *s, size_t n));
_GL_CXXALIASWARN (wcswidth);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcswidth
# if HAVE_RAW_DECL_WCSWIDTH
_GL_WARN_ON_USE (wcswidth, "wcswidth is unportable - "
"use gnulib module wcswidth for portability");
@@ -1768,7 +1728,6 @@ _GL_CXXALIAS_SYS (wcsftime, size_t,
_GL_CXXALIASWARN (wcsftime);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wcsftime
# if HAVE_RAW_DECL_WCSFTIME
_GL_WARN_ON_USE (wcsftime, "wcsftime is unportable - "
"use gnulib module wcsftime for portability");
diff --git a/lib/wcs-two-way.h b/lib/wcs-two-way.h
index 4cd384aa..9d07736a 100644
--- a/lib/wcs-two-way.h
+++ b/lib/wcs-two-way.h
@@ -1,5 +1,5 @@
/* Wide character substring search, using the Two-Way algorithm.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Eric Blake <ebb9@byu.net>, 2008.
@@ -91,13 +91,6 @@ static size_t
critical_factorization (const UNIT *needle, size_t needle_len,
size_t *period)
{
- /* Index of last character of left half, or SIZE_MAX. */
- size_t max_suffix, max_suffix_rev;
- size_t j; /* Index into NEEDLE for current candidate suffix. */
- size_t k; /* Offset into current period. */
- size_t p; /* Intermediate period. */
- UNIT a, b; /* Current comparison characters. */
-
/* Special case NEEDLE_LEN of 1 or 2 (all callers already filtered
out 0-length needles. */
if (needle_len < 3)
@@ -116,73 +109,83 @@ critical_factorization (const UNIT *needle, size_t needle_len,
*/
/* Perform lexicographic search. */
- max_suffix = SIZE_MAX;
- j = 0;
- k = p = 1;
- while (j + k < needle_len)
- {
- a = CANON_ELEMENT (needle[j + k]);
- b = CANON_ELEMENT (needle[max_suffix + k]);
- if (a < b)
- {
- /* Suffix is smaller, period is entire prefix so far. */
- j += k;
- k = 1;
- p = j - max_suffix;
- }
- else if (a == b)
- {
- /* Advance through repetition of the current period. */
- if (k != p)
- ++k;
- else
- {
- j += p;
- k = 1;
- }
- }
- else /* b < a */
- {
- /* Suffix is larger, start over from current location. */
- max_suffix = j++;
- k = p = 1;
- }
- }
- *period = p;
+ size_t max_suffix = /* Index of last character of left half, or SIZE_MAX. */
+ SIZE_MAX;
+ {
+ size_t j = 0; /* Index into NEEDLE for current candidate suffix. */
+ size_t k = 1; /* Offset into current period. */
+ size_t p = 1; /* Intermediate period. */
+ while (j + k < needle_len)
+ {
+ UNIT a = CANON_ELEMENT (needle[j + k]);
+ UNIT b = CANON_ELEMENT (needle[max_suffix + k]);
+ if (a < b)
+ {
+ /* Suffix is smaller, period is entire prefix so far. */
+ j += k;
+ k = 1;
+ p = j - max_suffix;
+ }
+ else if (a == b)
+ {
+ /* Advance through repetition of the current period. */
+ if (k != p)
+ ++k;
+ else
+ {
+ j += p;
+ k = 1;
+ }
+ }
+ else /* b < a */
+ {
+ /* Suffix is larger, start over from current location. */
+ max_suffix = j++;
+ k = p = 1;
+ }
+ }
+ *period = p;
+ }
/* Perform reverse lexicographic search. */
- max_suffix_rev = SIZE_MAX;
- j = 0;
- k = p = 1;
- while (j + k < needle_len)
- {
- a = CANON_ELEMENT (needle[j + k]);
- b = CANON_ELEMENT (needle[max_suffix_rev + k]);
- if (b < a)
- {
- /* Suffix is smaller, period is entire prefix so far. */
- j += k;
- k = 1;
- p = j - max_suffix_rev;
- }
- else if (a == b)
- {
- /* Advance through repetition of the current period. */
- if (k != p)
- ++k;
- else
- {
- j += p;
- k = 1;
- }
- }
- else /* a < b */
- {
- /* Suffix is larger, start over from current location. */
- max_suffix_rev = j++;
- k = p = 1;
- }
- }
+ size_t max_suffix_rev = /* Index of last character of left half, or SIZE_MAX. */
+ SIZE_MAX;
+ size_t p_rev;
+ {
+ size_t j = 0; /* Index into NEEDLE for current candidate suffix. */
+ size_t k = 1; /* Offset into current period. */
+ size_t p = 1; /* Intermediate period. */
+ while (j + k < needle_len)
+ {
+ UNIT a = CANON_ELEMENT (needle[j + k]);
+ UNIT b = CANON_ELEMENT (needle[max_suffix_rev + k]);
+ if (b < a)
+ {
+ /* Suffix is smaller, period is entire prefix so far. */
+ j += k;
+ k = 1;
+ p = j - max_suffix_rev;
+ }
+ else if (a == b)
+ {
+ /* Advance through repetition of the current period. */
+ if (k != p)
+ ++k;
+ else
+ {
+ j += p;
+ k = 1;
+ }
+ }
+ else /* a < b */
+ {
+ /* Suffix is larger, start over from current location. */
+ max_suffix_rev = j++;
+ k = p = 1;
+ }
+ }
+ p_rev = p;
+ }
/* Choose the shorter suffix. Return the index of the first character
of the right half, rather than the last character of the left half.
@@ -200,7 +203,7 @@ critical_factorization (const UNIT *needle, size_t needle_len,
factorization. */
if (max_suffix_rev + 1 < max_suffix + 1)
return max_suffix + 1;
- *period = p;
+ *period = p_rev;
return max_suffix_rev + 1;
}
@@ -218,15 +221,12 @@ static RETURN_TYPE _GL_ATTRIBUTE_PURE
two_way_short_needle (const UNIT *haystack, size_t haystack_len,
const UNIT *needle, size_t needle_len)
{
- size_t i; /* Index into current character of NEEDLE. */
- size_t j; /* Index into current window of HAYSTACK. */
- size_t period; /* The period of the right half of needle. */
- size_t suffix; /* The index of the right half of needle. */
-
/* Factor the needle into two halves, such that the left half is
smaller than the global period, and the right half is
periodic (with a period as large as NEEDLE_LEN - suffix). */
- suffix = critical_factorization (needle, needle_len, &period);
+ size_t period; /* The period of the right half of needle. */
+ size_t suffix = /* The index of the right half of needle. */
+ critical_factorization (needle, needle_len, &period);
/* Perform the search. Each iteration compares the right half
first. */
@@ -236,11 +236,12 @@ two_way_short_needle (const UNIT *haystack, size_t haystack_len,
only advance by the period, so use memory to avoid rescanning
known occurrences of the period in the right half. */
size_t memory = 0;
- j = 0;
+ size_t j = 0; /* Index into current window of HAYSTACK. */
while (AVAILABLE (haystack, haystack_len, j, needle_len))
{
/* Scan for matches in right half. */
- i = MAX (suffix, memory);
+ size_t i = /* Index into current character of NEEDLE. */
+ MAX (suffix, memory);
while (i < needle_len && (CANON_ELEMENT (needle[i])
== CANON_ELEMENT (haystack[i + j])))
++i;
@@ -270,11 +271,12 @@ two_way_short_needle (const UNIT *haystack, size_t haystack_len,
/* The two halves of needle are distinct; no extra memory is
required, and any mismatch results in a maximal shift. */
period = MAX (suffix, needle_len - suffix) + 1;
- j = 0;
+ size_t j = 0; /* Index into current window of HAYSTACK. */
while (AVAILABLE (haystack, haystack_len, j, needle_len))
{
/* Scan for matches in right half. */
- i = suffix;
+ size_t i = /* Index into current character of NEEDLE. */
+ suffix;
while (i < needle_len && (CANON_ELEMENT (needle[i])
== CANON_ELEMENT (haystack[i + j])))
++i;
diff --git a/lib/wcsstr-impl.h b/lib/wcsstr-impl.h
index 60463b4b..423c7fd9 100644
--- a/lib/wcsstr-impl.h
+++ b/lib/wcsstr-impl.h
@@ -1,5 +1,5 @@
/* Locate a substring in a wide string.
- Copyright (C) 1999, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2011-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -24,31 +24,33 @@
RETURN_TYPE
FUNC (const UNIT *haystack_start, const UNIT *needle_start)
{
- const UNIT *haystack = haystack_start;
const UNIT *needle = needle_start;
- size_t needle_len; /* Length of NEEDLE. */
- size_t haystack_len; /* Known minimum length of HAYSTACK. */
- bool ok = true; /* True if NEEDLE is prefix of HAYSTACK. */
/* Determine length of NEEDLE, and in the process, make sure
HAYSTACK is at least as long (no point processing all of a long
NEEDLE if HAYSTACK is too short). */
- while (*haystack && *needle)
- ok &= *haystack++ == *needle++;
- if (*needle)
- return NULL;
- if (ok)
- return (RETURN_TYPE) haystack_start;
+ {
+ const UNIT *haystack = haystack_start;
+ bool ok = true; /* True if NEEDLE is prefix of HAYSTACK. */
+ while (*haystack && *needle)
+ ok &= *haystack++ == *needle++;
+ if (*needle)
+ return NULL;
+ if (ok)
+ return (RETURN_TYPE) haystack_start;
+ }
/* Reduce the size of haystack using STRCHR, since it has a smaller
linear coefficient than the Two-Way algorithm. */
- needle_len = needle - needle_start;
- haystack = STRCHR (haystack_start + 1, *needle_start);
+ size_t needle_len = /* Length of NEEDLE. */
+ needle - needle_start;
+ const UNIT *haystack = STRCHR (haystack_start + 1, *needle_start);
if (!haystack || __builtin_expect (needle_len == 1, 0))
return (RETURN_TYPE) haystack;
needle -= needle_len;
- haystack_len = (haystack > haystack_start + needle_len ? 1
- : needle_len + haystack_start - haystack);
+ size_t haystack_len = /* Known minimum length of HAYSTACK. */
+ (haystack > haystack_start + needle_len ? 1
+ : needle_len + haystack_start - haystack);
/* Perform the search. */
return two_way_short_needle (haystack, haystack_len,
diff --git a/lib/wctype-h.c b/lib/wctype-h.c
index 098014a9..f773d0cb 100644
--- a/lib/wctype-h.c
+++ b/lib/wctype-h.c
@@ -1,6 +1,6 @@
/* Inline functions for <wctype.h>.
- Copyright (C) 2012-2025 Free Software Foundation, Inc.
+ Copyright (C) 2012-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/wctype.in.h b/lib/wctype.in.h
index 17b5235b..15f310ce 100644
--- a/lib/wctype.in.h
+++ b/lib/wctype.in.h
@@ -1,6 +1,6 @@
/* A substitute for ISO C99 <wctype.h>, for platforms that lack it.
- Copyright (C) 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2006-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -653,7 +653,6 @@ _GL_CXXALIAS_SYS (wctype, wctype_t, (const char *name));
_GL_CXXALIASWARN (wctype);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wctype
# if HAVE_RAW_DECL_WCTYPE
_GL_WARN_ON_USE (wctype, "wctype is unportable - "
"use gnulib module wctype for portability");
@@ -681,7 +680,6 @@ _GL_CXXALIAS_SYS (iswctype, int, (wint_t wc, wctype_t desc));
_GL_CXXALIASWARN (iswctype);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef iswctype
# if HAVE_RAW_DECL_ISWCTYPE
_GL_WARN_ON_USE (iswctype, "iswctype is unportable - "
"use gnulib module iswctype for portability");
@@ -735,7 +733,6 @@ _GL_CXXALIAS_SYS (wctrans, wctrans_t, (const char *name));
_GL_CXXALIASWARN (wctrans);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef wctrans
# if HAVE_RAW_DECL_WCTRANS
_GL_WARN_ON_USE (wctrans, "wctrans is unportable - "
"use gnulib module wctrans for portability");
@@ -763,7 +760,6 @@ _GL_CXXALIAS_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc));
_GL_CXXALIASWARN (towctrans);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef towctrans
# if HAVE_RAW_DECL_TOWCTRANS
_GL_WARN_ON_USE (towctrans, "towctrans is unportable - "
"use gnulib module towctrans for portability");
diff --git a/lib/wcwidth.c b/lib/wcwidth.c
index 6e7141d0..0f5c5ea4 100644
--- a/lib/wcwidth.c
+++ b/lib/wcwidth.c
@@ -1,5 +1,5 @@
/* Determine the number of screen columns needed for a character.
- Copyright (C) 2006-2007, 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2006-2007, 2010-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -23,7 +23,7 @@
#include <wctype.h>
#include "localcharset.h"
-#include "streq.h"
+#include "streq-opt.h"
#include "uniwidth.h"
/* Returns 1 if the current locale is an UTF-8 locale, 0 otherwise. */
diff --git a/lib/windows-initguard.h b/lib/windows-initguard.h
index 4f45e5bb..e7da4735 100644
--- a/lib/windows-initguard.h
+++ b/lib/windows-initguard.h
@@ -1,5 +1,5 @@
/* Init guards, somewhat like spinlocks (native Windows implementation).
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/windows-mutex.c b/lib/windows-mutex.c
index 87b75735..a8460fab 100644
--- a/lib/windows-mutex.c
+++ b/lib/windows-mutex.c
@@ -1,5 +1,5 @@
/* Plain mutexes (native Windows implementation).
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/windows-mutex.h b/lib/windows-mutex.h
index dc6b41e0..38eab652 100644
--- a/lib/windows-mutex.h
+++ b/lib/windows-mutex.h
@@ -1,5 +1,5 @@
/* Plain mutexes (native Windows implementation).
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/windows-once.c b/lib/windows-once.c
index bd9e672a..b3c8a982 100644
--- a/lib/windows-once.c
+++ b/lib/windows-once.c
@@ -1,5 +1,5 @@
/* Once-only control (native Windows implementation).
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/windows-once.h b/lib/windows-once.h
index b27ae538..886ddb45 100644
--- a/lib/windows-once.h
+++ b/lib/windows-once.h
@@ -1,5 +1,5 @@
/* Once-only control (native Windows implementation).
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/windows-recmutex.c b/lib/windows-recmutex.c
index 09341d56..fd6f04db 100644
--- a/lib/windows-recmutex.c
+++ b/lib/windows-recmutex.c
@@ -1,5 +1,5 @@
/* Plain recursive mutexes (native Windows implementation).
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/windows-recmutex.h b/lib/windows-recmutex.h
index 25a883d4..1b5773c1 100644
--- a/lib/windows-recmutex.h
+++ b/lib/windows-recmutex.h
@@ -1,5 +1,5 @@
/* Plain recursive mutexes (native Windows implementation).
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/windows-rwlock.c b/lib/windows-rwlock.c
index 313f14ca..4a5fbfc2 100644
--- a/lib/windows-rwlock.c
+++ b/lib/windows-rwlock.c
@@ -1,5 +1,5 @@
/* Read-write locks (native Windows implementation).
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -46,9 +46,6 @@ glwthread_waitqueue_init (glwthread_waitqueue_t *wq)
static HANDLE
glwthread_waitqueue_add (glwthread_waitqueue_t *wq)
{
- HANDLE event;
- unsigned int index;
-
if (wq->count == wq->alloc)
{
unsigned int new_alloc = 2 * wq->alloc + 1;
@@ -64,14 +61,13 @@ glwthread_waitqueue_add (glwthread_waitqueue_t *wq)
unsigned int old_count = wq->count;
unsigned int old_alloc = wq->alloc;
unsigned int old_offset = wq->offset;
- unsigned int i;
if (old_offset + old_count > old_alloc)
{
unsigned int limit = old_offset + old_count - old_alloc;
- for (i = 0; i < limit; i++)
+ for (unsigned int i = 0; i < limit; i++)
new_array[old_alloc + i] = new_array[i];
}
- for (i = 0; i < old_count; i++)
+ for (unsigned int i = 0; i < old_count; i++)
new_array[i] = new_array[old_offset + i];
wq->offset = 0;
}
@@ -80,11 +76,11 @@ glwthread_waitqueue_add (glwthread_waitqueue_t *wq)
}
/* Whether the created event is a manual-reset one or an auto-reset one,
does not matter, since we will wait on it only once. */
- event = CreateEvent (NULL, TRUE, FALSE, NULL);
+ HANDLE event = CreateEvent (NULL, TRUE, FALSE, NULL);
if (event == INVALID_HANDLE_VALUE)
/* No way to allocate an event. */
return INVALID_HANDLE_VALUE;
- index = wq->offset + wq->count;
+ unsigned int index = wq->offset + wq->count;
if (index >= wq->alloc)
index -= wq->alloc;
wq->array[index] = event;
@@ -107,9 +103,7 @@ glwthread_waitqueue_notify_first (glwthread_waitqueue_t *wq)
static void
glwthread_waitqueue_notify_all (glwthread_waitqueue_t *wq)
{
- unsigned int i;
-
- for (i = 0; i < wq->count; i++)
+ for (unsigned int i = 0; i < wq->count; i++)
{
unsigned int index = wq->offset + i;
if (index >= wq->alloc)
@@ -160,10 +154,9 @@ glwthread_rwlock_rdlock (glwthread_rwlock_t *lock)
HANDLE event = glwthread_waitqueue_add (&lock->waiting_readers);
if (event != INVALID_HANDLE_VALUE)
{
- DWORD result;
LeaveCriticalSection (&lock->lock);
/* Wait until another thread signals this event. */
- result = WaitForSingleObject (event, INFINITE);
+ DWORD result = WaitForSingleObject (event, INFINITE);
if (result == WAIT_FAILED || result == WAIT_TIMEOUT)
abort ();
CloseHandle (event);
@@ -217,10 +210,9 @@ glwthread_rwlock_wrlock (glwthread_rwlock_t *lock)
HANDLE event = glwthread_waitqueue_add (&lock->waiting_writers);
if (event != INVALID_HANDLE_VALUE)
{
- DWORD result;
LeaveCriticalSection (&lock->lock);
/* Wait until another thread signals this event. */
- result = WaitForSingleObject (event, INFINITE);
+ DWORD result = WaitForSingleObject (event, INFINITE);
if (result == WAIT_FAILED || result == WAIT_TIMEOUT)
abort ();
CloseHandle (event);
diff --git a/lib/windows-rwlock.h b/lib/windows-rwlock.h
index b1b4063a..5b0a6613 100644
--- a/lib/windows-rwlock.h
+++ b/lib/windows-rwlock.h
@@ -1,5 +1,5 @@
/* Read-write locks (native Windows implementation).
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/xalloc-oversized.h b/lib/xalloc-oversized.h
index 0f66bd06..cecdaec5 100644
--- a/lib/xalloc-oversized.h
+++ b/lib/xalloc-oversized.h
@@ -1,6 +1,6 @@
/* xalloc-oversized.h -- memory allocation size checking
- Copyright (C) 1990-2000, 2003-2004, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 1990-2000, 2003-2004, 2006-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/lib/xsize.c b/lib/xsize.c
index cd75b606..22856eb6 100644
--- a/lib/xsize.c
+++ b/lib/xsize.c
@@ -1,6 +1,6 @@
/* Checked size_t computations.
- Copyright (C) 2012-2025 Free Software Foundation, Inc.
+ Copyright (C) 2012-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -15,7 +15,6 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define XSIZE_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "xsize.h"
diff --git a/lib/xsize.h b/lib/xsize.h
index ee9c5680..b76cf49f 100644
--- a/lib/xsize.h
+++ b/lib/xsize.h
@@ -1,6 +1,6 @@
/* xsize.h -- Checked size_t computations.
- Copyright (C) 2003, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2008-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/tests/Makefile.gnulib b/tests/Makefile.gnulib
index 9188f3f7..11bd8755 100644
--- a/tests/Makefile.gnulib
+++ b/tests/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
@@ -2093,14 +2093,14 @@ EXTRA_DIST += test-signal-h.c
## end gnulib module signal-h-tests
-## begin gnulib module signbit-tests
+## begin gnulib module signbit-no-c++-tests
TESTS += test-signbit
check_PROGRAMS += test-signbit
EXTRA_DIST += test-signbit.c minus-zero.h infinity.h macros.h
-## end gnulib module signbit-tests
+## end gnulib module signbit-no-c++-tests
## begin gnulib module signed-nan
@@ -2442,9 +2442,6 @@ stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H)
$(AM_V_at)mv $@-t3 $@
MOSTLYCLEANFILES += stdio.h stdio.h-t1 stdio.h-t2 stdio.h-t3
-if GL_COND_OBJ_STDIO_CONSOLESAFE
-libtests_a_SOURCES += stdio-consolesafe.c
-endif
if GL_COND_OBJ_STDIO_READ
libtests_a_SOURCES += stdio-read.c
endif
@@ -2464,6 +2461,14 @@ EXTRA_DIST += test-stdio-h.c macros.h
## end gnulib module stdio-h-tests
+## begin gnulib module stdio-windows
+
+if GL_COND_OBJ_STDIO_CONSOLESAFE
+libtests_a_SOURCES += stdio-consolesafe.c
+endif
+
+## end gnulib module stdio-windows
+
## begin gnulib module stdlib-h-tests
TESTS += test-stdlib-h
@@ -2588,6 +2593,14 @@ EXTRA_DIST += test-strncat.c unistr/test-strncat.h zerosize-ptr.h signature.h ma
## end gnulib module strncat-tests
+## begin gnulib module strncpy-tests
+
+TESTS += test-strncpy
+check_PROGRAMS += test-strncpy
+EXTRA_DIST += test-strncpy.c zerosize-ptr.h macros.h
+
+## end gnulib module strncpy-tests
+
## begin gnulib module strstr-tests
TESTS += test-strstr
diff --git a/tests/Makefile.in b/tests/Makefile.in
index e9f728f1..ba6bbddc 100644
--- a/tests/Makefile.in
+++ b/tests/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
@@ -198,13 +198,13 @@ TESTS = test-accept$(EXEEXT) test-alignasof$(EXEEXT) \
test-strerror$(EXEEXT) test-strerror_r$(EXEEXT) \
test-striconveh$(EXEEXT) test-striconveha$(EXEEXT) \
test-string-h$(EXEEXT) test-strncat$(EXEEXT) \
- test-strstr$(EXEEXT) test-symlink$(EXEEXT) \
- test-sys_ioctl-h$(EXEEXT) test-sys_select-h$(EXEEXT) \
- test-sys_socket-h$(EXEEXT) test-sys_stat-h$(EXEEXT) \
- test-sys_time-h$(EXEEXT) test-sys_types-h$(EXEEXT) \
- test-sys_uio-h$(EXEEXT) test-init.sh test-thread_self$(EXEEXT) \
- test-thread_create$(EXEEXT) test-time-h$(EXEEXT) \
- test-time$(EXEEXT) test-uchar-h$(EXEEXT) \
+ test-strncpy$(EXEEXT) test-strstr$(EXEEXT) \
+ test-symlink$(EXEEXT) test-sys_ioctl-h$(EXEEXT) \
+ test-sys_select-h$(EXEEXT) test-sys_socket-h$(EXEEXT) \
+ test-sys_stat-h$(EXEEXT) test-sys_time-h$(EXEEXT) \
+ test-sys_types-h$(EXEEXT) test-sys_uio-h$(EXEEXT) test-init.sh \
+ test-thread_self$(EXEEXT) test-thread_create$(EXEEXT) \
+ test-time-h$(EXEEXT) test-time$(EXEEXT) test-uchar-h$(EXEEXT) \
test-unicase-h$(EXEEXT) test-cased$(EXEEXT) \
test-ignorable$(EXEEXT) unicase/test-locale-language.sh \
test-uc_tolower$(EXEEXT) test-uc_totitle$(EXEEXT) \
@@ -561,13 +561,13 @@ check_PROGRAMS = test-accept$(EXEEXT) test-alignasof$(EXEEXT) \
test-strerror$(EXEEXT) test-strerror_r$(EXEEXT) \
test-striconveh$(EXEEXT) test-striconveha$(EXEEXT) \
test-string-h$(EXEEXT) test-strncat$(EXEEXT) \
- test-strstr$(EXEEXT) test-symlink$(EXEEXT) \
- test-sys_ioctl-h$(EXEEXT) test-sys_select-h$(EXEEXT) \
- test-sys_socket-h$(EXEEXT) test-sys_stat-h$(EXEEXT) \
- test-sys_time-h$(EXEEXT) test-sys_types-h$(EXEEXT) \
- test-sys_uio-h$(EXEEXT) test-thread_self$(EXEEXT) \
- test-thread_create$(EXEEXT) test-time-h$(EXEEXT) \
- test-time$(EXEEXT) test-uchar-h$(EXEEXT) \
+ test-strncpy$(EXEEXT) test-strstr$(EXEEXT) \
+ test-symlink$(EXEEXT) test-sys_ioctl-h$(EXEEXT) \
+ test-sys_select-h$(EXEEXT) test-sys_socket-h$(EXEEXT) \
+ test-sys_stat-h$(EXEEXT) test-sys_time-h$(EXEEXT) \
+ test-sys_types-h$(EXEEXT) test-sys_uio-h$(EXEEXT) \
+ test-thread_self$(EXEEXT) test-thread_create$(EXEEXT) \
+ test-time-h$(EXEEXT) test-time$(EXEEXT) test-uchar-h$(EXEEXT) \
test-unicase-h$(EXEEXT) test-cased$(EXEEXT) \
test-ignorable$(EXEEXT) test-locale-language$(EXEEXT) \
test-uc_tolower$(EXEEXT) test-uc_totitle$(EXEEXT) \
@@ -912,9 +912,9 @@ EXTRA_PROGRAMS = test-verify-try$(EXEEXT)
@GL_COND_OBJ_SLEEP_TRUE@am__append_58 = sleep.c
@GL_COND_OBJ_SOCKET_TRUE@am__append_59 = socket.c
@GL_COND_OBJ_STAT_TRUE@am__append_60 = stat.c
-@GL_COND_OBJ_STDIO_CONSOLESAFE_TRUE@am__append_61 = stdio-consolesafe.c
-@GL_COND_OBJ_STDIO_READ_TRUE@am__append_62 = stdio-read.c
-@GL_COND_OBJ_STDIO_WRITE_TRUE@am__append_63 = stdio-write.c
+@GL_COND_OBJ_STDIO_READ_TRUE@am__append_61 = stdio-read.c
+@GL_COND_OBJ_STDIO_WRITE_TRUE@am__append_62 = stdio-write.c
+@GL_COND_OBJ_STDIO_CONSOLESAFE_TRUE@am__append_63 = stdio-consolesafe.c
@GL_COND_OBJ_STPCPY_TRUE@am__append_64 = stpcpy.c
@GL_COND_OBJ_STRERROR_TRUE@am__append_65 = strerror.c
@GL_COND_OBJ_STRERROR_OVERRIDE_TRUE@am__append_66 = strerror-override.c
@@ -1018,6 +1018,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 \
@@ -1118,6 +1119,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 \
@@ -1198,8 +1200,8 @@ am__libtests_a_SOURCES_DIST = accept.c arpa_inet.c basename-lgpl.c \
same-inode.h same-inode.c sched_yield.c select.c setenv.c \
setlocale.c setsockopt.c signed-nan.h signed-snan.h \
sigprocmask.c sleep.c snan.h socket.c sockets.h sockets.c \
- stat.c stat-time.c stdio-consolesafe.c stdio-read.c \
- stdio-write.c stpcpy.c str_endswith.c str_startswith.c \
+ stat.c stat-time.c stdio-read.c stdio-write.c \
+ stdio-consolesafe.c stpcpy.c str_endswith.c str_startswith.c \
strerror.c strerror-override.c symlink.c sys_socket.c \
glthread/thread.h glthread/thread.c time.c unsetenv.c usleep.c \
wcrtomb.c wctob.c wctomb.c windows-cond.c windows-thread.c \
@@ -1266,9 +1268,9 @@ am__libtests_a_SOURCES_DIST = accept.c arpa_inet.c basename-lgpl.c \
@GL_COND_OBJ_SLEEP_TRUE@am__objects_49 = sleep.$(OBJEXT)
@GL_COND_OBJ_SOCKET_TRUE@am__objects_50 = socket.$(OBJEXT)
@GL_COND_OBJ_STAT_TRUE@am__objects_51 = stat.$(OBJEXT)
-@GL_COND_OBJ_STDIO_CONSOLESAFE_TRUE@am__objects_52 = stdio-consolesafe.$(OBJEXT)
-@GL_COND_OBJ_STDIO_READ_TRUE@am__objects_53 = stdio-read.$(OBJEXT)
-@GL_COND_OBJ_STDIO_WRITE_TRUE@am__objects_54 = stdio-write.$(OBJEXT)
+@GL_COND_OBJ_STDIO_READ_TRUE@am__objects_52 = stdio-read.$(OBJEXT)
+@GL_COND_OBJ_STDIO_WRITE_TRUE@am__objects_53 = stdio-write.$(OBJEXT)
+@GL_COND_OBJ_STDIO_CONSOLESAFE_TRUE@am__objects_54 = stdio-consolesafe.$(OBJEXT)
@GL_COND_OBJ_STPCPY_TRUE@am__objects_55 = stpcpy.$(OBJEXT)
@GL_COND_OBJ_STRERROR_TRUE@am__objects_56 = strerror.$(OBJEXT)
@GL_COND_OBJ_STRERROR_OVERRIDE_TRUE@am__objects_57 = strerror-override.$(OBJEXT)
@@ -2889,6 +2891,12 @@ test_strncat_LDADD = $(LDADD)
test_strncat_DEPENDENCIES = libtests.a ../lib/libunistring.la \
libtests.a ../lib/libunistring.la libtests.a \
$(am__DEPENDENCIES_1)
+test_strncpy_SOURCES = test-strncpy.c
+test_strncpy_OBJECTS = test-strncpy.$(OBJEXT)
+test_strncpy_LDADD = $(LDADD)
+test_strncpy_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a ../lib/libunistring.la libtests.a \
+ $(am__DEPENDENCIES_1)
test_strstr_SOURCES = test-strstr.c
test_strstr_OBJECTS = test-strstr.$(OBJEXT)
test_strstr_LDADD = $(LDADD)
@@ -4078,8 +4086,8 @@ am__depfiles_remade = ./$(DEPDIR)/accept.Po ./$(DEPDIR)/alloca.Po \
./$(DEPDIR)/test-strerror.Po ./$(DEPDIR)/test-strerror_r.Po \
./$(DEPDIR)/test-striconveh.Po ./$(DEPDIR)/test-striconveha.Po \
./$(DEPDIR)/test-string-h.Po ./$(DEPDIR)/test-strncat.Po \
- ./$(DEPDIR)/test-strstr.Po ./$(DEPDIR)/test-symlink.Po \
- ./$(DEPDIR)/test-sys_ioctl-h.Po \
+ ./$(DEPDIR)/test-strncpy.Po ./$(DEPDIR)/test-strstr.Po \
+ ./$(DEPDIR)/test-symlink.Po ./$(DEPDIR)/test-sys_ioctl-h.Po \
./$(DEPDIR)/test-sys_select-h.Po \
./$(DEPDIR)/test-sys_socket-h.Po \
./$(DEPDIR)/test-sys_stat-h.Po ./$(DEPDIR)/test-sys_time-h.Po \
@@ -4775,7 +4783,7 @@ SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
test-str_endswith.c test-str_startswith.c test-strerror.c \
test-strerror_r.c test-striconveh.c \
$(test_striconveha_SOURCES) test-string-h.c test-strncat.c \
- test-strstr.c $(test_sy_c_ident_SOURCES) \
+ test-strncpy.c test-strstr.c $(test_sy_c_ident_SOURCES) \
$(test_sy_c_whitespace_SOURCES) $(test_sy_java_ident_SOURCES) \
$(test_sy_java_whitespace_SOURCES) test-symlink.c \
test-sys_ioctl-h.c test-sys_select-h.c test-sys_socket-h.c \
@@ -5121,7 +5129,7 @@ DIST_SOURCES = $(am__libtests_a_SOURCES_DIST) \
test-str_endswith.c test-str_startswith.c test-strerror.c \
test-strerror_r.c test-striconveh.c \
$(test_striconveha_SOURCES) test-string-h.c test-strncat.c \
- test-strstr.c $(test_sy_c_ident_SOURCES) \
+ test-strncpy.c test-strstr.c $(test_sy_c_ident_SOURCES) \
$(test_sy_c_whitespace_SOURCES) $(test_sy_java_ident_SOURCES) \
$(test_sy_java_whitespace_SOURCES) test-symlink.c \
test-sys_ioctl-h.c test-sys_select-h.c test-sys_socket-h.c \
@@ -5804,13 +5812,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@
@@ -5958,6 +5969,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@
@@ -6039,6 +6051,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@
@@ -6066,8 +6079,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@
@@ -6582,6 +6597,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@
@@ -6739,6 +6755,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@
@@ -6839,6 +6856,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@
@@ -7284,6 +7302,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@
@@ -7303,6 +7322,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@
@@ -7709,30 +7729,31 @@ EXTRA_DIST = w32sock.h test-accept.c signature.h macros.h \
test-strerror_r.c signature.h macros.h test-striconveh.c \
macros.h test-striconveha.c iconvsupport.c macros.h \
test-string-h.c test-strncat.c unistr/test-strncat.h \
- zerosize-ptr.h signature.h macros.h test-strstr.c \
- zerosize-ptr.h signature.h macros.h test-symlink.h \
- test-symlink.c signature.h macros.h sys_ioctl.in.h \
- test-sys_ioctl-h.c sys_select.in.h test-sys_select-h.c \
- signature.h sys_socket.in.h test-sys_socket-h.c macros.h \
- sys_stat.in.h test-sys_stat-h.c sys_time.in.h \
- test-sys_time-h.c test-sys_types-h.c sys_uio.in.h \
- test-sys_uio-h.c init.sh test-init.sh test-thread_self.c \
- test-thread_create.c macros.h test-time-h.c test-time.c \
- signature.h macros.h test-uchar-h.c unicase/test-unicase-h.c \
- unicase/test-cased.c unicase/test-predicate-part1.h \
- unicase/test-predicate-part2.h macros.h \
- unicase/test-ignorable.c unicase/test-predicate-part1.h \
- unicase/test-predicate-part2.h macros.h \
- unicase/test-locale-language.sh unicase/test-locale-language.c \
- macros.h unicase/test-uc_tolower.c \
- unicase/test-mapping-part1.h unicase/test-mapping-part2.h \
- macros.h unicase/test-uc_totitle.c \
- unicase/test-mapping-part1.h unicase/test-mapping-part2.h \
- macros.h unicase/test-uc_toupper.c \
- unicase/test-mapping-part1.h unicase/test-mapping-part2.h \
- macros.h unicase/test-u16-casecmp.c unicase/test-casecmp.h \
- macros.h unicase/test-u16-casecoll.c unicase/test-casecmp.h \
- macros.h unicase/test-u16-casefold.c macros.h \
+ zerosize-ptr.h signature.h macros.h test-strncpy.c \
+ zerosize-ptr.h macros.h test-strstr.c zerosize-ptr.h \
+ signature.h macros.h test-symlink.h test-symlink.c signature.h \
+ macros.h sys_ioctl.in.h test-sys_ioctl-h.c sys_select.in.h \
+ test-sys_select-h.c signature.h sys_socket.in.h \
+ test-sys_socket-h.c macros.h sys_stat.in.h test-sys_stat-h.c \
+ sys_time.in.h test-sys_time-h.c test-sys_types-h.c \
+ sys_uio.in.h test-sys_uio-h.c init.sh test-init.sh \
+ test-thread_self.c test-thread_create.c macros.h test-time-h.c \
+ test-time.c signature.h macros.h test-uchar-h.c \
+ unicase/test-unicase-h.c unicase/test-cased.c \
+ unicase/test-predicate-part1.h unicase/test-predicate-part2.h \
+ macros.h unicase/test-ignorable.c \
+ unicase/test-predicate-part1.h unicase/test-predicate-part2.h \
+ macros.h unicase/test-locale-language.sh \
+ unicase/test-locale-language.c macros.h \
+ unicase/test-uc_tolower.c unicase/test-mapping-part1.h \
+ unicase/test-mapping-part2.h macros.h \
+ unicase/test-uc_totitle.c unicase/test-mapping-part1.h \
+ unicase/test-mapping-part2.h macros.h \
+ unicase/test-uc_toupper.c unicase/test-mapping-part1.h \
+ unicase/test-mapping-part2.h macros.h \
+ unicase/test-u16-casecmp.c unicase/test-casecmp.h macros.h \
+ unicase/test-u16-casecoll.c unicase/test-casecmp.h macros.h \
+ unicase/test-u16-casefold.c macros.h \
unicase/test-u16-is-cased.c unicase/test-is-cased.h macros.h \
unicase/test-u16-is-casefolded.c unicase/test-is-casefolded.h \
macros.h unicase/test-u16-is-lowercase.c \
@@ -11508,6 +11529,10 @@ test-strncat$(EXEEXT): $(test_strncat_OBJECTS) $(test_strncat_DEPENDENCIES) $(EX
@rm -f test-strncat$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_strncat_OBJECTS) $(test_strncat_LDADD) $(LIBS)
+test-strncpy$(EXEEXT): $(test_strncpy_OBJECTS) $(test_strncpy_DEPENDENCIES) $(EXTRA_test_strncpy_DEPENDENCIES)
+ @rm -f test-strncpy$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_strncpy_OBJECTS) $(test_strncpy_LDADD) $(LIBS)
+
test-strstr$(EXEEXT): $(test_strstr_OBJECTS) $(test_strstr_DEPENDENCIES) $(EXTRA_test_strstr_DEPENDENCIES)
@rm -f test-strstr$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_strstr_OBJECTS) $(test_strstr_LDADD) $(LIBS)
@@ -13443,6 +13468,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-striconveha.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-string-h.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strncat.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strncpy.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strstr.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-symlink.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_ioctl-h.Po@am__quote@ # am--include-marker
@@ -15610,6 +15636,13 @@ test-strncat.log: test-strncat$(EXEEXT)
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+test-strncpy.log: test-strncpy$(EXEEXT)
+ @p='test-strncpy$(EXEEXT)'; \
+ b='test-strncpy'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
test-strstr.log: test-strstr$(EXEEXT)
@p='test-strstr$(EXEEXT)'; \
b='test-strstr'; \
@@ -19413,6 +19446,7 @@ distclean: distclean-recursive
-rm -f ./$(DEPDIR)/test-striconveha.Po
-rm -f ./$(DEPDIR)/test-string-h.Po
-rm -f ./$(DEPDIR)/test-strncat.Po
+ -rm -f ./$(DEPDIR)/test-strncpy.Po
-rm -f ./$(DEPDIR)/test-strstr.Po
-rm -f ./$(DEPDIR)/test-symlink.Po
-rm -f ./$(DEPDIR)/test-sys_ioctl-h.Po
@@ -20209,6 +20243,7 @@ maintainer-clean: maintainer-clean-recursive
-rm -f ./$(DEPDIR)/test-striconveha.Po
-rm -f ./$(DEPDIR)/test-string-h.Po
-rm -f ./$(DEPDIR)/test-strncat.Po
+ -rm -f ./$(DEPDIR)/test-strncpy.Po
-rm -f ./$(DEPDIR)/test-strstr.Po
-rm -f ./$(DEPDIR)/test-symlink.Po
-rm -f ./$(DEPDIR)/test-sys_ioctl-h.Po
diff --git a/tests/_Noreturn.h b/tests/_Noreturn.h
index d42f15ee..0bab051e 100644
--- a/tests/_Noreturn.h
+++ b/tests/_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/tests/accept.c b/tests/accept.c
index e57e218c..d7ec71b5 100644
--- a/tests/accept.c
+++ b/tests/accept.c
@@ -1,6 +1,6 @@
/* accept.c --- wrappers for Windows accept function
- 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/tests/alloca.c b/tests/alloca.c
index 5eb16a9f..aff0c3bb 100644
--- a/tests/alloca.c
+++ b/tests/alloca.c
@@ -61,11 +61,11 @@ static int stack_dir; /* 1 or -1 once known. */
static int
find_stack_direction (int *addr, int depth)
{
- int dir, dummy = 0;
+ int dummy = 0;
if (! addr)
addr = &dummy;
*addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
- dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+ int dir = depth ? find_stack_direction (addr, depth - 1) : 0;
return dir + dummy;
}
@@ -140,14 +140,11 @@ alloca (size_t size)
/* Allocate combined header + user data storage. */
{
- /* Address of header. */
- register header *new;
-
size_t combined_size = sizeof (header) + size;
if (combined_size < sizeof (header))
memory_full ();
- new = malloc (combined_size);
+ register header *new = malloc (combined_size);
if (! new)
memory_full ();
diff --git a/tests/arg-nonnull.h b/tests/arg-nonnull.h
index 747bb413..d370d139 100644
--- a/tests/arg-nonnull.h
+++ b/tests/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/tests/arpa_inet.c b/tests/arpa_inet.c
index fae7c241..d0ff3a31 100644
--- a/tests/arpa_inet.c
+++ b/tests/arpa_inet.c
@@ -1,6 +1,6 @@
/* Inline functions for <arpa/inet.h>.
- Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Copyright (C) 2024-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -15,7 +15,6 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_ARPA_INET_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <arpa/inet.h>
diff --git a/tests/arpa_inet.in.h b/tests/arpa_inet.in.h
index d7417bfd..a9c93d07 100644
--- a/tests/arpa_inet.in.h
+++ b/tests/arpa_inet.in.h
@@ -1,6 +1,6 @@
/* A GNU-like <arpa/inet.h>.
- Copyright (C) 2005-2006, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-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
@@ -159,7 +159,6 @@ _GL_CXXALIAS_SYS_CAST (inet_ntop, const char *,
_GL_CXXALIASWARN (inet_ntop);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef inet_ntop
# if HAVE_RAW_DECL_INET_NTOP
_GL_WARN_ON_USE (inet_ntop, "inet_ntop is unportable - "
"use gnulib module inet_ntop for portability");
@@ -190,7 +189,6 @@ _GL_CXXALIAS_SYS (inet_pton, int,
_GL_CXXALIASWARN (inet_pton);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef inet_pton
# if HAVE_RAW_DECL_INET_PTON
_GL_WARN_ON_USE (inet_pton, "inet_pton is unportable - "
"use gnulib module inet_pton for portability");
diff --git a/tests/atomic-int-gnulib.h b/tests/atomic-int-gnulib.h
index 73ded1c8..1f70eaf9 100644
--- a/tests/atomic-int-gnulib.h
+++ b/tests/atomic-int-gnulib.h
@@ -1,5 +1,5 @@
/* Atomic integers. Useful for testing multithreaded locking primitives.
- Copyright (C) 2005, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2008-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
@@ -87,8 +87,7 @@ static void
init_atomic_int (struct atomic_int *ai)
{
sem_t *s;
- unsigned int count;
- for (count = 0; ; count++)
+ for (unsigned int count = 0; ; count++)
{
char name[80];
/* Use getpid() in the name, so that different processes running at the
diff --git a/tests/atomic-int-posix.h b/tests/atomic-int-posix.h
index d573e60c..d6400801 100644
--- a/tests/atomic-int-posix.h
+++ b/tests/atomic-int-posix.h
@@ -1,5 +1,5 @@
/* Atomic integers. Useful for testing multithreaded locking primitives.
- Copyright (C) 2005, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2008-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
@@ -87,8 +87,7 @@ static void
init_atomic_int (struct atomic_int *ai)
{
sem_t *s;
- unsigned int count;
- for (count = 0; ; count++)
+ for (unsigned int count = 0; ; count++)
{
char name[80];
/* Use getpid() in the name, so that different processes running at the
diff --git a/tests/basename-lgpl.c b/tests/basename-lgpl.c
index 2aecb0dd..53f3bae5 100644
--- a/tests/basename-lgpl.c
+++ b/tests/basename-lgpl.c
@@ -1,6 +1,6 @@
/* basename.c -- return the last element in a file name
- Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2025 Free Software
+ Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2026 Free Software
Foundation, Inc.
This file is free software: you can redistribute it and/or modify
@@ -29,13 +29,11 @@ char *
last_component (char const *name)
{
char const *base = name + FILE_SYSTEM_PREFIX_LEN (name);
- char const *p;
- bool last_was_slash = false;
-
while (ISSLASH (*base))
base++;
- for (p = base; *p; p++)
+ bool last_was_slash = false;
+ for (char const *p = base; *p; p++)
{
if (ISSLASH (*p))
last_was_slash = true;
@@ -53,8 +51,6 @@ size_t
base_len (char const *name)
{
size_t len;
- size_t prefix_len = FILE_SYSTEM_PREFIX_LEN (name);
-
for (len = strlen (name); 1 < len && ISSLASH (name[len - 1]); len--)
continue;
@@ -62,6 +58,7 @@ base_len (char const *name)
&& ISSLASH (name[0]) && ISSLASH (name[1]) && ! name[2])
return 2;
+ size_t prefix_len = FILE_SYSTEM_PREFIX_LEN (name);
if (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE && prefix_len
&& len == prefix_len && ISSLASH (name[prefix_len]))
return prefix_len + 1;
diff --git a/tests/basename-lgpl.h b/tests/basename-lgpl.h
index 120bd1cf..fa43cffb 100644
--- a/tests/basename-lgpl.h
+++ b/tests/basename-lgpl.h
@@ -1,6 +1,6 @@
/* Extract the last component (base name) of a file name.
- Copyright (C) 1998, 2001, 2003-2006, 2009-2025 Free Software Foundation,
+ Copyright (C) 1998, 2001, 2003-2006, 2009-2026 Free Software Foundation,
Inc.
This file is free software: you can redistribute it and/or modify
diff --git a/tests/binary-io.c b/tests/binary-io.c
index d2937b8f..45060f68 100644
--- a/tests/binary-io.c
+++ b/tests/binary-io.c
@@ -1,5 +1,5 @@
/* Binary mode I/O.
- Copyright 2017-2025 Free Software Foundation, Inc.
+ Copyright 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
@@ -14,9 +14,8 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define BINARY_IO_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "binary-io.h"
#if defined __DJGPP__ || defined __EMX__
diff --git a/tests/binary-io.h b/tests/binary-io.h
index 20b9b5d8..37eb3c4b 100644
--- a/tests/binary-io.h
+++ b/tests/binary-io.h
@@ -1,5 +1,5 @@
/* Binary mode I/O.
- Copyright (C) 2001, 2003, 2005, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2003, 2005, 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/tests/bind.c b/tests/bind.c
index 2b44963a..73d3d156 100644
--- a/tests/bind.c
+++ b/tests/bind.c
@@ -1,6 +1,6 @@
/* bind.c --- wrappers for Windows bind function
- 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/tests/btoc32.c b/tests/btoc32.c
index 28792cb5..e4ca972d 100644
--- a/tests/btoc32.c
+++ b/tests/btoc32.c
@@ -1,5 +1,5 @@
/* Convert unibyte 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
@@ -42,11 +42,10 @@ btoc32 (int c)
if (c != EOF)
{
mbstate_t state;
- char s[1];
- char32_t wc;
-
mbszero (&state);
+ char s[1];
s[0] = (unsigned char) c;
+ char32_t wc;
if (mbrtoc32 (&wc, s, 1, &state) <= 1)
return wc;
}
diff --git a/tests/btowc.c b/tests/btowc.c
index 891347de..19b490d1 100644
--- a/tests/btowc.c
+++ b/tests/btowc.c
@@ -1,5 +1,5 @@
/* Convert unibyte character to wide character.
- Copyright (C) 2008, 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008, 2010-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This file is free software: you can redistribute it and/or modify
diff --git a/tests/c++defs.h b/tests/c++defs.h
index b77979a3..cfe68cb1 100644
--- a/tests/c++defs.h
+++ b/tests/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/tests/c32rtomb.c b/tests/c32rtomb.c
index 39148146..74d38ed7 100644
--- a/tests/c32rtomb.c
+++ b/tests/c32rtomb.c
@@ -1,5 +1,5 @@
/* Convert 32-bit wide character to multibyte 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
@@ -26,7 +26,7 @@
#include "attribute.h" /* FALLTHROUGH */
#include "localcharset.h"
-#include "streq.h"
+#include "streq-opt.h"
#if GL_CHAR32_T_IS_UNICODE
# include "lc-charset-unicode.h"
diff --git a/tests/c32tob.c b/tests/c32tob.c
index ecaf3d2a..2424e1ee 100644
--- a/tests/c32tob.c
+++ b/tests/c32tob.c
@@ -1,5 +1,5 @@
/* Convert 32-bit wide character to unibyte 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
@@ -42,9 +42,9 @@ c32tob (wint_t wc)
if (wc != WEOF)
{
mbstate_t state;
- char buf[8];
-
mbszero (&state);
+
+ char buf[8];
if (c32rtomb (buf, wc, &state) == 1)
return (unsigned char) buf[0];
}
diff --git a/tests/calloc.c b/tests/calloc.c
index 66ed0cf9..b4ca8f89 100644
--- a/tests/calloc.c
+++ b/tests/calloc.c
@@ -1,6 +1,6 @@
/* calloc() function that is glibc compatible.
This wrapper function is required at least on mingw.
- Copyright (C) 2004-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2004-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/tests/cdefs.h b/tests/cdefs.h
index 2682c092..42024b20 100644
--- a/tests/cdefs.h
+++ b/tests/cdefs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2026 Free Software Foundation, Inc.
Copyright The GNU Toolchain Authors.
This file is part of the GNU C Library.
@@ -24,13 +24,6 @@
# include <features.h>
#endif
-/* The GNU libc does not support any K&R compilers or the traditional mode
- of ISO C compilers anymore. Check for some of the combinations not
- supported anymore. */
-#if defined __GNUC__ && !defined __STDC__
-# error "You need a ISO C conforming compiler to use the glibc headers"
-#endif
-
/* Some user header file might have defined this before. */
#undef __P
#undef __PMT
@@ -100,6 +93,12 @@
# endif
# endif
+# if __GNUC_PREREQ (4, 3) || __glibc_has_attribute (__cold__)
+# define __COLD __attribute__ ((__cold__))
+# else
+# define __COLD
+# endif
+
#else /* Not GCC or clang. */
# if (defined __cplusplus \
@@ -112,6 +111,7 @@
# define __THROW
# define __THROWNL
# define __NTH(fct) fct
+# define __COLD
#endif /* GCC || clang. */
@@ -140,38 +140,47 @@
#endif
+/* The overloadable attribute was added on clang 2.6. */
+#if defined __clang_major__ \
+ && (__clang_major__ + (__clang_minor__ >= 6) > 2)
+# define __attribute_overloadable__ __attribute__((__overloadable__))
+#else
+# define __attribute_overloadable__
+#endif
+
/* Gnulib avoids these definitions, as they don't work on non-glibc platforms.
In particular, __bos and __bos0 are defined differently in the Android libc.
*/
#ifndef __GNULIB_CDEFS
/* Fortify support. */
-# define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
-# define __bos0(ptr) __builtin_object_size (ptr, 0)
+#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
+#define __bos0(ptr) __builtin_object_size (ptr, 0)
/* Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. */
-# if __USE_FORTIFY_LEVEL == 3 && (__glibc_clang_prereq (9, 0) \
- || __GNUC_PREREQ (12, 0))
-# define __glibc_objsize0(__o) __builtin_dynamic_object_size (__o, 0)
-# define __glibc_objsize(__o) __builtin_dynamic_object_size (__o, 1)
-# else
-# define __glibc_objsize0(__o) __bos0 (__o)
-# define __glibc_objsize(__o) __bos (__o)
-# endif
+#if __USE_FORTIFY_LEVEL == 3 && (__glibc_clang_prereq (9, 0) \
+ || __GNUC_PREREQ (12, 0))
+# define __glibc_objsize0(__o) __builtin_dynamic_object_size (__o, 0)
+# define __glibc_objsize(__o) __builtin_dynamic_object_size (__o, 1)
+#else
+# define __glibc_objsize0(__o) __bos0 (__o)
+# define __glibc_objsize(__o) __bos (__o)
+#endif
+#if __USE_FORTIFY_LEVEL > 0
/* Compile time conditions to choose between the regular, _chk and _chk_warn
variants. These conditions should get evaluated to constant and optimized
away. */
-# define __glibc_safe_len_cond(__l, __s, __osz) ((__l) <= (__osz) / (__s))
-# define __glibc_unsigned_or_positive(__l) \
+#define __glibc_safe_len_cond(__l, __s, __osz) ((__l) <= (__osz) / (__s))
+#define __glibc_unsigned_or_positive(__l) \
((__typeof (__l)) 0 < (__typeof (__l)) -1 \
|| (__builtin_constant_p (__l) && (__l) > 0))
/* Length is known to be safe at compile time if the __L * __S <= __OBJSZ
condition can be folded to a constant and if it is true, or unknown (-1) */
-# define __glibc_safe_or_unknown_len(__l, __s, __osz) \
- ((__osz) == (__SIZE_TYPE__) -1 \
+#define __glibc_safe_or_unknown_len(__l, __s, __osz) \
+ ((__builtin_constant_p (__osz) && (__osz) == (__SIZE_TYPE__) -1) \
|| (__glibc_unsigned_or_positive (__l) \
&& __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \
(__s), (__osz))) \
@@ -180,34 +189,179 @@
/* Conversely, we know at compile time that the length is unsafe if the
__L * __S <= __OBJSZ condition can be folded to a constant and if it is
false. */
-# define __glibc_unsafe_len(__l, __s, __osz) \
+#define __glibc_unsafe_len(__l, __s, __osz) \
(__glibc_unsigned_or_positive (__l) \
&& __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \
__s, __osz)) \
&& !__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), __s, __osz))
+/* To correctly instrument the fortify wrapper clang requires the
+ pass_object_size attribute, and the attribute has the restriction that the
+ argument needs to be 'const'. Furthermore, to make it usable with C
+ interfaces, clang provides the overload attribute, which provides a C++
+ like function overload support. The overloaded fortify wrapper with the
+ pass_object_size attribute has precedence over the default symbol.
+
+ Also, clang does not support __va_arg_pack, so variadic functions are
+ expanded to issue va_arg implementations. The error function must not have
+ bodies (address takes are expanded to nonfortified calls), and with
+ __fortify_function compiler might still create a body with the C++
+ mangling name (due to the overload attribute). In this case, the function
+ is defined with __fortify_function_error_function macro instead.
+
+ The argument size check is also done with a clang-only attribute,
+ __attribute__ ((__diagnose_if__ (...))), different than gcc which calls
+ symbol_chk_warn alias with uses __warnattr attribute.
+
+ The pass_object_size was added on clang 4.0, __diagnose_if__ on 5.0,
+ and pass_dynamic_object_size on 9.0. */
+#if defined __clang_major__ && __clang_major__ >= 5
+# define __fortify_use_clang 1
+
+# define __fortify_function_error_function static __attribute__((__unused__))
+
+# define __fortify_clang_pass_object_size_n(n) \
+ __attribute__ ((__pass_object_size__ (n)))
+# define __fortify_clang_pass_object_size0 \
+ __fortify_clang_pass_object_size_n (0)
+# define __fortify_clang_pass_object_size \
+ __fortify_clang_pass_object_size_n (__USE_FORTIFY_LEVEL > 1)
+
+# if __clang_major__ >= 9
+# define __fortify_clang_pass_dynamic_object_size_n(n) \
+ __attribute__ ((__pass_dynamic_object_size__ (n)))
+# define __fortify_clang_pass_dynamic_object_size0 \
+ __fortify_clang_pass_dynamic_object_size_n (0)
+# define __fortify_clang_pass_dynamic_object_size \
+ __fortify_clang_pass_dynamic_object_size_n (1)
+# else
+# define __fortify_clang_pass_dynamic_object_size_n(n)
+# define __fortify_clang_pass_dynamic_object_size0
+# define __fortify_clang_pass_dynamic_object_size
+# endif
+
+# define __fortify_clang_bos_static_lt_impl(bos_val, n, s) \
+ ((bos_val) != -1ULL && (n) > (bos_val) / (s))
+# define __fortify_clang_bos_static_lt2(__n, __e, __s) \
+ __fortify_clang_bos_static_lt_impl (__bos (__e), __n, __s)
+# define __fortify_clang_bos_static_lt(__n, __e) \
+ __fortify_clang_bos_static_lt2 (__n, __e, 1)
+# define __fortify_clang_bos0_static_lt2(__n, __e, __s) \
+ __fortify_clang_bos_static_lt_impl (__bos0 (__e), __n, __s)
+# define __fortify_clang_bos0_static_lt(__n, __e) \
+ __fortify_clang_bos0_static_lt2 (__n, __e, 1)
+
+# define __fortify_clang_bosn_args(bos_fn, n, buf, div, complaint) \
+ (__fortify_clang_bos_static_lt_impl (bos_fn (buf), n, div)), (complaint), \
+ "warning"
+
+# define __fortify_clang_warning(__c, __msg) \
+ __attribute__ ((__diagnose_if__ ((__c), (__msg), "warning")))
+# define __fortify_clang_error(__c, __msg) \
+ __attribute__ ((__diagnose_if__ ((__c), (__msg), "error")))
+# define __fortify_clang_warning_only_if_bos0_lt(n, buf, complaint) \
+ __attribute__ ((__diagnose_if__ \
+ (__fortify_clang_bosn_args (__bos0, n, buf, 1, complaint))))
+# define __fortify_clang_warning_only_if_bos0_lt2(n, buf, div, complaint) \
+ __attribute__ ((__diagnose_if__ \
+ (__fortify_clang_bosn_args (__bos0, n, buf, div, complaint))))
+# define __fortify_clang_warning_only_if_bos_lt(n, buf, complaint) \
+ __attribute__ ((__diagnose_if__ \
+ (__fortify_clang_bosn_args (__bos, n, buf, 1, complaint))))
+# define __fortify_clang_warning_only_if_bos_lt2(n, buf, div, complaint) \
+ __attribute__ ((__diagnose_if__ \
+ (__fortify_clang_bosn_args (__bos, n, buf, div, complaint))))
+
+# define __fortify_clang_prefer_this_overload \
+ __attribute__ ((enable_if (1, "")))
+# define __fortify_clang_unavailable(__msg) \
+ __attribute__ ((unavailable(__msg)))
+
+# if __USE_FORTIFY_LEVEL == 3
+# define __fortify_clang_overload_arg(__type, __attr, __name) \
+ __type __attr const __fortify_clang_pass_dynamic_object_size __name
+# define __fortify_clang_overload_arg0(__type, __attr, __name) \
+ __type __attr const __fortify_clang_pass_dynamic_object_size0 __name
+# else
+# define __fortify_clang_overload_arg(__type, __attr, __name) \
+ __type __attr const __fortify_clang_pass_object_size __name
+# define __fortify_clang_overload_arg0(__type, __attr, __name) \
+ __type __attr const __fortify_clang_pass_object_size0 __name
+# endif
+
+# define __fortify_clang_mul_may_overflow(size, n) \
+ ((size | n) >= (((size_t)1) << (8 * sizeof (size_t) / 2)))
+
+# define __fortify_clang_size_too_small(__bos, __dest, __len) \
+ (__bos (__dest) != (size_t) -1 && __bos (__dest) < __len)
+# define __fortify_clang_warn_if_src_too_large(__dest, __src) \
+ __fortify_clang_warning (__fortify_clang_size_too_small (__glibc_objsize, \
+ __dest, \
+ __builtin_strlen (__src) + 1), \
+ "destination buffer will always be overflown by source")
+# define __fortify_clang_warn_if_dest_too_small(__dest, __len) \
+ __fortify_clang_warning (__fortify_clang_size_too_small (__glibc_objsize, \
+ __dest, \
+ __len), \
+ "function called with bigger length than the destination buffer")
+# define __fortify_clang_warn_if_dest_too_small0(__dest, __len) \
+ __fortify_clang_warning (__fortify_clang_size_too_small (__glibc_objsize0, \
+ __dest, \
+ __len), \
+ "function called with bigger length than the destination buffer")
+#else
+# define __fortify_use_clang 0
+# define __fortify_clang_warning(__c, __msg)
+# define __fortify_clang_warning_only_if_bos0_lt(__n, __buf, __complaint)
+# define __fortify_clang_warning_only_if_bos0_lt2(__n, __buf, __div, complaint)
+# define __fortify_clang_warning_only_if_bos_lt(__n, __buf, __complaint)
+# define __fortify_clang_warning_only_if_bos_lt2(__n, __buf, div, __complaint)
+# define __fortify_clang_overload_arg(__type, __attr, __name) \
+ __type __attr __name
+# define __fortify_clang_overload_arg0(__type, __attr, __name) \
+ __fortify_clang_overload_arg (__type, __attr, __name)
+# define __fortify_clang_warn_if_src_too_large(__dest, __src)
+# define __fortify_clang_warn_if_dest_too_small(__dest, __len)
+# define __fortify_clang_warn_if_dest_too_small0(__dest, __len)
+#endif
+
+
/* Fortify function f. __f_alias, __f_chk and __f_chk_warn must be
declared. */
+#if !__fortify_use_clang
# define __glibc_fortify(f, __l, __s, __osz, ...) \
(__glibc_safe_or_unknown_len (__l, __s, __osz) \
? __ ## f ## _alias (__VA_ARGS__) \
: (__glibc_unsafe_len (__l, __s, __osz) \
? __ ## f ## _chk_warn (__VA_ARGS__, __osz) \
- : __ ## f ## _chk (__VA_ARGS__, __osz))) \
+ : __ ## f ## _chk (__VA_ARGS__, __osz)))
+#else
+# define __glibc_fortify(f, __l, __s, __osz, ...) \
+ (__osz == (__SIZE_TYPE__) -1) \
+ ? __ ## f ## _alias (__VA_ARGS__) \
+ : __ ## f ## _chk (__VA_ARGS__, __osz)
+#endif
/* Fortify function f, where object size argument passed to f is the number of
elements and not total size. */
+#if !__fortify_use_clang
# define __glibc_fortify_n(f, __l, __s, __osz, ...) \
(__glibc_safe_or_unknown_len (__l, __s, __osz) \
? __ ## f ## _alias (__VA_ARGS__) \
: (__glibc_unsafe_len (__l, __s, __osz) \
? __ ## f ## _chk_warn (__VA_ARGS__, (__osz) / (__s)) \
- : __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s)))) \
-
+ : __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s))))
+# else
+# define __glibc_fortify_n(f, __l, __s, __osz, ...) \
+ (__osz == (__SIZE_TYPE__) -1) \
+ ? __ ## f ## _alias (__VA_ARGS__) \
+ : __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s))
#endif
+#endif /* __USE_FORTIFY_LEVEL > 0 */
+#endif /* !__GNULIB_CDEFS */
#if __GNUC_PREREQ (4,3)
# define __warnattr(msg) __attribute__((__warning__ (msg)))
@@ -269,6 +423,14 @@
# define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname)
# define __ASMNAME2(prefix, cname) __STRING (prefix) cname
+#ifndef __REDIRECT_FORTIFY
+#define __REDIRECT_FORTIFY __REDIRECT
+#endif
+
+#ifndef __REDIRECT_FORTIFY_NTH
+#define __REDIRECT_FORTIFY_NTH __REDIRECT_NTH
+#endif
+
/*
#elif __SOME_OTHER_COMPILER__
@@ -277,10 +439,10 @@
*/
#endif
-/* GCC and clang have various useful declarations that can be made with
- the '__attribute__' syntax. All of the ways we use this do fine if
- they are omitted for compilers that don't understand it. */
-#if !(defined __GNUC__ || defined __clang__)
+/* GCC, clang, and compatible compilers have various useful declarations
+ that can be made with the '__attribute__' syntax. All of the ways we use
+ this do fine if they are omitted for compilers that don't understand it. */
+#if !(defined __GNUC__ || defined __clang__ || defined __TINYC__)
# define __attribute__(xyz) /* Ignore */
#endif
@@ -445,14 +607,14 @@
# define __attribute_artificial__ /* Ignore */
#endif
-/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
- inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
- or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
+/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 inline
+ semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ or
+ __GNUC_GNU_INLINE__ is not a good enough check for gcc because gcc versions
older than 4.3 may define these macros and still not guarantee GNU inlining
semantics.
clang++ identifies itself as gcc-4.2, but has support for GNU inlining
- semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
+ semantics, that can be checked for by using the __GNUC_STDC_INLINE__ and
__GNUC_GNU_INLINE__ macro definitions. */
#if (!defined __cplusplus || __GNUC_PREREQ (4,3) \
|| (defined __clang__ && (defined __GNUC_STDC_INLINE__ \
@@ -577,6 +739,8 @@
# define __LDBL_REDIR(name, proto) ... unused__ldbl_redir
# define __LDBL_REDIR_DECL(name) \
extern __typeof (name) name __asm (__ASMNAME ("__" #name "ieee128"));
+# define __REDIRECT_LDBL(name, proto, alias) \
+ name proto __asm (__ASMNAME ("__" #alias "ieee128"))
/* Alias name defined automatically, with leading underscores. */
# define __LDBL_REDIR2_DECL(name) \
@@ -594,7 +758,6 @@
__LDBL_REDIR1_NTH (name, proto, __##alias##ieee128)
/* Unused. */
-# define __REDIRECT_LDBL(name, proto, alias) ... unused__redirect_ldbl
# define __LDBL_REDIR_NTH(name, proto) ... unused__ldbl_redir_nth
# else
@@ -666,6 +829,18 @@ _Static_assert (0, "IEEE 128-bits long double requires redirection on this platf
# define __HAVE_GENERIC_SELECTION 0
#endif
+#if __HAVE_GENERIC_SELECTION
+/* If PTR is a pointer to const, return CALL cast to type CTYPE,
+ otherwise return CALL. Pointers to types with non-const qualifiers
+ are not valid. This should not be defined for C++, as macros are
+ not an appropriate way of implementing such qualifier-generic
+ operations for C++. */
+# define __glibc_const_generic(PTR, CTYPE, CALL) \
+ _Generic (0 ? (PTR) : (void *) 1, \
+ const void *: (CTYPE) (CALL), \
+ default: CALL)
+#endif
+
#if __GNUC_PREREQ (10, 0)
/* Designates a 1-based positional argument ref-index of pointer type
that can be used to access size-index elements of the pointed-to
@@ -675,10 +850,10 @@ _Static_assert (0, "IEEE 128-bits long double requires redirection on this platf
# define __attr_access(x) __attribute__ ((__access__ x))
/* For _FORTIFY_SOURCE == 3 we use __builtin_dynamic_object_size, which may
use the access attribute to get object sizes from function definition
- arguments, so we can't use them on functions we fortify. Drop the object
- size hints for such functions. */
+ arguments, so we can't use them on functions we fortify. Drop the access
+ attribute for such functions. */
# if __USE_FORTIFY_LEVEL == 3
-# define __fortified_attr_access(a, o, s) __attribute__ ((__access__ (a, o)))
+# define __fortified_attr_access(a, o, s)
# else
# define __fortified_attr_access(a, o, s) __attr_access ((a, o, s))
# endif
@@ -712,4 +887,13 @@ _Static_assert (0, "IEEE 128-bits long double requires redirection on this platf
# define __attribute_returns_twice__ /* Ignore. */
#endif
+/* Mark struct types as aliasable. Restricted to compilers that
+ support forward declarations of structs in the presence of the
+ attribute. */
+#if __GNUC_PREREQ (7, 1) || defined __clang__
+# define __attribute_struct_may_alias__ __attribute__ ((__may_alias__))
+#else
+# define __attribute_struct_may_alias__
+#endif
+
#endif /* sys/cdefs.h */
diff --git a/tests/cloexec.c b/tests/cloexec.c
index 8ab5591f..3d4f916b 100644
--- a/tests/cloexec.c
+++ b/tests/cloexec.c
@@ -1,6 +1,6 @@
/* cloexec.c - set or clear the close-on-exec descriptor flag
- Copyright (C) 1991, 2004-2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1991, 2004-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/tests/cloexec.h b/tests/cloexec.h
index 0eb9fa09..3716bd72 100644
--- a/tests/cloexec.h
+++ b/tests/cloexec.h
@@ -1,6 +1,6 @@
/* cloexec.c - set or clear the close-on-exec descriptor flag
- Copyright (C) 2004, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 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/tests/close.c b/tests/close.c
index 3bcfc479..86ccdf9a 100644
--- a/tests/close.c
+++ b/tests/close.c
@@ -1,5 +1,5 @@
/* close replacement.
- 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/tests/concat-filename.c b/tests/concat-filename.c
index 3524f4e4..7fb15aee 100644
--- a/tests/concat-filename.c
+++ b/tests/concat-filename.c
@@ -1,5 +1,5 @@
/* Construct a full filename from a directory and a relative filename.
- Copyright (C) 2001-2004, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/tests/concat-filename.h b/tests/concat-filename.h
index 358238b5..1c961451 100644
--- a/tests/concat-filename.h
+++ b/tests/concat-filename.h
@@ -1,5 +1,5 @@
/* Construct a full filename from a directory and a relative filename.
- Copyright (C) 2001-2004, 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2004, 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/tests/connect.c b/tests/connect.c
index 6bdf8f86..101047b6 100644
--- a/tests/connect.c
+++ b/tests/connect.c
@@ -1,6 +1,6 @@
/* connect.c --- wrappers for Windows connect function
- 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/tests/ctype.in.h b/tests/ctype.in.h
index f0e62395..e57c2705 100644
--- a/tests/ctype.in.h
+++ b/tests/ctype.in.h
@@ -1,6 +1,6 @@
/* A substitute for ISO C99 <ctype.h>, for platforms on which it is incomplete.
- 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,7 +80,6 @@ _GL_CXXALIAS_SYS (isalnum_l, int, (int c, locale_t locale));
_GL_CXXALIASWARN (isalnum_l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef isalnum_l
# if HAVE_RAW_DECL_ISALNUM_L
_GL_WARN_ON_USE (isalnum_l, "isalnum_l is unportable - "
"use gnulib module isalnum_l for portability");
@@ -98,7 +97,6 @@ _GL_CXXALIAS_SYS (isalpha_l, int, (int c, locale_t locale));
_GL_CXXALIASWARN (isalpha_l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef isalpha_l
# if HAVE_RAW_DECL_ISALPHA_L
_GL_WARN_ON_USE (isalpha_l, "isalpha_l is unportable - "
"use gnulib module isalpha_l for portability");
@@ -111,7 +109,6 @@ _GL_WARN_ON_USE (isalpha_l, "isalpha_l is unportable - "
_GL_EXTERN_C int isblank (int c);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef isblank
# if HAVE_RAW_DECL_ISBLANK
_GL_WARN_ON_USE (isblank, "isblank is unportable - "
"use gnulib module isblank for portability");
@@ -129,7 +126,6 @@ _GL_CXXALIAS_SYS (isblank_l, int, (int c, locale_t locale));
_GL_CXXALIASWARN (isblank_l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef isblank_l
# if HAVE_RAW_DECL_ISBLANK_L
_GL_WARN_ON_USE (isblank_l, "isblank_l is unportable - "
"use gnulib module isblank_l for portability");
@@ -147,7 +143,6 @@ _GL_CXXALIAS_SYS (iscntrl_l, int, (int c, locale_t locale));
_GL_CXXALIASWARN (iscntrl_l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef iscntrl_l
# if HAVE_RAW_DECL_ISCNTRL_L
_GL_WARN_ON_USE (iscntrl_l, "iscntrl_l is unportable - "
"use gnulib module iscntrl_l for portability");
@@ -165,7 +160,6 @@ _GL_CXXALIAS_SYS (isdigit_l, int, (int c, locale_t locale));
_GL_CXXALIASWARN (isdigit_l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef isdigit_l
# if HAVE_RAW_DECL_ISDIGIT_L
_GL_WARN_ON_USE (isdigit_l, "isdigit_l is unportable - "
"use gnulib module isdigit_l for portability");
@@ -183,7 +177,6 @@ _GL_CXXALIAS_SYS (isgraph_l, int, (int c, locale_t locale));
_GL_CXXALIASWARN (isgraph_l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef isgraph_l
# if HAVE_RAW_DECL_ISGRAPH_L
_GL_WARN_ON_USE (isgraph_l, "isgraph_l is unportable - "
"use gnulib module isgraph_l for portability");
@@ -201,7 +194,6 @@ _GL_CXXALIAS_SYS (islower_l, int, (int c, locale_t locale));
_GL_CXXALIASWARN (islower_l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef islower_l
# if HAVE_RAW_DECL_ISLOWER_L
_GL_WARN_ON_USE (islower_l, "islower_l is unportable - "
"use gnulib module islower_l for portability");
@@ -219,7 +211,6 @@ _GL_CXXALIAS_SYS (isprint_l, int, (int c, locale_t locale));
_GL_CXXALIASWARN (isprint_l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef isprint_l
# if HAVE_RAW_DECL_ISPRINT_L
_GL_WARN_ON_USE (isprint_l, "isprint_l is unportable - "
"use gnulib module isprint_l for portability");
@@ -237,7 +228,6 @@ _GL_CXXALIAS_SYS (ispunct_l, int, (int c, locale_t locale));
_GL_CXXALIASWARN (ispunct_l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef ispunct_l
# if HAVE_RAW_DECL_ISPUNCT_L
_GL_WARN_ON_USE (ispunct_l, "ispunct_l is unportable - "
"use gnulib module ispunct_l for portability");
@@ -255,7 +245,6 @@ _GL_CXXALIAS_SYS (isspace_l, int, (int c, locale_t locale));
_GL_CXXALIASWARN (isspace_l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef isspace_l
# if HAVE_RAW_DECL_ISSPACE_L
_GL_WARN_ON_USE (isspace_l, "isspace_l is unportable - "
"use gnulib module isspace_l for portability");
@@ -273,7 +262,6 @@ _GL_CXXALIAS_SYS (isupper_l, int, (int c, locale_t locale));
_GL_CXXALIASWARN (isupper_l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef isupper_l
# if HAVE_RAW_DECL_ISUPPER_L
_GL_WARN_ON_USE (isupper_l, "isupper_l is unportable - "
"use gnulib module isupper_l for portability");
@@ -291,7 +279,6 @@ _GL_CXXALIAS_SYS (isxdigit_l, int, (int c, locale_t locale));
_GL_CXXALIASWARN (isxdigit_l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef isxdigit_l
# if HAVE_RAW_DECL_ISXDIGIT_L
_GL_WARN_ON_USE (isxdigit_l, "isxdigit_l is unportable - "
"use gnulib module isxdigit_l for portability");
@@ -309,7 +296,6 @@ _GL_CXXALIAS_SYS (tolower_l, int, (int c, locale_t locale));
_GL_CXXALIASWARN (tolower_l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef tolower_l
# if HAVE_RAW_DECL_TOLOWER_L
_GL_WARN_ON_USE (tolower_l, "tolower_l is unportable - "
"use gnulib module tolower_l for portability");
@@ -327,7 +313,6 @@ _GL_CXXALIAS_SYS (toupper_l, int, (int c, locale_t locale));
_GL_CXXALIASWARN (toupper_l);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef toupper_l
# if HAVE_RAW_DECL_TOUPPER_L
_GL_WARN_ON_USE (toupper_l, "toupper_l is unportable - "
"use gnulib module toupper_l for portability");
diff --git a/tests/dup2.c b/tests/dup2.c
index 69b37196..b9a55263 100644
--- a/tests/dup2.c
+++ b/tests/dup2.c
@@ -1,6 +1,6 @@
/* Duplicate an open file descriptor to a specified file descriptor.
- Copyright (C) 1999, 2004-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2004-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
@@ -70,8 +70,6 @@ dup2_nothrow (int fd, int desired_fd)
static int
ms_windows_dup2 (int fd, int desired_fd)
{
- int result;
-
/* If fd is closed, mingw hangs on dup2 (fd, fd). If fd is open,
dup2 (fd, fd) returns 0, but all further attempts to use fd in
future dup2 calls will hang. */
@@ -93,7 +91,7 @@ ms_windows_dup2 (int fd, int desired_fd)
return -1;
}
- result = dup2_nothrow (fd, desired_fd);
+ int result = dup2_nothrow (fd, desired_fd);
if (result == 0)
result = desired_fd;
@@ -110,14 +108,11 @@ ms_windows_dup2 (int fd, int desired_fd)
static int
klibc_dup2dirfd (int fd, int desired_fd)
{
- int tempfd;
- int dupfd;
-
- tempfd = open ("NUL", O_RDONLY);
- if (tempfd == -1)
- return -1;
+ int tempfd = open ("NUL", O_RDONLY);
+ if (tempfd < 0)
+ return tempfd;
- if (tempfd == desired_fd)
+ if (tempfd >= desired_fd)
{
close (tempfd);
@@ -125,10 +120,32 @@ klibc_dup2dirfd (int fd, int desired_fd)
if (__libc_Back_ioFHToPath (fd, path, sizeof (path)))
return -1;
- return open(path, O_RDONLY);
+ for (;;)
+ {
+ close (desired_fd);
+
+ int dupfd = open (path, O_RDONLY);
+ if (dupfd < 0)
+ return dupfd;
+
+ if (dupfd == desired_fd)
+ return dupfd;
+
+ /* If lower FD was closed by other threads, fill again. */
+ if (dupfd < desired_fd)
+ {
+ tempfd = dupfd;
+ break;
+ }
+
+ /* desired_fd was opened by other threads. Try again. */
+ /* FIXME: Closing desired_fd opened by other threads may lead to
+ unexpected behavior. */
+ close (dupfd);
+ }
}
- dupfd = klibc_dup2dirfd (fd, desired_fd);
+ int dupfd = klibc_dup2dirfd (fd, desired_fd);
close (tempfd);
@@ -138,16 +155,16 @@ klibc_dup2dirfd (int fd, int desired_fd)
static int
klibc_dup2 (int fd, int desired_fd)
{
- int dupfd;
- struct stat sbuf;
-
- dupfd = dup2 (fd, desired_fd);
- if (dupfd == -1 && errno == ENOTSUP \
- && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode))
+ int dupfd = dup2 (fd, desired_fd);
+ if (dupfd < 0 && errno == ENOTSUP)
{
- close (desired_fd);
+ struct stat sbuf;
+ if (!fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode))
+ {
+ close (desired_fd);
- return klibc_dup2dirfd (fd, desired_fd);
+ return klibc_dup2dirfd (fd, desired_fd);
+ }
}
return dupfd;
@@ -159,8 +176,6 @@ klibc_dup2 (int fd, int desired_fd)
int
rpl_dup2 (int fd, int desired_fd)
{
- int result;
-
#ifdef F_GETFL
/* On Linux kernels 2.6.26-2.6.29, dup2 (fd, fd) returns -EBADF.
On Cygwin 1.5.x, dup2 (1, 1) returns 0.
@@ -176,13 +191,14 @@ rpl_dup2 (int fd, int desired_fd)
return fcntl (fd, F_GETFL) == -1 ? -1 : fd;
#endif
- result = dup2 (fd, desired_fd);
+ int result = dup2 (fd, desired_fd);
/* Correct an errno value on FreeBSD 6.1 and Cygwin 1.5.x. */
- if (result == -1 && errno == EMFILE)
+ if (result < 0 && errno == EMFILE)
errno = EBADF;
+
#if REPLACE_FCHDIR
- if (fd != desired_fd && result != -1)
+ if (! (result < 0 || fd == desired_fd))
result = _gl_register_dup (fd, result);
#endif
return result;
diff --git a/tests/error.c b/tests/error.c
index ab4c38f3..e066241b 100644
--- a/tests/error.c
+++ b/tests/error.c
@@ -1,5 +1,5 @@
/* Error handler for noninteractive utilities
- Copyright (C) 1990-2025 Free Software Foundation, Inc.
+ Copyright (C) 1990-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/tests/error.in.h b/tests/error.in.h
index 6c512ec8..3355fb3b 100644
--- a/tests/error.in.h
+++ b/tests/error.in.h
@@ -1,5 +1,5 @@
/* Declarations for error-reporting functions.
- Copyright (C) 1995-1997, 2003, 2006, 2008-2025 Free Software Foundation,
+ Copyright (C) 1995-1997, 2003, 2006, 2008-2026 Free Software Foundation,
Inc.
This file is part of the GNU C Library.
diff --git a/tests/exitfail.c b/tests/exitfail.c
index 5b37c10b..148468b7 100644
--- a/tests/exitfail.c
+++ b/tests/exitfail.c
@@ -1,6 +1,6 @@
/* Failure exit status
- Copyright (C) 2002-2003, 2005-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002-2003, 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/tests/exitfail.h b/tests/exitfail.h
index 9d6b1528..64e2aa33 100644
--- a/tests/exitfail.h
+++ b/tests/exitfail.h
@@ -1,6 +1,6 @@
/* Failure exit status
- 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/tests/fcntl.c b/tests/fcntl.c
index f47ebde1..1c0e52d2 100644
--- a/tests/fcntl.c
+++ b/tests/fcntl.c
@@ -1,6 +1,6 @@
/* Provide file descriptor control.
- 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
@@ -29,8 +29,8 @@
#include <unistd.h>
#ifdef __KLIBC__
-# define INCL_DOS
-# include <os2.h>
+# include <emx/io.h>
+# include <InnoTekLIBC/backend.h>
#endif
#if defined _WIN32 && ! defined __CYGWIN__
@@ -56,19 +56,15 @@ dupfd (int oldfd, int newfd, int flags)
{
/* Mingw has no way to create an arbitrary fd. Iterate until all
file descriptors less than newfd are filled up. */
- HANDLE curr_process = GetCurrentProcess ();
- HANDLE old_handle = (HANDLE) _get_osfhandle (oldfd);
- unsigned char fds_to_close[OPEN_MAX_MAX / CHAR_BIT];
- unsigned int fds_to_close_bound = 0;
- int result;
- BOOL inherit = flags & O_CLOEXEC ? FALSE : TRUE;
- int mode;
if (newfd < 0 || getdtablesize () <= newfd)
{
errno = EINVAL;
return -1;
}
+
+ HANDLE old_handle = (HANDLE) _get_osfhandle (oldfd);
+ int mode;
if (old_handle == INVALID_HANDLE_VALUE
|| (mode = _setmode (oldfd, O_BINARY)) == -1)
{
@@ -80,6 +76,11 @@ dupfd (int oldfd, int newfd, int flags)
_setmode (oldfd, mode);
flags |= mode;
+ HANDLE curr_process = GetCurrentProcess ();
+ BOOL inherit = flags & O_CLOEXEC ? FALSE : TRUE;
+ unsigned char fds_to_close[OPEN_MAX_MAX / CHAR_BIT];
+ unsigned int fds_to_close_bound = 0;
+ int result;
for (;;)
{
HANDLE new_handle;
@@ -146,9 +147,8 @@ dupfd (int oldfd, int newfd, int flags)
/* Close the previous fds that turned out to be too small. */
{
int saved_errno = errno;
- unsigned int duplicated_fd;
- for (duplicated_fd = 0;
+ for (unsigned int duplicated_fd = 0;
duplicated_fd < fds_to_close_bound * CHAR_BIT;
duplicated_fd++)
if ((fds_to_close[duplicated_fd / CHAR_BIT]
@@ -206,8 +206,9 @@ fcntl (int fd, int action, /* arg */...)
#endif
{
va_list arg;
- int result = -1;
va_start (arg, action);
+
+ int result = -1;
switch (action)
{
case F_DUPFD:
@@ -433,7 +434,9 @@ fcntl (int fd, int action, /* arg */...)
break;
}
}
+
va_end (arg);
+
return result;
}
@@ -540,78 +543,115 @@ rpl_fcntl_DUPFD_CLOEXEC (int fd, int target)
#undef fcntl
#ifdef __KLIBC__
-
static int
-klibc_fcntl (int fd, int action, /* arg */...)
+klibc_dupdirfd (int fd, int minfd)
{
- va_list arg_ptr;
- int arg;
- struct stat sbuf;
- int result;
+ int tempfd = open ("NUL", O_RDONLY);
+ if (tempfd == -1)
+ return -1;
- va_start (arg_ptr, action);
- arg = va_arg (arg_ptr, int);
- result = fcntl (fd, action, arg);
- /* EPERM for F_DUPFD, ENOTSUP for others */
- if (result == -1 && (errno == EPERM || errno == ENOTSUP)
- && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode))
+ if (tempfd >= minfd)
{
- ULONG ulMode;
+ close (tempfd);
- switch (action)
- {
- case F_DUPFD:
- /* Find available fd */
- while (fcntl (arg, F_GETFL) != -1 || errno != EBADF)
- arg++;
+ char path[_MAX_PATH];
+ if (__libc_Back_ioFHToPath (fd, path, sizeof (path)))
+ return -1;
- result = dup2 (fd, arg);
- break;
+ int dupfd = open (path, O_RDONLY);
+ if (dupfd == -1)
+ return -1;
- /* Using underlying APIs is right ? */
- case F_GETFD:
- if (DosQueryFHState (fd, &ulMode))
- break;
+ if (dupfd >= minfd)
+ return dupfd;
- result = (ulMode & OPEN_FLAGS_NOINHERIT) ? FD_CLOEXEC : 0;
- break;
-
- case F_SETFD:
- if (arg & ~FD_CLOEXEC)
- break;
-
- if (DosQueryFHState (fd, &ulMode))
- break;
-
- if (arg & FD_CLOEXEC)
- ulMode |= OPEN_FLAGS_NOINHERIT;
- else
- ulMode &= ~OPEN_FLAGS_NOINHERIT;
+ /* Lower FD was closed by other threads. Fill again. */
+ tempfd = dupfd;
+ }
- /* Filter supported flags. */
- ulMode &= (OPEN_FLAGS_WRITE_THROUGH | OPEN_FLAGS_FAIL_ON_ERROR
- | OPEN_FLAGS_NO_CACHE | OPEN_FLAGS_NOINHERIT);
+ int dupfd = klibc_dupdirfd (fd, minfd);
- if (DosSetFHState (fd, ulMode))
- break;
+ close (tempfd);
- result = 0;
- break;
+ return dupfd;
+}
- case F_GETFL:
- result = 0;
- break;
+static int
+klibc_fcntl (int fd, int action, /* arg */...)
+{
+ va_list arg_ptr;
+ va_start (arg_ptr, action);
- case F_SETFL:
- if (arg != 0)
- break;
+ int arg = va_arg (arg_ptr, int);
+ int result = fcntl (fd, action, arg);
+ /* EPERM for F_DUPFD, ENOTSUP for others */
+ if (result == -1 && (errno == EPERM || errno == ENOTSUP))
+ {
+ struct stat sbuf;
+ if (!fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode))
+ {
+ switch (action)
+ {
+ case F_DUPFD:
+ result = klibc_dupdirfd (fd, arg);
+ break;
+
+ case F_GETFD:
+ {
+ PLIBCFH pFH = __libc_FH (fd);
+ if (!pFH)
+ {
+ errno = EBADF;
+ break;
+ }
+
+ result = (pFH->fFlags & ((FD_CLOEXEC << __LIBC_FH_FDFLAGS_SHIFT )
+ | O_NOINHERIT)) ? FD_CLOEXEC : 0;
+ }
+ break;
+
+ case F_SETFD:
+ {
+ if (arg & ~FD_CLOEXEC)
+ break;
+
+ PLIBCFH pFH = __libc_FH (fd);
+ if (!pFH)
+ {
+ errno = EBADF;
+ break;
+ }
+
+ unsigned fFlags = pFH->fFlags;
+ if (arg & FD_CLOEXEC)
+ fFlags |= (FD_CLOEXEC << __LIBC_FH_FDFLAGS_SHIFT) | O_NOINHERIT;
+ else
+ fFlags &= ~((FD_CLOEXEC << __LIBC_FH_FDFLAGS_SHIFT) | O_NOINHERIT);
+
+ result = __libc_FHSetFlags (pFH, fd, fFlags);
+ if (result < 0)
+ {
+ errno = -result;
+ result = -1;
+ }
+ }
+ break;
+
+ case F_GETFL:
+ result = 0;
+ break;
+
+ case F_SETFL:
+ if (arg != 0)
+ break;
- result = 0;
- break;
+ result = 0;
+ break;
- default:
- errno = EINVAL;
- break;
+ default:
+ errno = EINVAL;
+ break;
+ }
}
}
diff --git a/tests/fd-hook.c b/tests/fd-hook.c
index 4a5014eb..eef4e81e 100644
--- a/tests/fd-hook.c
+++ b/tests/fd-hook.c
@@ -1,5 +1,5 @@
/* Hook for making file descriptor functions close(), ioctl() extensible.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/tests/fd-hook.h b/tests/fd-hook.h
index a960eaf3..0f029d42 100644
--- a/tests/fd-hook.h
+++ b/tests/fd-hook.h
@@ -1,5 +1,5 @@
/* Hook for making file descriptor functions close(), ioctl() extensible.
- 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/tests/fdopen.c b/tests/fdopen.c
index 5476532a..29da9857 100644
--- a/tests/fdopen.c
+++ b/tests/fdopen.c
@@ -1,5 +1,5 @@
/* Open a stream with a given file descriptor.
- 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
@@ -57,10 +57,9 @@ FILE *
rpl_fdopen (int fd, const char *mode)
{
int saved_errno = errno;
- FILE *fp;
errno = 0;
- fp = fdopen_nothrow (fd, mode);
+ FILE *fp = fdopen_nothrow (fd, mode);
if (fp == NULL)
{
if (errno == 0)
diff --git a/tests/filename.h b/tests/filename.h
index e353363e..e37a373e 100644
--- a/tests/filename.h
+++ b/tests/filename.h
@@ -1,5 +1,5 @@
/* Basic filename support macros.
- Copyright (C) 2001-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-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
@@ -49,7 +49,10 @@ extern "C" {
any notion of "current directory".
IS_RELATIVE_FILE_NAME(Filename)
tests whether Filename may be concatenated
- to a directory filename.
+ to a directory filename to yield the name
+ of a file relative to that directory.
+ Watch out: IS_RELATIVE_FILE_NAME ("") is 1
+ even though "" is not a relative file name.
Note: On native Windows, OS/2, DOS, "c:" is neither an absolute nor a
relative file name!
IS_FILE_NAME_WITH_DIR(Filename) tests whether Filename contains a device
diff --git a/tests/fstat.c b/tests/fstat.c
index e219cf99..292ce75f 100644
--- a/tests/fstat.c
+++ b/tests/fstat.c
@@ -1,5 +1,5 @@
/* fstat() replacement.
- 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/tests/ftruncate.c b/tests/ftruncate.c
index ca19f21e..8e8bad8d 100644
--- a/tests/ftruncate.c
+++ b/tests/ftruncate.c
@@ -1,5 +1,5 @@
/* ftruncate emulations for native Windows.
- Copyright (C) 1992-2025 Free Software Foundation, Inc.
+ Copyright (C) 1992-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
@@ -96,14 +96,13 @@ SetFileSize (HANDLE h, LONGLONG size)
static char zero_bytes[1024];
LONG pos_hi = 0;
LONG pos_lo = SetFilePointer (tmph, (LONG) 0, &pos_hi, FILE_END);
- LONGLONG pos;
if (pos_lo == INVALID_SET_FILE_POINTER
&& GetLastError() != NO_ERROR)
{
CloseHandle (tmph);
return FALSE;
}
- pos = ((LONGLONG) pos_hi << 32) | (ULONGLONG) (ULONG) pos_lo;
+ LONGLONG pos = ((LONGLONG) pos_hi << 32) | (ULONGLONG) (ULONG) pos_lo;
while (pos < size)
{
DWORD written;
diff --git a/tests/getcwd-lgpl.c b/tests/getcwd-lgpl.c
index 155cf33f..dacafb91 100644
--- a/tests/getcwd-lgpl.c
+++ b/tests/getcwd-lgpl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2026 Free Software Foundation, Inc.
This file is part of gnulib.
This file is free software: you can redistribute it and/or modify
@@ -45,8 +45,6 @@ typedef int dummy;
char *
rpl_getcwd (char *buf, size_t size)
{
- char *result;
-
/* Handle single size operations. */
if (buf)
{
@@ -67,7 +65,7 @@ rpl_getcwd (char *buf, size_t size)
errno = ENOMEM;
return NULL;
}
- result = getcwd (buf, size);
+ char *result = getcwd (buf, size);
if (!result)
free (buf);
return result;
@@ -82,7 +80,7 @@ rpl_getcwd (char *buf, size_t size)
char *ptr = getcwd (tmp, size);
if (ptr)
{
- result = strdup (ptr);
+ char *result = strdup (ptr);
if (!result)
errno = ENOMEM;
return result;
@@ -92,6 +90,7 @@ rpl_getcwd (char *buf, size_t size)
}
/* My what a large directory name we have. */
+ char *result;
do
{
size <<= 1;
diff --git a/tests/getdtablesize.c b/tests/getdtablesize.c
index b98fbb70..cc823952 100644
--- a/tests/getdtablesize.c
+++ b/tests/getdtablesize.c
@@ -1,5 +1,5 @@
/* getdtablesize() function: Return maximum possible file descriptor value + 1.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This file is free software: you can redistribute it and/or modify
@@ -61,13 +61,10 @@ getdtablesize (void)
{
/* We are looking for the number N such that the valid file descriptors
are 0..N-1. It can be obtained through a loop as follows:
- {
- int fd;
- for (fd = 3; fd < 65536; fd++)
- if (dup2 (0, fd) == -1)
- break;
- return fd;
- }
+ for (int fd = 3; fd < 65536; fd++)
+ if (dup2 (0, fd) == -1)
+ break;
+ return fd;
On Windows XP, the result is 2048.
The drawback of this loop is that it allocates memory for a libc
internal array that is never freed.
diff --git a/tests/getprogname.c b/tests/getprogname.c
index 4da2159f..8eec96c5 100644
--- a/tests/getprogname.c
+++ b/tests/getprogname.c
@@ -1,5 +1,5 @@
/* Program name management.
- Copyright (C) 2016-2025 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
@@ -188,7 +188,6 @@ getprogname (void)
if (first)
{
pid_t pid = getpid ();
- int token;
W_PSPROC buf;
first = 0;
memset (&buf, 0, sizeof(buf));
@@ -197,7 +196,8 @@ getprogname (void)
buf.ps_pathptr = (char *) malloc (buf.ps_pathlen = PS_PATHBLEN);
if (buf.ps_cmdptr && buf.ps_conttyptr && buf.ps_pathptr)
{
- for (token = 0; token >= 0;
+ for (int token = 0;
+ token >= 0;
token = w_getpsent (token, &buf, sizeof(buf)))
{
if (token > 0 && buf.ps_pid == pid)
@@ -228,27 +228,20 @@ getprogname (void)
return p;
# elif defined __SCO_VERSION__ || defined __sysv5__ /* SCO OpenServer6/UnixWare */
char buf[80];
- int fd;
sprintf (buf, "/proc/%d/cmdline", getpid());
- fd = open (buf, O_RDONLY);
+ int fd = open (buf, O_RDONLY);
if (0 <= fd)
{
size_t n = read (fd, buf, 79);
if (n > 0)
{
buf[n] = '\0'; /* Guarantee null-termination */
- char *progname;
- progname = strrchr (buf, '/');
+ char *progname = strrchr (buf, '/');
if (progname)
- {
- progname = progname + 1; /* Skip the '/' */
- }
+ progname = progname + 1; /* Skip the '/' */
else
- {
- progname = buf;
- }
- char *ret;
- ret = malloc (strlen (progname) + 1);
+ progname = buf;
+ char *ret = malloc (strlen (progname) + 1);
if (ret)
{
strcpy (ret, progname);
diff --git a/tests/getprogname.h b/tests/getprogname.h
index ee9bb286..3b5e502e 100644
--- a/tests/getprogname.h
+++ b/tests/getprogname.h
@@ -1,5 +1,5 @@
/* Program name management.
- Copyright (C) 2016-2025 Free Software Foundation, Inc.
+ Copyright (C) 2016-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/tests/gettext.h b/tests/gettext.h
index 0650abc9..0291cf09 100644
--- a/tests/gettext.h
+++ b/tests/gettext.h
@@ -1,5 +1,5 @@
/* Convenience header for conditional use of GNU <libintl.h>.
- 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
@@ -298,12 +298,11 @@ dcpgettext_expr (const char *domain,
if (msg_ctxt_id != NULL)
#endif
{
- int found_translation;
memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
msg_ctxt_id[msgctxt_len - 1] = '\004';
memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
translation = dcgettext (domain, msg_ctxt_id, category);
- found_translation = (translation != msg_ctxt_id);
+ int found_translation = (translation != msg_ctxt_id);
#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
if (msg_ctxt_id != buf)
free (msg_ctxt_id);
@@ -346,12 +345,11 @@ dcnpgettext_expr (const char *domain,
if (msg_ctxt_id != NULL)
#endif
{
- int found_translation;
memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
msg_ctxt_id[msgctxt_len - 1] = '\004';
memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
- found_translation = !(translation == msg_ctxt_id || translation == msgid_plural);
+ int found_translation = !(translation == msg_ctxt_id || translation == msgid_plural);
#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
if (msg_ctxt_id != buf)
free (msg_ctxt_id);
diff --git a/tests/gettimeofday.c b/tests/gettimeofday.c
index 304e23b2..f236c427 100644
--- a/tests/gettimeofday.c
+++ b/tests/gettimeofday.c
@@ -1,6 +1,6 @@
/* Provide gettimeofday for systems that don't have it or for which it's broken.
- Copyright (C) 2001-2003, 2005-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2003, 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
@@ -92,12 +92,12 @@ gettimeofday (struct timeval *restrict tv, void *restrict tz)
microseconds.
More discussion on this topic:
<http://www.windowstimestamp.com/description>. */
- FILETIME current_time;
-
# if !(_WIN32_WINNT >= _WIN32_WINNT_WIN8)
if (!initialized)
initialize ();
# endif
+
+ FILETIME current_time;
if (GetSystemTimePreciseAsFileTimeFunc != NULL)
GetSystemTimePreciseAsFileTimeFunc (&current_time);
else
diff --git a/tests/glthread/thread.c b/tests/glthread/thread.c
index 2d015b6b..8182c7fd 100644
--- a/tests/glthread/thread.c
+++ b/tests/glthread/thread.c
@@ -1,5 +1,5 @@
/* Creating and controlling threads.
- 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
@@ -208,9 +208,7 @@ gl_thread_t
gl_thread_create (void *(*func) (void *arg), void *arg)
{
gl_thread_t thread;
- int ret;
-
- ret = glthread_create (&thread, func, arg);
+ int ret = glthread_create (&thread, func, arg);
if (ret != 0)
abort ();
return thread;
diff --git a/tests/glthread/thread.h b/tests/glthread/thread.h
index 9db5eef5..c8cb28a2 100644
--- a/tests/glthread/thread.h
+++ b/tests/glthread/thread.h
@@ -1,5 +1,5 @@
/* Creating and controlling threads.
- 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/tests/glthread/yield.h b/tests/glthread/yield.h
index 9b43b336..99515d31 100644
--- a/tests/glthread/yield.h
+++ b/tests/glthread/yield.h
@@ -1,5 +1,5 @@
/* Yielding the processor to other threads and processes.
- 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/tests/ialloc.c b/tests/ialloc.c
index 881c8f04..38ec1d05 100644
--- a/tests/ialloc.c
+++ b/tests/ialloc.c
@@ -1,6 +1,6 @@
/* malloc with idx_t rather than size_t
- Copyright 2021-2025 Free Software Foundation, Inc.
+ Copyright 2021-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -15,7 +15,6 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define IALLOC_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "ialloc.h"
diff --git a/tests/ialloc.h b/tests/ialloc.h
index 8bf5dd12..97b0e0c5 100644
--- a/tests/ialloc.h
+++ b/tests/ialloc.h
@@ -1,6 +1,6 @@
/* ialloc.h -- malloc with idx_t rather than size_t
- Copyright 2021-2025 Free Software Foundation, Inc.
+ Copyright 2021-2026 Free Software Foundation, Inc.
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/tests/iconvsupport.c b/tests/iconvsupport.c
index cc2e4657..9e0838be 100644
--- a/tests/iconvsupport.c
+++ b/tests/iconvsupport.c
@@ -1,5 +1,5 @@
/* Test iconv support.
- 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 General Public License as published by
diff --git a/tests/ignore-value.h b/tests/ignore-value.h
index 794fbd18..1738afa9 100644
--- a/tests/ignore-value.h
+++ b/tests/ignore-value.h
@@ -1,6 +1,6 @@
/* ignore a function return without a compiler warning. -*- coding: utf-8 -*-
- 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/tests/inet_pton.c b/tests/inet_pton.c
index 74d55c43..1e75c8c5 100644
--- a/tests/inet_pton.c
+++ b/tests/inet_pton.c
@@ -1,6 +1,6 @@
/* inet_pton.c -- convert IPv4 and IPv6 addresses from text to binary form
- Copyright (C) 2006, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 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
@@ -112,43 +112,44 @@ inet_pton (int af, const char *restrict src, void *restrict dst)
static int
inet_pton4 (const char *restrict src, unsigned char *restrict dst)
{
- int saw_digit, octets, ch;
- unsigned char tmp[NS_INADDRSZ], *tp;
+ unsigned char tmp[NS_INADDRSZ];
- saw_digit = 0;
- octets = 0;
- *(tp = tmp) = 0;
- while ((ch = *src++) != '\0')
- {
-
- if (ch >= '0' && ch <= '9')
- {
- unsigned new = *tp * 10 + (ch - '0');
-
- if (saw_digit && *tp == 0)
- return (0);
- if (new > 255)
- return (0);
- *tp = new;
- if (!saw_digit)
- {
- if (++octets > 4)
- return (0);
- saw_digit = 1;
- }
- }
- else if (ch == '.' && saw_digit)
- {
- if (octets == 4)
- return (0);
- *++tp = 0;
- saw_digit = 0;
- }
- else
- return (0);
- }
- if (octets < 4)
- return (0);
+ {
+ int saw_digit = 0;
+ int octets = 0;
+ unsigned char *tp = tmp;
+ *tp = 0;
+ int ch;
+ while ((ch = *src++) != '\0')
+ {
+ if (ch >= '0' && ch <= '9')
+ {
+ if (saw_digit && *tp == 0)
+ return (0);
+ unsigned new = *tp * 10 + (ch - '0');
+ if (new > 255)
+ return (0);
+ *tp = new;
+ if (!saw_digit)
+ {
+ if (++octets > 4)
+ return (0);
+ saw_digit = 1;
+ }
+ }
+ else if (ch == '.' && saw_digit)
+ {
+ if (octets == 4)
+ return (0);
+ *++tp = 0;
+ saw_digit = 0;
+ }
+ else
+ return (0);
+ }
+ if (octets < 4)
+ return (0);
+ }
memcpy (dst, tmp, NS_INADDRSZ);
return (1);
}
@@ -172,93 +173,89 @@ static int
inet_pton6 (const char *restrict src, unsigned char *restrict dst)
{
static const char xdigits[] = "0123456789abcdef";
- unsigned char tmp[NS_IN6ADDRSZ], *tp, *endp, *colonp;
- const char *curtok;
- int ch, saw_xdigit;
- unsigned val;
+ unsigned char tmp[NS_IN6ADDRSZ];
- tp = memset (tmp, '\0', NS_IN6ADDRSZ);
- endp = tp + NS_IN6ADDRSZ;
- colonp = NULL;
/* Leading :: requires some special handling. */
if (*src == ':')
if (*++src != ':')
return (0);
- curtok = src;
- saw_xdigit = 0;
- val = 0;
- while ((ch = c_tolower (*src++)) != '\0')
- {
- const char *pch;
- pch = strchr (xdigits, ch);
- if (pch != NULL)
- {
- val <<= 4;
- val |= (pch - xdigits);
- if (val > 0xffff)
- return (0);
- saw_xdigit = 1;
- continue;
- }
- if (ch == ':')
- {
- curtok = src;
- if (!saw_xdigit)
- {
- if (colonp)
- return (0);
- colonp = tp;
- continue;
- }
- else if (*src == '\0')
- {
+ {
+ unsigned char *tp = memset (tmp, '\0', NS_IN6ADDRSZ);
+ unsigned char *endp = tp + NS_IN6ADDRSZ;
+ unsigned char *colonp = NULL;
+ const char *curtok = src;
+ int saw_xdigit = 0;
+ unsigned int val = 0;
+ int ch;
+ while ((ch = c_tolower (*src++)) != '\0')
+ {
+ const char *pch = strchr (xdigits, ch);
+ if (pch != NULL)
+ {
+ val <<= 4;
+ val |= (pch - xdigits);
+ if (val > 0xffff)
return (0);
- }
- if (tp + NS_INT16SZ > endp)
- return (0);
- *tp++ = (unsigned char) (val >> 8) & 0xff;
- *tp++ = (unsigned char) val & 0xff;
- saw_xdigit = 0;
- val = 0;
- continue;
- }
- if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) &&
- inet_pton4 (curtok, tp) > 0)
- {
- tp += NS_INADDRSZ;
- saw_xdigit = 0;
- break; /* '\0' was seen by inet_pton4(). */
- }
+ saw_xdigit = 1;
+ }
+ else if (ch == ':')
+ {
+ curtok = src;
+ if (!saw_xdigit)
+ {
+ if (colonp)
+ return (0);
+ colonp = tp;
+ }
+ else if (*src == '\0')
+ return (0);
+ else if (tp + NS_INT16SZ > endp)
+ return (0);
+ else
+ {
+ *tp++ = (unsigned char) (val >> 8) & 0xff;
+ *tp++ = (unsigned char) val & 0xff;
+ saw_xdigit = 0;
+ val = 0;
+ }
+ }
+ else if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) &&
+ inet_pton4 (curtok, tp) > 0)
+ {
+ tp += NS_INADDRSZ;
+ saw_xdigit = 0;
+ break; /* '\0' was seen by inet_pton4(). */
+ }
+ else
+ return (0);
+ }
+ if (saw_xdigit)
+ {
+ if (tp + NS_INT16SZ > endp)
+ return (0);
+ *tp++ = (unsigned char) (val >> 8) & 0xff;
+ *tp++ = (unsigned char) val & 0xff;
+ }
+ if (colonp != NULL)
+ {
+ if (tp == endp)
+ return (0);
+ /*
+ * Since some memmove()'s erroneously fail to handle
+ * overlapping regions, we'll do the shift by hand.
+ */
+ const int n = tp - colonp;
+ for (int i = 1; i <= n; i++)
+ {
+ endp[-i] = colonp[n - i];
+ colonp[n - i] = 0;
+ }
+ tp = endp;
+ }
+ if (tp != endp)
return (0);
- }
- if (saw_xdigit)
- {
- if (tp + NS_INT16SZ > endp)
- return (0);
- *tp++ = (unsigned char) (val >> 8) & 0xff;
- *tp++ = (unsigned char) val & 0xff;
- }
- if (colonp != NULL)
- {
- /*
- * Since some memmove()'s erroneously fail to handle
- * overlapping regions, we'll do the shift by hand.
- */
- const int n = tp - colonp;
- int i;
-
- if (tp == endp)
- return (0);
- for (i = 1; i <= n; i++)
- {
- endp[-i] = colonp[n - i];
- colonp[n - i] = 0;
- }
- tp = endp;
- }
- if (tp != endp)
- return (0);
+ }
memcpy (dst, tmp, NS_IN6ADDRSZ);
return (1);
}
diff --git a/tests/infinity.h b/tests/infinity.h
index 37b5ab26..d60a7a57 100644
--- a/tests/infinity.h
+++ b/tests/infinity.h
@@ -1,5 +1,5 @@
/* Macros for infinity.
- 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 General Public License as published by
diff --git a/tests/init.sh b/tests/init.sh
index 21a43898..e2e4ce8d 100644
--- a/tests/init.sh
+++ b/tests/init.sh
@@ -1,6 +1,6 @@
# source this file; set up for tests
-# 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 General Public License as published by
diff --git a/tests/intprops-internal.h b/tests/intprops-internal.h
index 26098030..0df385b9 100644
--- a/tests/intprops-internal.h
+++ b/tests/intprops-internal.h
@@ -1,6 +1,6 @@
/* intprops-internal.h -- properties of integer types not visible to users
- Copyright (C) 2001-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2026 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
@@ -116,8 +116,8 @@
#endif
/* True if __builtin_mul_overflow (A, B, P) works when P is non-null. */
-#if defined __clang_major__ && __clang_major__ < 14
-/* Work around Clang bug <https://bugs.llvm.org/show_bug.cgi?id=16404>. */
+#if defined __clang_major__ && __clang_major__ < 21
+/* Work around Clang bug <https://github.com/llvm/llvm-project/issues/16778>. */
# define _GL_HAS_BUILTIN_MUL_OVERFLOW 0
#else
# define _GL_HAS_BUILTIN_MUL_OVERFLOW _GL_HAS_BUILTIN_ADD_OVERFLOW
@@ -179,9 +179,9 @@
_GL_INT_OP_WRAPV (a, b, r, *, _GL_INT_MULTIPLY_RANGE_OVERFLOW)
#endif
-/* Nonzero if this compiler has GCC bug 68193 or Clang bug 25390. See:
+/* Nonzero if this compiler has GCC bug 68193 or Clang bug 25764. See:
https://gcc.gnu.org/PR68193
- https://llvm.org/bugs/show_bug.cgi?id=25390
+ https://github.com/llvm/llvm-project/issues/25764
For now, assume GCC < 14 and all Clang versions generate bogus
warnings for _Generic. This matters only for compilers that
lack relevant builtins. */
diff --git a/tests/intprops.h b/tests/intprops.h
index 72e866ff..924b6f9a 100644
--- a/tests/intprops.h
+++ b/tests/intprops.h
@@ -1,6 +1,6 @@
/* intprops.h -- properties of integer types
- 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
diff --git a/tests/ioctl.c b/tests/ioctl.c
index a92df8b1..a807c8ae 100644
--- a/tests/ioctl.c
+++ b/tests/ioctl.c
@@ -1,6 +1,6 @@
/* ioctl.c --- wrappers for Windows ioctl function
- 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
@@ -30,11 +30,9 @@
int
rpl_ioctl (int fd, int request, ... /* {void *,char *} arg */)
{
- void *buf;
va_list args;
-
va_start (args, request);
- buf = va_arg (args, void *);
+ void *buf = va_arg (args, void *);
va_end (args);
/* Cast 'request' so that when the system's ioctl function takes a 64-bit
@@ -75,11 +73,9 @@ primary_ioctl (int fd, int request, void *arg)
int
ioctl (int fd, int request, ... /* {void *,char *} arg */)
{
- void *arg;
va_list args;
-
va_start (args, request);
- arg = va_arg (args, void *);
+ void *arg = va_arg (args, void *);
va_end (args);
# if WINDOWS_SOCKETS
diff --git a/tests/isblank.c b/tests/isblank.c
index a80a668c..449beeaf 100644
--- a/tests/isblank.c
+++ b/tests/isblank.c
@@ -1,6 +1,6 @@
/* Test whether a character is a blank.
- 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/tests/libc-config.h b/tests/libc-config.h
index 33da9cf1..e5102aa9 100644
--- a/tests/libc-config.h
+++ b/tests/libc-config.h
@@ -1,6 +1,6 @@
/* System definitions for code taken from the GNU C Library
- Copyright 2017-2025 Free Software Foundation, Inc.
+ Copyright 2017-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
diff --git a/tests/listen.c b/tests/listen.c
index d73ffcb9..91ac35eb 100644
--- a/tests/listen.c
+++ b/tests/listen.c
@@ -1,6 +1,6 @@
/* listen.c --- wrappers for Windows listen function
- 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/tests/locale.c b/tests/locale.c
index 084a36c2..34d4844d 100644
--- a/tests/locale.c
+++ b/tests/locale.c
@@ -1,5 +1,5 @@
/* Program that prints the names of the categories of the current locale.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-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
diff --git a/tests/lstat.c b/tests/lstat.c
index f5fda4af..2495568f 100644
--- a/tests/lstat.c
+++ b/tests/lstat.c
@@ -1,6 +1,6 @@
/* Work around a bug of lstat on some systems
- Copyright (C) 1997-2006, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 1997-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/tests/macros.h b/tests/macros.h
index e65d8ebd..9982239e 100644
--- a/tests/macros.h
+++ b/tests/macros.h
@@ -1,5 +1,5 @@
/* Common macros used by gnulib tests.
- 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
diff --git a/tests/malloc.c b/tests/malloc.c
index 5642c83c..f7d11921 100644
--- a/tests/malloc.c
+++ b/tests/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/tests/mbtowc-impl.h b/tests/mbtowc-impl.h
index 3366c9da..c6d61968 100644
--- a/tests/mbtowc-impl.h
+++ b/tests/mbtowc-impl.h
@@ -1,5 +1,5 @@
/* Convert multibyte character to wide character.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software: you can redistribute it and/or modify
@@ -27,11 +27,10 @@ mbtowc (wchar_t *pwc, const char *s, size_t n)
else
{
mbstate_t state;
- wchar_t wc;
- size_t result;
-
mbszero (&state);
- result = mbrtowc (&wc, s, n, &state);
+
+ wchar_t wc;
+ size_t result = mbrtowc (&wc, s, n, &state);
if (result == (size_t)-1 || result == (size_t)-2)
{
errno = EILSEQ;
diff --git a/tests/mbtowc.c b/tests/mbtowc.c
index 27ff35c6..2f30b9fb 100644
--- a/tests/mbtowc.c
+++ b/tests/mbtowc.c
@@ -1,5 +1,5 @@
/* Convert multibyte character to wide character.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software: you can redistribute it and/or modify
diff --git a/tests/minus-zero.h b/tests/minus-zero.h
index 6383064b..f15e2a8c 100644
--- a/tests/minus-zero.h
+++ b/tests/minus-zero.h
@@ -1,5 +1,5 @@
/* Macros for floating-point negative zero.
- 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 General Public License as published by
diff --git a/tests/mkfifo.c b/tests/mkfifo.c
index 419b7b1d..bdc1ed52 100644
--- a/tests/mkfifo.c
+++ b/tests/mkfifo.c
@@ -1,5 +1,5 @@
/* Create a named fifo.
- 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/tests/msvc-inval.c b/tests/msvc-inval.c
index 1b51b1b0..774447b6 100644
--- a/tests/msvc-inval.c
+++ b/tests/msvc-inval.c
@@ -1,5 +1,5 @@
/* Invalid parameter handler for MSVC runtime libraries.
- 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/tests/msvc-inval.h b/tests/msvc-inval.h
index 9bb8a156..25bb6a3a 100644
--- a/tests/msvc-inval.h
+++ b/tests/msvc-inval.h
@@ -1,5 +1,5 @@
/* Invalid parameter handler for MSVC runtime libraries.
- 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
@@ -179,9 +179,9 @@ extern struct gl_msvc_inval_per_thread *gl_msvc_inval_current (void);
# define TRY_MSVC_INVAL \
do \
{ \
- struct gl_msvc_inval_per_thread *msvc_inval_current; \
gl_msvc_inval_ensure_handler (); \
- msvc_inval_current = gl_msvc_inval_current (); \
+ struct gl_msvc_inval_per_thread *msvc_inval_current = \
+ gl_msvc_inval_current (); \
/* First, initialize gl_msvc_inval_restart. */ \
if (setjmp (msvc_inval_current->restart) == 0) \
{ \
diff --git a/tests/msvc-nothrow.c b/tests/msvc-nothrow.c
index 7cf7517e..dea273d5 100644
--- a/tests/msvc-nothrow.c
+++ b/tests/msvc-nothrow.c
@@ -1,6 +1,6 @@
/* Wrappers that don't throw invalid parameter notifications
with MSVC runtime libraries.
- 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/tests/msvc-nothrow.h b/tests/msvc-nothrow.h
index b02f36c4..f059d2d9 100644
--- a/tests/msvc-nothrow.h
+++ b/tests/msvc-nothrow.h
@@ -1,6 +1,6 @@
/* Wrappers that don't throw invalid parameter notifications
with MSVC runtime libraries.
- 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/tests/nan.h b/tests/nan.h
index db3d960a..271c43f4 100644
--- a/tests/nan.h
+++ b/tests/nan.h
@@ -1,5 +1,5 @@
/* Macros for quiet not-a-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/tests/nanosleep.c b/tests/nanosleep.c
index cfafa4e3..a7abb530 100644
--- a/tests/nanosleep.c
+++ b/tests/nanosleep.c
@@ -1,6 +1,6 @@
/* Provide a replacement for the POSIX nanosleep function.
- Copyright (C) 1999-2000, 2002, 2004-2025 Free Software Foundation, Inc.
+ Copyright (C) 1999-2000, 2002, 2004-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -64,9 +64,8 @@ nanosleep (const struct timespec *requested_delay,
while (limit < seconds)
{
- int result;
intermediate.tv_sec = limit;
- result = nanosleep (&intermediate, remaining_delay);
+ int result = nanosleep (&intermediate, remaining_delay);
seconds -= limit;
if (result)
{
diff --git a/tests/nap.h b/tests/nap.h
index eb37bd4b..1b10c389 100644
--- a/tests/nap.h
+++ b/tests/nap.h
@@ -1,5 +1,5 @@
/* Assist in file system timestamp tests.
- 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 General Public License as published by
diff --git a/tests/netinet_in.in.h b/tests/netinet_in.in.h
index 402d01a9..933f5823 100644
--- a/tests/netinet_in.in.h
+++ b/tests/netinet_in.in.h
@@ -1,5 +1,5 @@
/* Substitute for <netinet/in.h>.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/tests/open.c b/tests/open.c
index fceacfcc..c3b5648e 100644
--- a/tests/open.c
+++ b/tests/open.c
@@ -1,5 +1,5 @@
/* Open a descriptor to a file.
- 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/tests/pathmax.h b/tests/pathmax.h
index 5f535517..11c13592 100644
--- a/tests/pathmax.h
+++ b/tests/pathmax.h
@@ -1,5 +1,5 @@
/* Define PATH_MAX somehow. Requires sys/types.h.
- Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2025 Free Software
+ Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2026 Free Software
Foundation, Inc.
This file is free software: you can redistribute it and/or modify
diff --git a/tests/perror.c b/tests/perror.c
index da7fb2c6..c7b14a71 100644
--- a/tests/perror.c
+++ b/tests/perror.c
@@ -1,5 +1,5 @@
/* Print a message describing error code.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
Written by Bruno Haible and Simon Josefsson.
This file is free software: you can redistribute it and/or modify
@@ -33,12 +33,11 @@ void
perror (const char *string)
{
char stackbuf[STACKBUF_LEN];
- int ret;
/* Our implementation guarantees that this will be a non-empty
string, even if it returns EINVAL; and stackbuf should be sized
large enough to avoid ERANGE. */
- ret = strerror_r (errno, stackbuf, sizeof stackbuf);
+ int ret = strerror_r (errno, stackbuf, sizeof stackbuf);
if (ret == ERANGE)
abort ();
diff --git a/tests/pipe.c b/tests/pipe.c
index 1add15b4..9dbf4beb 100644
--- a/tests/pipe.c
+++ b/tests/pipe.c
@@ -1,5 +1,5 @@
/* Create a pipe.
- 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/tests/pselect.c b/tests/pselect.c
index 78f0446f..0e6cff42 100644
--- a/tests/pselect.c
+++ b/tests/pselect.c
@@ -1,6 +1,6 @@
/* pselect - synchronous I/O multiplexing
- Copyright 2011-2025 Free Software Foundation, Inc.
+ Copyright 2011-2026 Free Software Foundation, Inc.
This file is part of gnulib.
@@ -41,16 +41,14 @@ pselect (int nfds, fd_set *restrict rfds,
struct timespec const *restrict timeout,
sigset_t const *restrict sigmask)
{
- int select_result;
- sigset_t origmask;
- struct timeval tv, *tvp;
-
if (nfds < 0 || nfds > FD_SETSIZE)
{
errno = EINVAL;
return -1;
}
+ struct timeval tv;
+ struct timeval *tvp;
if (timeout)
{
if (! (0 <= timeout->tv_nsec && timeout->tv_nsec < 1000000000))
@@ -68,12 +66,13 @@ pselect (int nfds, fd_set *restrict rfds,
else
tvp = NULL;
+ sigset_t origmask;
/* Signal mask munging should be atomic, but this is the best we can
do in this emulation. */
if (sigmask)
pthread_sigmask (SIG_SETMASK, sigmask, &origmask);
- select_result = select (nfds, rfds, wfds, xfds, tvp);
+ int select_result = select (nfds, rfds, wfds, xfds, tvp);
if (sigmask)
{
@@ -95,15 +94,13 @@ rpl_pselect (int nfds, fd_set *restrict rfds,
struct timespec const *restrict timeout,
sigset_t const *restrict sigmask)
{
- int i;
-
/* FreeBSD 8.2 has a bug: it does not always detect invalid fds. */
if (nfds < 0 || nfds > FD_SETSIZE)
{
errno = EINVAL;
return -1;
}
- for (i = 0; i < nfds; i++)
+ for (int i = 0; i < nfds; i++)
{
if (((rfds && FD_ISSET (i, rfds))
|| (wfds && FD_ISSET (i, wfds))
diff --git a/tests/pthread-cond.c b/tests/pthread-cond.c
index 5117f495..169572d2 100644
--- a/tests/pthread-cond.c
+++ b/tests/pthread-cond.c
@@ -1,5 +1,5 @@
/* POSIX condition variables.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 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
@@ -134,10 +134,9 @@ pthread_cond_timedwait (_GL_UNUSED pthread_cond_t *cond,
for (;;)
{
struct timeval currtime;
- unsigned long remaining;
-
gettimeofday (&currtime, NULL);
+ unsigned long remaining;
if (currtime.tv_sec > abstime->tv_sec)
remaining = 0;
else
diff --git a/tests/pthread-mutex.c b/tests/pthread-mutex.c
index 7458d261..1fb67442 100644
--- a/tests/pthread-mutex.c
+++ b/tests/pthread-mutex.c
@@ -1,5 +1,5 @@
/* POSIX mutexes (locks).
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/tests/pthread-rwlock.c b/tests/pthread-rwlock.c
index d4213c8f..9e7efd2f 100644
--- a/tests/pthread-rwlock.c
+++ b/tests/pthread-rwlock.c
@@ -1,5 +1,5 @@
/* POSIX read-write locks.
- 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
@@ -57,18 +57,20 @@ int
pthread_rwlockattr_init (pthread_rwlockattr_t *attr)
# undef pthread_rwlockattr_init
{
- int err;
-
- err = pthread_rwlockattr_init (attr);
- if (err != 0)
- return err;
- err = pthread_rwlockattr_setkind_np (attr,
- PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP);
- if (err != 0)
- {
- pthread_rwlockattr_destroy (attr);
+ {
+ int err = pthread_rwlockattr_init (attr);
+ if (err != 0)
return err;
- }
+ }
+ {
+ int err = pthread_rwlockattr_setkind_np (attr,
+ PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP);
+ if (err != 0)
+ {
+ pthread_rwlockattr_destroy (attr);
+ return err;
+ }
+ }
return 0;
}
@@ -144,17 +146,21 @@ int
pthread_rwlock_init (pthread_rwlock_t *lock,
_GL_UNUSED const pthread_rwlockattr_t *attr)
{
- int err;
-
- err = pthread_mutex_init (&lock->lock, NULL);
- if (err != 0)
- return err;
- err = pthread_cond_init (&lock->waiting_readers, NULL);
- if (err != 0)
- return err;
- err = pthread_cond_init (&lock->waiting_writers, NULL);
- if (err != 0)
- return err;
+ {
+ int err = pthread_mutex_init (&lock->lock, NULL);
+ if (err != 0)
+ return err;
+ }
+ {
+ int err = pthread_cond_init (&lock->waiting_readers, NULL);
+ if (err != 0)
+ return err;
+ }
+ {
+ int err = pthread_cond_init (&lock->waiting_writers, NULL);
+ if (err != 0)
+ return err;
+ }
lock->waiting_writers_count = 0;
lock->runcount = 0;
return 0;
@@ -163,11 +169,11 @@ pthread_rwlock_init (pthread_rwlock_t *lock,
int
pthread_rwlock_rdlock (pthread_rwlock_t *lock)
{
- int err;
-
- err = pthread_mutex_lock (&lock->lock);
- if (err != 0)
- return err;
+ {
+ int err = pthread_mutex_lock (&lock->lock);
+ if (err != 0)
+ return err;
+ }
/* Test whether only readers are currently running, and whether the runcount
field will not overflow, and whether no writer is waiting. The latter
condition is because POSIX recommends that "write locks shall take
@@ -176,7 +182,7 @@ pthread_rwlock_rdlock (pthread_rwlock_t *lock)
{
/* This thread has to wait for a while. Enqueue it among the
waiting_readers. */
- err = pthread_cond_wait (&lock->waiting_readers, &lock->lock);
+ int err = pthread_cond_wait (&lock->waiting_readers, &lock->lock);
if (err != 0)
{
pthread_mutex_unlock (&lock->lock);
@@ -190,18 +196,18 @@ pthread_rwlock_rdlock (pthread_rwlock_t *lock)
int
pthread_rwlock_wrlock (pthread_rwlock_t *lock)
{
- int err;
-
- err = pthread_mutex_lock (&lock->lock);
- if (err != 0)
- return err;
+ {
+ int err = pthread_mutex_lock (&lock->lock);
+ if (err != 0)
+ return err;
+ }
/* Test whether no readers or writers are currently running. */
while (!(lock->runcount == 0))
{
/* This thread has to wait for a while. Enqueue it among the
waiting_writers. */
lock->waiting_writers_count++;
- err = pthread_cond_wait (&lock->waiting_writers, &lock->lock);
+ int err = pthread_cond_wait (&lock->waiting_writers, &lock->lock);
if (err != 0)
{
lock->waiting_writers_count--;
@@ -217,11 +223,11 @@ pthread_rwlock_wrlock (pthread_rwlock_t *lock)
int
pthread_rwlock_tryrdlock (pthread_rwlock_t *lock)
{
- int err;
-
- err = pthread_mutex_lock (&lock->lock);
- if (err != 0)
- return err;
+ {
+ int err = pthread_mutex_lock (&lock->lock);
+ if (err != 0)
+ return err;
+ }
/* Test whether only readers are currently running, and whether the runcount
field will not overflow, and whether no writer is waiting. The latter
condition is because POSIX recommends that "write locks shall take
@@ -239,11 +245,11 @@ pthread_rwlock_tryrdlock (pthread_rwlock_t *lock)
int
pthread_rwlock_trywrlock (pthread_rwlock_t *lock)
{
- int err;
-
- err = pthread_mutex_lock (&lock->lock);
- if (err != 0)
- return err;
+ {
+ int err = pthread_mutex_lock (&lock->lock);
+ if (err != 0)
+ return err;
+ }
/* Test whether no readers or writers are currently running. */
if (!(lock->runcount == 0))
{
@@ -259,11 +265,11 @@ int
pthread_rwlock_timedrdlock (pthread_rwlock_t *lock,
const struct timespec *abstime)
{
- int err;
-
- err = pthread_mutex_lock (&lock->lock);
- if (err != 0)
- return err;
+ {
+ int err = pthread_mutex_lock (&lock->lock);
+ if (err != 0)
+ return err;
+ }
/* Test whether only readers are currently running, and whether the runcount
field will not overflow, and whether no writer is waiting. The latter
condition is because POSIX recommends that "write locks shall take
@@ -272,8 +278,8 @@ pthread_rwlock_timedrdlock (pthread_rwlock_t *lock,
{
/* This thread has to wait for a while. Enqueue it among the
waiting_readers. */
- err = pthread_cond_timedwait (&lock->waiting_readers, &lock->lock,
- abstime);
+ int err = pthread_cond_timedwait (&lock->waiting_readers, &lock->lock,
+ abstime);
if (err != 0)
{
pthread_mutex_unlock (&lock->lock);
@@ -288,19 +294,19 @@ int
pthread_rwlock_timedwrlock (pthread_rwlock_t *lock,
const struct timespec *abstime)
{
- int err;
-
- err = pthread_mutex_lock (&lock->lock);
- if (err != 0)
- return err;
+ {
+ int err = pthread_mutex_lock (&lock->lock);
+ if (err != 0)
+ return err;
+ }
/* Test whether no readers or writers are currently running. */
while (!(lock->runcount == 0))
{
/* This thread has to wait for a while. Enqueue it among the
waiting_writers. */
lock->waiting_writers_count++;
- err = pthread_cond_timedwait (&lock->waiting_writers, &lock->lock,
- abstime);
+ int err = pthread_cond_timedwait (&lock->waiting_writers, &lock->lock,
+ abstime);
if (err != 0)
{
lock->waiting_writers_count--;
@@ -316,11 +322,11 @@ pthread_rwlock_timedwrlock (pthread_rwlock_t *lock,
int
pthread_rwlock_unlock (pthread_rwlock_t *lock)
{
- int err;
-
- err = pthread_mutex_lock (&lock->lock);
- if (err != 0)
- return err;
+ {
+ int err = pthread_mutex_lock (&lock->lock);
+ if (err != 0)
+ return err;
+ }
if (lock->runcount < 0)
{
/* Drop a writer lock. */
@@ -348,7 +354,7 @@ pthread_rwlock_unlock (pthread_rwlock_t *lock)
if (lock->waiting_writers_count > 0)
{
/* Wake up one of the waiting writers. */
- err = pthread_cond_signal (&lock->waiting_writers);
+ int err = pthread_cond_signal (&lock->waiting_writers);
if (err != 0)
{
pthread_mutex_unlock (&lock->lock);
@@ -358,7 +364,7 @@ pthread_rwlock_unlock (pthread_rwlock_t *lock)
else
{
/* Wake up all waiting readers. */
- err = pthread_cond_broadcast (&lock->waiting_readers);
+ int err = pthread_cond_broadcast (&lock->waiting_readers);
if (err != 0)
{
pthread_mutex_unlock (&lock->lock);
@@ -372,17 +378,21 @@ pthread_rwlock_unlock (pthread_rwlock_t *lock)
int
pthread_rwlock_destroy (pthread_rwlock_t *lock)
{
- int err;
-
- err = pthread_mutex_destroy (&lock->lock);
- if (err != 0)
- return err;
- err = pthread_cond_destroy (&lock->waiting_readers);
- if (err != 0)
- return err;
- err = pthread_cond_destroy (&lock->waiting_writers);
- if (err != 0)
- return err;
+ {
+ int err = pthread_mutex_destroy (&lock->lock);
+ if (err != 0)
+ return err;
+ }
+ {
+ int err = pthread_cond_destroy (&lock->waiting_readers);
+ if (err != 0)
+ return err;
+ }
+ {
+ int err = pthread_cond_destroy (&lock->waiting_writers);
+ if (err != 0)
+ return err;
+ }
return 0;
}
@@ -397,28 +407,31 @@ int
pthread_rwlock_init (pthread_rwlock_t *lock, const pthread_rwlockattr_t *attr)
# undef pthread_rwlock_init
{
- int err;
-
if (attr != NULL)
- err = pthread_rwlock_init (lock, attr);
+ return pthread_rwlock_init (lock, attr);
else
{
pthread_rwlockattr_t replacement_attr;
-
- err = pthread_rwlockattr_init (&replacement_attr);
- if (err != 0)
- return err;
- err = pthread_rwlockattr_setkind_np (&replacement_attr,
- PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP);
- if (err != 0)
- {
- pthread_rwlockattr_destroy (&replacement_attr);
+ {
+ int err = pthread_rwlockattr_init (&replacement_attr);
+ if (err != 0)
return err;
- }
- err = pthread_rwlock_init (lock, &replacement_attr);
- pthread_rwlockattr_destroy (&replacement_attr);
+ }
+ {
+ int err = pthread_rwlockattr_setkind_np (&replacement_attr,
+ PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP);
+ if (err != 0)
+ {
+ pthread_rwlockattr_destroy (&replacement_attr);
+ return err;
+ }
+ }
+ {
+ int err = pthread_rwlock_init (lock, &replacement_attr);
+ pthread_rwlockattr_destroy (&replacement_attr);
+ return err;
+ }
}
- return err;
}
# endif
@@ -432,16 +445,16 @@ pthread_rwlock_timedrdlock (pthread_rwlock_t *lock,
/* Poll the lock's state in regular intervals. Ugh. */
for (;;)
{
- int err;
- struct timeval currtime;
- unsigned long remaining;
-
- err = pthread_rwlock_tryrdlock (lock);
- if (err != EBUSY)
- return err;
+ {
+ int err = pthread_rwlock_tryrdlock (lock);
+ if (err != EBUSY)
+ return err;
+ }
+ struct timeval currtime;
gettimeofday (&currtime, NULL);
+ unsigned long remaining;
if (currtime.tv_sec > abstime->tv_sec)
remaining = 0;
else
@@ -489,16 +502,16 @@ pthread_rwlock_timedwrlock (pthread_rwlock_t *lock,
/* Poll the lock's state in regular intervals. Ugh. */
for (;;)
{
- int err;
- struct timeval currtime;
- unsigned long remaining;
-
- err = pthread_rwlock_trywrlock (lock);
- if (err != EBUSY)
- return err;
+ {
+ int err = pthread_rwlock_trywrlock (lock);
+ if (err != EBUSY)
+ return err;
+ }
+ struct timeval currtime;
gettimeofday (&currtime, NULL);
+ unsigned long remaining;
if (currtime.tv_sec > abstime->tv_sec)
remaining = 0;
else
diff --git a/tests/pthread-thread.c b/tests/pthread-thread.c
index b182fa4a..bf0eebba 100644
--- a/tests/pthread-thread.c
+++ b/tests/pthread-thread.c
@@ -1,5 +1,5 @@
/* Creating and controlling POSIX threads.
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/tests/pthread_mutex_timedlock.c b/tests/pthread_mutex_timedlock.c
index 0249dc0c..84a6d847 100644
--- a/tests/pthread_mutex_timedlock.c
+++ b/tests/pthread_mutex_timedlock.c
@@ -1,5 +1,5 @@
/* Lock a mutex, abandoning after a certain time.
- 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
@@ -40,16 +40,16 @@ pthread_mutex_timedlock (pthread_mutex_t *mutex, const struct timespec *abstime)
Therefore start the loop with a pthread_mutex_trylock call. */
for (;;)
{
- int err;
- struct timeval currtime;
- unsigned long remaining;
-
- err = pthread_mutex_trylock (mutex);
- if (err != EBUSY)
- return err;
+ {
+ int err = pthread_mutex_trylock (mutex);
+ if (err != EBUSY)
+ return err;
+ }
+ struct timeval currtime;
gettimeofday (&currtime, NULL);
+ unsigned long remaining;
if (currtime.tv_sec > abstime->tv_sec)
remaining = 0;
else
diff --git a/tests/pthread_sigmask.c b/tests/pthread_sigmask.c
index 0d0a5c21..95600d60 100644
--- a/tests/pthread_sigmask.c
+++ b/tests/pthread_sigmask.c
@@ -1,5 +1,5 @@
/* POSIX compatible signal blocking for threads.
- 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
@@ -31,21 +31,20 @@ pthread_sigmask (int how, const sigset_t *new_mask, sigset_t *old_mask)
#undef pthread_sigmask
{
#if HAVE_PTHREAD_SIGMASK
- int ret;
-
# if PTHREAD_SIGMASK_INEFFECTIVE
- sigset_t omask, omask_copy;
+ sigset_t omask;
sigset_t *old_mask_ptr = &omask;
sigemptyset (&omask);
/* Add a signal unlikely to be blocked, so that OMASK_COPY
is unlikely to match the actual mask. */
sigaddset (&omask, SIGILL);
+ sigset_t omask_copy;
memcpy (&omask_copy, &omask, sizeof omask);
# else
sigset_t *old_mask_ptr = old_mask;
# endif
- ret = pthread_sigmask (how, new_mask, old_mask_ptr);
+ int ret = pthread_sigmask (how, new_mask, old_mask_ptr);
# if PTHREAD_SIGMASK_INEFFECTIVE
if (ret == 0)
diff --git a/tests/putenv.c b/tests/putenv.c
index c310ebda..a8abede7 100644
--- a/tests/putenv.c
+++ b/tests/putenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2025 Free Software
+/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2026 Free Software
Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C
@@ -70,7 +70,6 @@ int
putenv (char *string)
{
const char *name_end = strchr (string, '=');
- char **ep;
if (name_end == NULL)
{
@@ -97,15 +96,14 @@ putenv (char *string)
/* _putenv ("NAME=") unsets NAME, so invoke _putenv ("NAME= ")
to allocate the environ vector and then replace the new
entry with "NAME=". */
- int putenv_result;
char *name_x = malloc (name_end - string + sizeof "= ");
if (!name_x)
return -1;
memcpy (name_x, string, name_end - string + 1);
name_x[name_end - string + 1] = ' ';
name_x[name_end - string + 2] = 0;
- putenv_result = _putenv (name_x);
- for (ep = environ; *ep; ep++)
+ int putenv_result = _putenv (name_x);
+ for (char **ep = environ; *ep; ep++)
if (streq (*ep, name_x))
{
*ep = string;
@@ -125,6 +123,7 @@ putenv (char *string)
return putenv_result;
}
#else
+ char **ep;
for (ep = environ; *ep; ep++)
if (strncmp (*ep, string, name_end - string) == 0
&& (*ep)[name_end - string] == '=')
diff --git a/tests/raise.c b/tests/raise.c
index f0db2232..fcd6c8e3 100644
--- a/tests/raise.c
+++ b/tests/raise.c
@@ -1,6 +1,6 @@
/* Provide a non-threads replacement for the POSIX raise function.
- Copyright (C) 2002-2003, 2005-2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002-2003, 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/tests/random.c b/tests/random.c
index e0d4b07a..4e3676d9 100644
--- a/tests/random.c
+++ b/tests/random.c
@@ -1,4 +1,4 @@
-/* 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
@@ -246,14 +246,11 @@ weak_alias (__srandom, srand)
char *
__initstate (unsigned int seed, char *arg_state, size_t n)
{
- int32_t *ostate;
- int ret;
-
__libc_lock_lock (lock);
- ostate = &unsafe_state.state[-1];
+ int32_t *ostate = &unsafe_state.state[-1];
- ret = __initstate_r (seed, arg_state, n, &unsafe_state);
+ int ret = __initstate_r (seed, arg_state, n, &unsafe_state);
__libc_lock_unlock (lock);
@@ -273,11 +270,9 @@ weak_alias (__initstate, initstate)
char *
__setstate (char *arg_state)
{
- int32_t *ostate;
-
__libc_lock_lock (lock);
- ostate = &unsafe_state.state[-1];
+ int32_t *ostate = &unsafe_state.state[-1];
if (__setstate_r (arg_state, &unsafe_state) < 0)
ostate = NULL;
@@ -303,10 +298,9 @@ weak_alias (__setstate, setstate)
long int
__random (void)
{
- int32_t retval;
-
__libc_lock_lock (lock);
+ int32_t retval;
(void) __random_r (&unsafe_state, &retval);
__libc_lock_unlock (lock);
diff --git a/tests/random_r.c b/tests/random_r.c
index 19ffb6a6..9f478313 100644
--- a/tests/random_r.c
+++ b/tests/random_r.c
@@ -1,5 +1,5 @@
/*
- Copyright (C) 1995-2025 Free Software Foundation, Inc.
+ Copyright (C) 1995-2026 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -187,20 +187,13 @@ set_int32 (void *p, int32_t v)
int
__srandom_r (unsigned int seed, struct random_data *buf)
{
- int type;
- int32_t *state;
- long int i;
- int32_t word;
- int32_t *dst;
- int kc;
-
if (buf == NULL)
goto fail;
- type = buf->rand_type;
+ int type = buf->rand_type;
if ((unsigned int) type >= MAX_TYPES)
goto fail;
- state = buf->state;
+ int32_t *state = buf->state;
/* We must make sure the seed is not 0. Take arbitrarily 1 in this case. */
if (seed == 0)
seed = 1;
@@ -208,10 +201,10 @@ __srandom_r (unsigned int seed, struct random_data *buf)
if (type == TYPE_0)
goto done;
- dst = state;
- word = seed;
- kc = buf->rand_deg;
- for (i = 1; i < kc; ++i)
+ int32_t *dst = state;
+ int32_t word = seed;
+ int kc = buf->rand_deg;
+ for (long int i = 1; i < kc; ++i)
{
/* This does:
state[i] = (16807 * state[i - 1]) % 2147483647;
@@ -321,28 +314,26 @@ int
__setstate_r (char *arg_state, struct random_data *buf)
{
int32_t *new_state = 1 + (int32_t *) arg_state;
- int type;
- int old_type;
- int32_t *old_state;
- int degree;
- int separation;
if (arg_state == NULL || buf == NULL)
goto fail;
- old_type = buf->rand_type;
- old_state = buf->state;
+ int old_type = buf->rand_type;
+ int32_t *old_state = buf->state;
set_int32 (&old_state[-1],
(old_type == TYPE_0
? TYPE_0
: (MAX_TYPES * (buf->rptr - old_state)) + old_type));
- type = get_int32 (&new_state[-1]) % MAX_TYPES;
+ int type = get_int32 (&new_state[-1]) % MAX_TYPES;
if (type < TYPE_0 || type > TYPE_4)
goto fail;
- buf->rand_deg = degree = random_poly_info.degrees[type];
- buf->rand_sep = separation = random_poly_info.seps[type];
+ int degree = random_poly_info.degrees[type];
+ int separation = random_poly_info.seps[type];
+
+ buf->rand_deg = degree;
+ buf->rand_sep = separation;
buf->rand_type = type;
if (type != TYPE_0)
@@ -378,12 +369,10 @@ weak_alias (__setstate_r, setstate_r)
int
__random_r (struct random_data *buf, int32_t *result)
{
- int32_t *state;
-
if (buf == NULL || result == NULL)
goto fail;
- state = buf->state;
+ int32_t *state = buf->state;
if (buf->rand_type == TYPE_0)
{
diff --git a/tests/randomd.c b/tests/randomd.c
index a6f7a185..c642af8c 100644
--- a/tests/randomd.c
+++ b/tests/randomd.c
@@ -1,5 +1,5 @@
/* Some random 'double' numbers used by gnulib tests.
- Copyright (C) 2012-2025 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
diff --git a/tests/randoml.c b/tests/randoml.c
index 2790f348..edb313f2 100644
--- a/tests/randoml.c
+++ b/tests/randoml.c
@@ -1,5 +1,5 @@
/* Some random 'long double' numbers used by gnulib tests.
- Copyright (C) 2012-2025 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
diff --git a/tests/realloc.c b/tests/realloc.c
index 62efd5a3..9b35c235 100644
--- a/tests/realloc.c
+++ b/tests/realloc.c
@@ -1,6 +1,6 @@
/* realloc() function that is glibc compatible.
- Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
This file is free software: you can redistribute it and/or modify
@@ -20,9 +20,9 @@
/* Ensure that we call the system's realloc() below. */
#define _GL_USE_STDLIB_ALLOC 1
-#include <config.h>
#define _GL_REALLOC_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <stdlib.h>
#include <errno.h>
@@ -94,7 +94,7 @@ rpl_realloc (void *p, size_t n)
void *result = realloc (p, n1);
-# if !HAVE_MALLOC_POSIX
+# if !HAVE_REALLOC_POSIX
if (result == NULL)
errno = ENOMEM;
# endif
diff --git a/tests/reallocarray.c b/tests/reallocarray.c
index 77e8d84c..60573fef 100644
--- a/tests/reallocarray.c
+++ b/tests/reallocarray.c
@@ -1,6 +1,6 @@
/* reallocarray function that is glibc compatible.
- 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/tests/same-inode.c b/tests/same-inode.c
index 49a49e08..c319c40b 100644
--- a/tests/same-inode.c
+++ b/tests/same-inode.c
@@ -1,6 +1,6 @@
/* Determine whether two stat buffers are known to refer to the same file.
- 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,6 +15,6 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
#define SAME_INODE_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "same-inode.h"
diff --git a/tests/same-inode.h b/tests/same-inode.h
index 70f17b03..025901a2 100644
--- a/tests/same-inode.h
+++ b/tests/same-inode.h
@@ -1,6 +1,6 @@
/* Determine whether two stat buffers are known to refer to the same file.
- Copyright (C) 2006, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 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/tests/sched_yield.c b/tests/sched_yield.c
index ccf4c948..9909039d 100644
--- a/tests/sched_yield.c
+++ b/tests/sched_yield.c
@@ -1,5 +1,5 @@
/* Schedule other threads to run.
- 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/tests/select.c b/tests/select.c
index 5a58d6ee..a08e3867 100644
--- a/tests/select.c
+++ b/tests/select.c
@@ -1,7 +1,7 @@
/* Emulation for select(2)
Contributed by Paolo Bonzini.
- Copyright 2008-2025 Free Software Foundation, Inc.
+ Copyright 2008-2026 Free Software Foundation, Inc.
This file is part of gnulib.
@@ -114,13 +114,12 @@ static BOOL IsConsoleHandle (HANDLE h)
static BOOL
IsSocketHandle (HANDLE h)
{
- WSANETWORKEVENTS ev;
-
if (IsConsoleHandle (h))
return FALSE;
/* Under Wine, it seems that getsockopt returns 0 for pipes too.
WSAEnumNetworkEvents instead distinguishes the two correctly. */
+ WSANETWORKEVENTS ev;
ev.lNetworkEvents = 0xDEADBEEF;
WSAEnumNetworkEvents ((SOCKET) h, NULL, &ev);
return ev.lNetworkEvents != 0xDEADBEEF;
@@ -135,17 +134,12 @@ windows_poll_handle (HANDLE h, int fd,
struct bitset *wbits,
struct bitset *xbits)
{
- BOOL read, write, except;
- int i, ret;
- INPUT_RECORD *irbuffer;
- DWORD avail, nbuffer;
- BOOL bRet;
- IO_STATUS_BLOCK iosb;
- FILE_PIPE_LOCAL_INFORMATION fpli;
static PNtQueryInformationFile NtQueryInformationFile;
static BOOL once_only;
- read = write = except = FALSE;
+ BOOL read = FALSE;
+ BOOL write = FALSE;
+ BOOL except = FALSE;
switch (GetFileType (h))
{
case FILE_TYPE_DISK:
@@ -162,6 +156,7 @@ windows_poll_handle (HANDLE h, int fd,
once_only = TRUE;
}
+ DWORD avail;
if (PeekNamedPipe (h, NULL, 0, NULL, &avail, NULL) != 0)
{
if (avail)
@@ -169,7 +164,6 @@ windows_poll_handle (HANDLE h, int fd,
}
else if (GetLastError () == ERROR_BROKEN_PIPE)
;
-
else
{
/* It was the write-end of the pipe. Check if it is writable.
@@ -180,7 +174,9 @@ windows_poll_handle (HANDLE h, int fd,
(I think this should not happen since Windows XP SP2; WINE seems
fine too). Otherwise, ensure that enough space is available for
atomic writes. */
+ IO_STATUS_BLOCK iosb;
memset (&iosb, 0, sizeof (iosb));
+ FILE_PIPE_LOCAL_INFORMATION fpli;
memset (&fpli, 0, sizeof (fpli));
if (!NtQueryInformationFile
@@ -198,8 +194,7 @@ windows_poll_handle (HANDLE h, int fd,
if (!(rbits->in[fd / CHAR_BIT] & (1 << (fd & (CHAR_BIT - 1)))))
break;
- ret = WaitForSingleObject (h, 0);
- if (ret == WAIT_OBJECT_0)
+ if (WaitForSingleObject (h, 0) == WAIT_OBJECT_0)
{
if (!IsConsoleHandle (h))
{
@@ -207,9 +202,8 @@ windows_poll_handle (HANDLE h, int fd,
break;
}
- nbuffer = avail = 0;
- bRet = GetNumberOfConsoleInputEvents (h, &nbuffer);
-
+ DWORD nbuffer = 0;
+ BOOL bRet = GetNumberOfConsoleInputEvents (h, &nbuffer);
/* Screen buffers handles are filtered earlier. */
assert (bRet);
if (nbuffer == 0)
@@ -218,30 +212,32 @@ windows_poll_handle (HANDLE h, int fd,
break;
}
- irbuffer = (INPUT_RECORD *) alloca (nbuffer * sizeof (INPUT_RECORD));
- bRet = PeekConsoleInput (h, irbuffer, nbuffer, &avail);
- if (!bRet || avail == 0)
+ INPUT_RECORD *irbuffer =
+ (INPUT_RECORD *) alloca (nbuffer * sizeof (INPUT_RECORD));
+ DWORD avail = 0;
+ if (! PeekConsoleInput (h, irbuffer, nbuffer, &avail) || avail == 0)
{
except = TRUE;
break;
}
- for (i = 0; i < avail; i++)
+ for (int i = 0; i < avail; i++)
if (irbuffer[i].EventType == KEY_EVENT)
read = TRUE;
}
break;
default:
- ret = WaitForSingleObject (h, 0);
- write = TRUE;
- if (ret == WAIT_OBJECT_0)
- read = TRUE;
-
+ {
+ int ret = WaitForSingleObject (h, 0);
+ write = TRUE;
+ if (ret == WAIT_OBJECT_0)
+ read = TRUE;
+ }
break;
}
- ret = 0;
+ int ret = 0;
if (read && (rbits->in[fd / CHAR_BIT] & (1 << (fd & (CHAR_BIT - 1)))))
{
rbits->out[fd / CHAR_BIT] |= (1 << (fd & (CHAR_BIT - 1)));
@@ -270,14 +266,6 @@ rpl_select (int nfds, fd_set *rfds, fd_set *wfds, fd_set *xfds,
{
static struct timeval tv0;
static HANDLE hEvent;
- HANDLE h, handle_array[FD_SETSIZE + 2];
- fd_set handle_rfds, handle_wfds, handle_xfds;
- struct bitset rbits, wbits, xbits;
- unsigned char anyfds_in[FD_SETSIZE / CHAR_BIT];
- DWORD ret, wait_timeout, nhandles, nsock, nbuffer;
- MSG msg;
- int i, fd, rc;
- clock_t tend;
if (nfds < 0 || nfds > FD_SETSIZE)
{
@@ -285,6 +273,7 @@ rpl_select (int nfds, fd_set *rfds, fd_set *wfds, fd_set *xfds,
return -1;
}
+ DWORD wait_timeout;
if (!timeout)
wait_timeout = INFINITE;
else
@@ -302,52 +291,54 @@ rpl_select (int nfds, fd_set *rfds, fd_set *wfds, fd_set *xfds,
if (!hEvent)
hEvent = CreateEvent (NULL, FALSE, FALSE, NULL);
- handle_array[0] = hEvent;
- nhandles = 1;
- nsock = 0;
-
/* Copy descriptors to bitsets. At the same time, eliminate
bits in the "wrong" direction for console input buffers
and screen buffers, because screen buffers are waitable
and they will block until a character is available. */
+ struct bitset rbits;
memset (&rbits, 0, sizeof (rbits));
+ struct bitset wbits;
memset (&wbits, 0, sizeof (wbits));
+ struct bitset xbits;
memset (&xbits, 0, sizeof (xbits));
+ unsigned char anyfds_in[FD_SETSIZE / CHAR_BIT];
memset (anyfds_in, 0, sizeof (anyfds_in));
if (rfds)
- for (i = 0; i < rfds->fd_count; i++)
+ for (int i = 0; i < rfds->fd_count; i++)
{
- fd = rfds->fd_array[i];
- h = (HANDLE) _get_osfhandle (fd);
- if (IsConsoleHandle (h)
- && !GetNumberOfConsoleInputEvents (h, &nbuffer))
- continue;
-
- rbits.in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1));
- anyfds_in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1));
+ int fd = rfds->fd_array[i];
+ HANDLE h = (HANDLE) _get_osfhandle (fd);
+ DWORD nbuffer;
+ if (!IsConsoleHandle (h)
+ || GetNumberOfConsoleInputEvents (h, &nbuffer))
+ {
+ rbits.in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1));
+ anyfds_in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1));
+ }
}
else
rfds = (fd_set *) alloca (sizeof (fd_set));
if (wfds)
- for (i = 0; i < wfds->fd_count; i++)
+ for (int i = 0; i < wfds->fd_count; i++)
{
- fd = wfds->fd_array[i];
- h = (HANDLE) _get_osfhandle (fd);
- if (IsConsoleHandle (h)
- && GetNumberOfConsoleInputEvents (h, &nbuffer))
- continue;
-
- wbits.in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1));
- anyfds_in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1));
+ int fd = wfds->fd_array[i];
+ HANDLE h = (HANDLE) _get_osfhandle (fd);
+ DWORD nbuffer;
+ if (!IsConsoleHandle (h)
+ || !GetNumberOfConsoleInputEvents (h, &nbuffer))
+ {
+ wbits.in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1));
+ anyfds_in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1));
+ }
}
else
wfds = (fd_set *) alloca (sizeof (fd_set));
if (xfds)
- for (i = 0; i < xfds->fd_count; i++)
+ for (int i = 0; i < xfds->fd_count; i++)
{
- fd = xfds->fd_array[i];
+ int fd = xfds->fd_array[i];
xbits.in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1));
anyfds_in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1));
}
@@ -358,59 +349,67 @@ rpl_select (int nfds, fd_set *rfds, fd_set *wfds, fd_set *xfds,
FD_ZERO (rfds);
FD_ZERO (wfds);
FD_ZERO (xfds);
+ fd_set handle_rfds;
FD_ZERO (&handle_rfds);
+ fd_set handle_wfds;
FD_ZERO (&handle_wfds);
+ fd_set handle_xfds;
FD_ZERO (&handle_xfds);
+ HANDLE handle_array[FD_SETSIZE + 2];
+ handle_array[0] = hEvent;
+ DWORD nhandles = 1;
+ DWORD nsock = 0;
+
/* Classify handles. Create fd sets for sockets, poll the others. */
- for (i = 0; i < nfds; i++)
+ for (int i = 0; i < nfds; i++)
{
- if ((anyfds_in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))) == 0)
- continue;
-
- h = (HANDLE) _get_osfhandle (i);
- if (!h)
- {
- errno = EBADF;
- return -1;
- }
-
- if (IsSocketHandle (h))
+ if ((anyfds_in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))) != 0)
{
- int requested = FD_CLOSE;
-
- /* See above; socket handles are mapped onto select, but we
- need to map descriptors to handles. */
- if (rbits.in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
+ HANDLE h = (HANDLE) _get_osfhandle (i);
+ if (!h)
{
- requested |= FD_READ | FD_ACCEPT;
- FD_SET ((SOCKET) h, rfds);
- FD_SET ((SOCKET) h, &handle_rfds);
+ errno = EBADF;
+ return -1;
}
- if (wbits.in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
+
+ if (IsSocketHandle (h))
{
- requested |= FD_WRITE | FD_CONNECT;
- FD_SET ((SOCKET) h, wfds);
- FD_SET ((SOCKET) h, &handle_wfds);
+ int requested = FD_CLOSE;
+
+ /* See above; socket handles are mapped onto select, but we
+ need to map descriptors to handles. */
+ if (rbits.in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
+ {
+ requested |= FD_READ | FD_ACCEPT;
+ FD_SET ((SOCKET) h, rfds);
+ FD_SET ((SOCKET) h, &handle_rfds);
+ }
+ if (wbits.in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
+ {
+ requested |= FD_WRITE | FD_CONNECT;
+ FD_SET ((SOCKET) h, wfds);
+ FD_SET ((SOCKET) h, &handle_wfds);
+ }
+ if (xbits.in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
+ {
+ requested |= FD_OOB;
+ FD_SET ((SOCKET) h, xfds);
+ FD_SET ((SOCKET) h, &handle_xfds);
+ }
+
+ WSAEventSelect ((SOCKET) h, hEvent, requested);
+ nsock++;
}
- if (xbits.in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
+ else
{
- requested |= FD_OOB;
- FD_SET ((SOCKET) h, xfds);
- FD_SET ((SOCKET) h, &handle_xfds);
- }
-
- WSAEventSelect ((SOCKET) h, hEvent, requested);
- nsock++;
- }
- else
- {
- handle_array[nhandles++] = h;
+ handle_array[nhandles++] = h;
- /* Poll now. If we get an event, do not wait below. */
- if (wait_timeout != 0
- && windows_poll_handle (h, i, &rbits, &wbits, &xbits))
- wait_timeout = 0;
+ /* Poll now. If we get an event, do not wait below. */
+ if (wait_timeout != 0
+ && windows_poll_handle (h, i, &rbits, &wbits, &xbits))
+ wait_timeout = 0;
+ }
}
}
@@ -418,10 +417,12 @@ rpl_select (int nfds, fd_set *rfds, fd_set *wfds, fd_set *xfds,
handle_array[nhandles] = NULL;
/* When will the waiting period expire? */
+ clock_t tend;
if (wait_timeout != INFINITE)
tend = clock () + wait_timeout;
-restart:
+restart: ;
+ int rc;
if (wait_timeout == 0 || nsock == 0)
rc = 0;
else
@@ -453,14 +454,14 @@ restart:
for (;;)
{
- ret = MsgWaitForMultipleObjects (nhandles, handle_array, FALSE,
- wait_timeout, QS_ALLINPUT);
+ DWORD ret = MsgWaitForMultipleObjects (nhandles, handle_array, FALSE,
+ wait_timeout, QS_ALLINPUT);
if (ret == WAIT_OBJECT_0 + nhandles)
{
/* new input of some other kind */
- BOOL bRet;
- while ((bRet = PeekMessage (&msg, NULL, 0, 0, PM_REMOVE)) != 0)
+ MSG msg;
+ while (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE) != 0)
{
TranslateMessage (&msg);
DispatchMessage (&msg);
@@ -478,21 +479,21 @@ restart:
{
/* Count results that are not counted in the return value of select. */
nhandles = 1;
- for (i = 0; i < nfds; i++)
+ for (int i = 0; i < nfds; i++)
{
- if ((anyfds_in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))) == 0)
- continue;
-
- h = (HANDLE) _get_osfhandle (i);
- if (h == handle_array[nhandles])
+ if ((anyfds_in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))) != 0)
{
- /* Not a socket. */
- nhandles++;
- windows_poll_handle (h, i, &rbits, &wbits, &xbits);
- if (rbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))
- || wbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))
- || xbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
- rc++;
+ HANDLE h = (HANDLE) _get_osfhandle (i);
+ if (h == handle_array[nhandles])
+ {
+ /* Not a socket. */
+ nhandles++;
+ windows_poll_handle (h, i, &rbits, &wbits, &xbits);
+ if (rbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))
+ || wbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))
+ || xbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
+ rc++;
+ }
}
}
@@ -524,34 +525,34 @@ restart:
FD_ZERO (wfds);
FD_ZERO (xfds);
nhandles = 1;
- for (i = 0; i < nfds; i++)
+ for (int i = 0; i < nfds; i++)
{
- if ((anyfds_in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))) == 0)
- continue;
-
- h = (HANDLE) _get_osfhandle (i);
- if (h != handle_array[nhandles])
- {
- /* Perform handle->descriptor mapping. */
- SOCKET s = (SOCKET) h;
- WSAEventSelect (s, NULL, 0);
- if (FD_ISSET (s, &handle_rfds))
- FD_SET (i, rfds);
- if (FD_ISSET (s, &handle_wfds))
- FD_SET (i, wfds);
- if (FD_ISSET (s, &handle_xfds))
- FD_SET (i, xfds);
- }
- else
+ if ((anyfds_in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))) != 0)
{
- /* Not a socket. */
- nhandles++;
- if (rbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
- FD_SET (i, rfds);
- if (wbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
- FD_SET (i, wfds);
- if (xbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
- FD_SET (i, xfds);
+ HANDLE h = (HANDLE) _get_osfhandle (i);
+ if (h != handle_array[nhandles])
+ {
+ /* Perform handle->descriptor mapping. */
+ SOCKET s = (SOCKET) h;
+ WSAEventSelect (s, NULL, 0);
+ if (FD_ISSET (s, &handle_rfds))
+ FD_SET (i, rfds);
+ if (FD_ISSET (s, &handle_wfds))
+ FD_SET (i, wfds);
+ if (FD_ISSET (s, &handle_xfds))
+ FD_SET (i, xfds);
+ }
+ else
+ {
+ /* Not a socket. */
+ nhandles++;
+ if (rbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
+ FD_SET (i, rfds);
+ if (wbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
+ FD_SET (i, wfds);
+ if (xbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
+ FD_SET (i, xfds);
+ }
}
}
@@ -570,15 +571,13 @@ int
rpl_select (int nfds, fd_set *rfds, fd_set *wfds, fd_set *xfds,
struct timeval *timeout)
{
- int i;
-
/* FreeBSD 8.2 has a bug: it does not always detect invalid fds. */
if (nfds < 0 || nfds > FD_SETSIZE)
{
errno = EINVAL;
return -1;
}
- for (i = 0; i < nfds; i++)
+ for (int i = 0; i < nfds; i++)
{
if (((rfds && FD_ISSET (i, rfds))
|| (wfds && FD_ISSET (i, wfds))
diff --git a/tests/setenv.c b/tests/setenv.c
index ef301d41..ae53146f 100644
--- a/tests/setenv.c
+++ b/tests/setenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995-2003, 2005-2025 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995-2003, 2005-2026 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This file is free software: you can redistribute it and/or modify
@@ -126,8 +126,6 @@ int
__add_to_environ (const char *name, const char *value, const char *combined,
int replace)
{
- char **ep;
- size_t size;
const size_t namelen = strlen (name);
const size_t vallen = value != NULL ? strlen (value) + 1 : 0;
@@ -135,9 +133,9 @@ __add_to_environ (const char *name, const char *value, const char *combined,
/* We have to get the pointer now that we have the lock and not earlier
since another thread might have created a new environment. */
- ep = __environ;
+ char **ep = __environ;
- size = 0;
+ size_t size = 0;
if (ep != NULL)
{
for (; *ep != NULL; ++ep)
@@ -149,13 +147,8 @@ __add_to_environ (const char *name, const char *value, const char *combined,
if (ep == NULL || *ep == NULL)
{
- char **new_environ;
-#ifdef USE_TSEARCH
- char *new_value;
-#endif
-
/* We allocated this space; we can extend it. */
- new_environ =
+ char **new_environ =
(char **) (last_environ == NULL
? malloc ((size + 2) * sizeof (char *))
: realloc (last_environ, (size + 2) * sizeof (char *)));
@@ -177,6 +170,7 @@ __add_to_environ (const char *name, const char *value, const char *combined,
{
/* See whether the value is already known. */
#ifdef USE_TSEARCH
+ char *new_value;
# ifdef _LIBC
new_value = (char *) alloca (namelen + 1 + vallen);
__mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1),
@@ -448,7 +442,6 @@ extern int setenv (const char *, const char *, int);
int
rpl_setenv (const char *name, const char *value, int replace)
{
- int result;
if (name == NULL || *name == '\0' || strchr (name, '=') != NULL)
{
errno = EINVAL;
@@ -456,13 +449,12 @@ rpl_setenv (const char *name, const char *value, int replace)
}
/* Call the real setenv even if replace is 0, in case implementation
has underlying data to update, such as when environ changes. */
- result = setenv (name, value, replace);
+ int result = setenv (name, value, replace);
if (result == 0 && replace && *value == '=')
{
char *tmp = getenv (name);
if (!STREQ (tmp, value))
{
- int saved_errno;
size_t len = strlen (value);
tmp = malloca (len + 2);
if (tmp == NULL)
@@ -474,7 +466,7 @@ rpl_setenv (const char *name, const char *value, int replace)
*tmp = '=';
memcpy (tmp + 1, value, len + 1);
result = setenv (name, tmp, replace);
- saved_errno = errno;
+ int saved_errno = errno;
freea (tmp);
errno = saved_errno;
}
diff --git a/tests/setlocale.c b/tests/setlocale.c
index 814a9bd8..c4f00610 100644
--- a/tests/setlocale.c
+++ b/tests/setlocale.c
@@ -1,5 +1,5 @@
/* Set the current locale. -*- coding: utf-8 -*-
- Copyright (C) 2009, 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009, 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
@@ -638,31 +638,23 @@ search (const struct table_entry *table, size_t table_size, const char *string,
/* Found an i with
strcmp (language_table[i].code, string) == 0.
Find the entire interval of such i. */
- {
- size_t i;
-
- for (i = mid; i > lo; )
- {
- i--;
- if (strcmp (table[i].code, string) < 0)
- {
- lo = i + 1;
- break;
- }
- }
- }
- {
- size_t i;
-
- for (i = mid + 1; i < hi; i++)
- {
- if (strcmp (table[i].code, string) > 0)
- {
- hi = i;
- break;
- }
- }
- }
+ for (size_t i = mid; i > lo; )
+ {
+ i--;
+ if (strcmp (table[i].code, string) < 0)
+ {
+ lo = i + 1;
+ break;
+ }
+ }
+ for (size_t i = mid + 1; i < hi; i++)
+ {
+ if (strcmp (table[i].code, string) > 0)
+ {
+ hi = i;
+ break;
+ }
+ }
/* The set of i with
strcmp (language_table[i].code, string) == 0
is the interval [lo, hi-1]. */
@@ -679,10 +671,6 @@ static char *
setlocale_unixlike (int category, const char *locale)
{
int is_utf8 = (GetACP () == 65001);
- char *result;
- char llCC_buf[64];
- char ll_buf[64];
- char CC_buf[64];
/* The native Windows implementation of setlocale understands the special
locale name "C", but not "POSIX". Therefore map "POSIX" to "C". */
@@ -699,13 +687,14 @@ setlocale_unixlike (int category, const char *locale)
locale = "English_United States.65001";
/* First, try setlocale with the original argument unchanged. */
- result = setlocale_mtsafe (category, locale);
+ char *result = setlocale_mtsafe (category, locale);
if (result != NULL)
return result;
/* Otherwise, assume the argument is in the form
language[_territory][.codeset][@modifier]
and try to map it using the tables. */
+ char llCC_buf[64];
if (strlen (locale) < sizeof (llCC_buf))
{
/* Second try: Remove the codeset part. */
@@ -745,14 +734,13 @@ setlocale_unixlike (int category, const char *locale)
/* Look it up in language_table. */
{
range_t range;
- size_t i;
search (language_table,
sizeof (language_table) / sizeof (language_table[0]),
llCC_buf,
&range);
- for (i = range.lo; i < range.hi; i++)
+ for (size_t i = range.lo; i < range.hi; i++)
{
/* Try the replacement in language_table[i]. */
if (is_utf8)
@@ -781,9 +769,11 @@ setlocale_unixlike (int category, const char *locale)
if (territory_end == NULL)
territory_end = territory_start + strlen (territory_start);
+ char ll_buf[64];
memcpy (ll_buf, llCC_buf, underscore - llCC_buf);
strcpy (ll_buf + (underscore - llCC_buf), territory_end);
+ char CC_buf[64];
memcpy (CC_buf, territory_start, territory_end - territory_start);
CC_buf[territory_end - territory_start] = '\0';
@@ -805,58 +795,49 @@ setlocale_unixlike (int category, const char *locale)
CC_buf,
&country_range);
if (country_range.lo < country_range.hi)
- {
- size_t i;
- size_t j;
+ for (size_t i = language_range.lo; i < language_range.hi; i++)
+ for (size_t j = country_range.lo; j < country_range.hi; j++)
+ {
+ /* Concatenate the replacements. */
+ const char *part1 = language_table[i].english;
+ size_t part1_len = strlen (part1);
+ const char *part2 = country_table[j].english;
+ size_t part2_len = strlen (part2) + 1;
+ char buf[64+64+6];
+
+ if (!(part1_len + 1 + part2_len + 6 <= sizeof (buf)))
+ abort ();
+ memcpy (buf, part1, part1_len);
+ buf[part1_len] = '_';
+ memcpy (buf + part1_len + 1, part2, part2_len);
+ if (is_utf8)
+ strcat (buf, ".65001");
- for (i = language_range.lo; i < language_range.hi; i++)
- for (j = country_range.lo; j < country_range.hi; j++)
- {
- /* Concatenate the replacements. */
- const char *part1 = language_table[i].english;
- size_t part1_len = strlen (part1);
- const char *part2 = country_table[j].english;
- size_t part2_len = strlen (part2) + 1;
- char buf[64+64+6];
-
- if (!(part1_len + 1 + part2_len + 6 <= sizeof (buf)))
- abort ();
- memcpy (buf, part1, part1_len);
- buf[part1_len] = '_';
- memcpy (buf + part1_len + 1, part2, part2_len);
- if (is_utf8)
- strcat (buf, ".65001");
-
- /* Try the concatenated replacements. */
- result = setlocale (category, buf);
- if (result != NULL)
- return result;
- }
- }
+ /* Try the concatenated replacements. */
+ result = setlocale (category, buf);
+ if (result != NULL)
+ return result;
+ }
/* Try omitting the country entirely. This may set a locale
corresponding to the wrong country, but is better than
failing entirely. */
- {
- size_t i;
-
- for (i = language_range.lo; i < language_range.hi; i++)
- {
- /* Try only the language replacement. */
- if (is_utf8)
- {
- char buf[64+6];
- strcpy (buf, language_table[i].english);
- strcat (buf, ".65001");
- result = setlocale (category, buf);
- }
- else
- result =
- setlocale (category, language_table[i].english);
- if (result != NULL)
- return result;
- }
- }
+ for (size_t i = language_range.lo; i < language_range.hi; i++)
+ {
+ /* Try only the language replacement. */
+ if (is_utf8)
+ {
+ char buf[64+6];
+ strcpy (buf, language_table[i].english);
+ strcat (buf, ".65001");
+ result = setlocale (category, buf);
+ }
+ else
+ result =
+ setlocale (category, language_table[i].english);
+ if (result != NULL)
+ return result;
+ }
}
}
}
@@ -960,7 +941,7 @@ static char const locales_with_principal_territory[][6 + 1] =
"cr_CA", /* Cree Canada */
/* Don't put "crh_UZ" or "crh_UA" here. That would be asking for fruitless
political discussion. */
- "cs_CZ", /* Czech Czech Republic */
+ "cs_CZ", /* Czech Czechia */
"csb_PL", /* Kashubian Poland */
"cy_GB", /* Welsh Britain */
"da_DK", /* Danish Denmark */
@@ -1140,9 +1121,6 @@ static int
langcmp (const char *locale1, const char *locale2)
{
size_t locale1_len;
- size_t locale2_len;
- int cmp;
-
{
const char *locale1_end = strchr (locale1, '_');
if (locale1_end != NULL)
@@ -1150,6 +1128,7 @@ langcmp (const char *locale1, const char *locale2)
else
locale1_len = strlen (locale1);
}
+ size_t locale2_len;
{
const char *locale2_end = strchr (locale2, '_');
if (locale2_end != NULL)
@@ -1158,6 +1137,7 @@ langcmp (const char *locale1, const char *locale2)
locale2_len = strlen (locale2);
}
+ int cmp;
if (locale1_len < locale2_len)
{
cmp = memcmp (locale1, locale2, locale1_len);
@@ -1267,7 +1247,7 @@ static char const locales_with_principal_language[][6 + 1] =
"es_CU", /* Spanish Cuba */
/* Curaçao has three official languages: "nl_CW", "pap_CW", "en_CW". */
"el_CY", /* Greek Cyprus */
- "cs_CZ", /* Czech Czech Republic */
+ "cs_CZ", /* Czech Czechia */
"de_DE", /* German Germany */
/* Djibouti has two official languages: "ar_DJ" and "fr_DJ". */
"da_DK", /* Danish Denmark */
@@ -1461,12 +1441,9 @@ setlocale_improved (int category, const char *locale)
LC_MONETARY,
LC_MESSAGES
};
- char *saved_locale;
- const char *base_name;
- unsigned int i;
/* Back up the old locale, in case one of the steps fails. */
- saved_locale = setlocale (LC_ALL, NULL);
+ char *saved_locale = setlocale (LC_ALL, NULL);
if (saved_locale == NULL)
return NULL;
saved_locale = strdup (saved_locale);
@@ -1476,11 +1453,12 @@ setlocale_improved (int category, const char *locale)
/* Set LC_CTYPE category. Set all other categories (except possibly
LC_MESSAGES) to the same value in the same call; this is likely to
save calls. */
- base_name =
+ const char *base_name =
gl_locale_name_environ (LC_CTYPE, category_to_name (LC_CTYPE));
if (base_name == NULL)
base_name = gl_locale_name_default ();
+ unsigned int i;
if (setlocale_unixlike (LC_ALL, base_name) != NULL)
{
/* LC_CTYPE category already set. */
@@ -1508,9 +1486,8 @@ setlocale_improved (int category, const char *locale)
for (; i < sizeof (categories) / sizeof (categories[0]); i++)
{
int cat = categories[i];
- const char *name;
-
- name = gl_locale_name_environ (cat, category_to_name (cat));
+ const char *name =
+ gl_locale_name_environ (cat, category_to_name (cat));
if (name == NULL)
name = gl_locale_name_default ();
diff --git a/tests/setsockopt.c b/tests/setsockopt.c
index 18a5c33c..b58db1f9 100644
--- a/tests/setsockopt.c
+++ b/tests/setsockopt.c
@@ -1,6 +1,6 @@
/* setsockopt.c --- wrappers for Windows setsockopt function
- 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
@@ -35,8 +35,6 @@ int
rpl_setsockopt (int fd, int level, int optname, const void *optval, socklen_t optlen)
{
SOCKET sock = FD_TO_SOCKET (fd);
- int r;
-
if (sock == INVALID_SOCKET)
{
errno = EBADF;
@@ -44,6 +42,8 @@ rpl_setsockopt (int fd, int level, int optname, const void *optval, socklen_t op
}
else
{
+ int r;
+
if (level == SOL_SOCKET
&& (optname == SO_RCVTIMEO || optname == SO_SNDTIMEO))
{
diff --git a/tests/signal.in.h b/tests/signal.in.h
index 66e0c310..ce844b1a 100644
--- a/tests/signal.in.h
+++ b/tests/signal.in.h
@@ -1,6 +1,6 @@
/* A GNU-like <signal.h>.
- 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
@@ -156,7 +156,6 @@ _GL_CXXALIAS_SYS (sig2str, int, (int signo, char *str));
_GL_CXXALIASWARN (sig2str);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef sig2str
# if HAVE_RAW_DECL_SIG2STR
_GL_WARN_ON_USE (sig2str, "sig2str is not portable - "
"use gnulib module sig2str for portability");
@@ -172,7 +171,6 @@ _GL_CXXALIAS_SYS (str2sig, int, (char const *str, int *signo_p));
_GL_CXXALIASWARN (str2sig);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef str2sig
# if HAVE_RAW_DECL_STR2SIG
_GL_WARN_ON_USE (str2sig, "str2sig is not portable - "
"use gnulib module sig2str for portability");
@@ -210,7 +208,6 @@ _GL_CXXALIAS_SYS (pthread_sigmask, int,
_GL_CXXALIASWARN (pthread_sigmask);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pthread_sigmask
# if HAVE_RAW_DECL_PTHREAD_SIGMASK
_GL_WARN_ON_USE (pthread_sigmask, "pthread_sigmask is not portable - "
"use gnulib module pthread_sigmask for portability");
@@ -236,7 +233,6 @@ _GL_CXXALIAS_SYS (raise, int, (int sig));
_GL_CXXALIASWARN (raise);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef raise
/* Assume raise is always declared. */
_GL_WARN_ON_USE (raise, "raise can crash on native Windows - "
"use gnulib module raise for portability");
@@ -407,37 +403,30 @@ _GL_EXTERN_C int _gl_raise_SIGPIPE (void);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef sigaddset
# if HAVE_RAW_DECL_SIGADDSET
_GL_WARN_ON_USE (sigaddset, "sigaddset is unportable - "
"use the gnulib module sigprocmask for portability");
# endif
-# undef sigdelset
# if HAVE_RAW_DECL_SIGDELSET
_GL_WARN_ON_USE (sigdelset, "sigdelset is unportable - "
"use the gnulib module sigprocmask for portability");
# endif
-# undef sigemptyset
# if HAVE_RAW_DECL_SIGEMPTYSET
_GL_WARN_ON_USE (sigemptyset, "sigemptyset is unportable - "
"use the gnulib module sigprocmask for portability");
# endif
-# undef sigfillset
# if HAVE_RAW_DECL_SIGFILLSET
_GL_WARN_ON_USE (sigfillset, "sigfillset is unportable - "
"use the gnulib module sigprocmask for portability");
# endif
-# undef sigismember
# if HAVE_RAW_DECL_SIGISMEMBER
_GL_WARN_ON_USE (sigismember, "sigismember is unportable - "
"use the gnulib module sigprocmask for portability");
# endif
-# undef sigpending
# if HAVE_RAW_DECL_SIGPENDING
_GL_WARN_ON_USE (sigpending, "sigpending is unportable - "
"use the gnulib module sigprocmask for portability");
# endif
-# undef sigprocmask
# if HAVE_RAW_DECL_SIGPROCMASK
_GL_WARN_ON_USE (sigprocmask, "sigprocmask is unportable - "
"use the gnulib module sigprocmask for portability");
@@ -523,7 +512,6 @@ _GL_CXXALIAS_SYS (sigaction, int, (int, const struct sigaction *restrict,
_GL_CXXALIASWARN (sigaction);
#elif defined GNULIB_POSIXCHECK
-# undef sigaction
# if HAVE_RAW_DECL_SIGACTION
_GL_WARN_ON_USE (sigaction, "sigaction is unportable - "
"use the gnulib module sigaction for portability");
diff --git a/tests/signature.h b/tests/signature.h
index 35f204dd..9f81e8d3 100644
--- a/tests/signature.h
+++ b/tests/signature.h
@@ -1,5 +1,5 @@
/* Macro for checking that a function declaration is compliant.
- 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 General Public License as published by
diff --git a/tests/signed-nan.h b/tests/signed-nan.h
index 41360db5..2c04bd7a 100644
--- a/tests/signed-nan.h
+++ b/tests/signed-nan.h
@@ -1,5 +1,5 @@
/* Macros for quiet not-a-number.
- 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/tests/signed-snan.h b/tests/signed-snan.h
index ad0f4cdd..bf51dd1a 100644
--- a/tests/signed-snan.h
+++ b/tests/signed-snan.h
@@ -1,5 +1,5 @@
/* Macros for signalling not-a-number.
- 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/tests/sigprocmask.c b/tests/sigprocmask.c
index d52e191c..2399f58e 100644
--- a/tests/sigprocmask.c
+++ b/tests/sigprocmask.c
@@ -1,5 +1,5 @@
/* POSIX compatible signal blocking.
- Copyright (C) 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2006-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2006.
This file is free software: you can redistribute it and/or modify
@@ -211,11 +211,10 @@ int
sigpending (sigset_t *set)
{
sigset_t pending = 0;
- int sig;
-
- for (sig = 0; sig < NSIG; sig++)
+ for (int sig = 0; sig < NSIG; sig++)
if (pending_array[sig])
pending |= 1U << sig;
+
*set = pending;
return 0;
}
@@ -235,9 +234,6 @@ sigprocmask (int operation, const sigset_t *set, sigset_t *old_set)
if (set != NULL)
{
sigset_t new_blocked_set;
- sigset_t to_unblock;
- sigset_t to_block;
-
switch (operation)
{
case SIG_BLOCK:
@@ -254,28 +250,24 @@ sigprocmask (int operation, const sigset_t *set, sigset_t *old_set)
errno = EINVAL;
return -1;
}
- to_unblock = blocked_set & ~new_blocked_set;
- to_block = new_blocked_set & ~blocked_set;
- if (to_block != 0)
- {
- int sig;
+ sigset_t to_unblock = blocked_set & ~new_blocked_set;
+ sigset_t to_block = new_blocked_set & ~blocked_set;
- for (sig = 0; sig < NSIG; sig++)
- if ((to_block >> sig) & 1)
- {
- pending_array[sig] = 0;
- if ((old_handlers[sig] = signal (sig, blocked_handler)) != SIG_ERR)
- blocked_set |= 1U << sig;
- }
- }
+ if (to_block != 0)
+ for (int sig = 0; sig < NSIG; sig++)
+ if ((to_block >> sig) & 1)
+ {
+ pending_array[sig] = 0;
+ if ((old_handlers[sig] = signal (sig, blocked_handler)) != SIG_ERR)
+ blocked_set |= 1U << sig;
+ }
if (to_unblock != 0)
{
sig_atomic_t received[NSIG];
- int sig;
- for (sig = 0; sig < NSIG; sig++)
+ for (int sig = 0; sig < NSIG; sig++)
if ((to_unblock >> sig) & 1)
{
if (signal (sig, old_handlers[sig]) != blocked_handler)
@@ -290,7 +282,7 @@ sigprocmask (int operation, const sigset_t *set, sigset_t *old_set)
else
received[sig] = 0;
- for (sig = 0; sig < NSIG; sig++)
+ for (int sig = 0; sig < NSIG; sig++)
if (received[sig])
raise (sig);
}
diff --git a/tests/sleep.c b/tests/sleep.c
index d7c0b38e..6192a8dd 100644
--- a/tests/sleep.c
+++ b/tests/sleep.c
@@ -1,5 +1,5 @@
/* Pausing execution of the current thread.
- Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007.
This file is free software: you can redistribute it and/or modify
@@ -58,9 +58,8 @@ rpl_sleep (unsigned int seconds)
const unsigned int limit = 24 * 24 * 60 * 60;
while (limit < seconds)
{
- unsigned int result;
seconds -= limit;
- result = sleep (limit);
+ unsigned int result = sleep (limit);
if (result)
return seconds + result;
}
diff --git a/tests/snan.h b/tests/snan.h
index 2d955abc..b5e00b63 100644
--- a/tests/snan.h
+++ b/tests/snan.h
@@ -1,5 +1,5 @@
/* Macros for signalling not-a-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
@@ -216,7 +216,7 @@ construct_memory_SNaNl (long double quiet_value)
{
memory_long_double m;
m.value = quiet_value;
- #if defined __powerpc__ && LDBL_MANT_DIG == 106
+ #if defined _ARCH_PPC && LDBL_MANT_DIG == 106
/* This is PowerPC "double double", a pair of two doubles. Inf and NaN are
represented as the corresponding 64-bit IEEE values in the first double;
the second is ignored. Manipulate only the first double. */
diff --git a/tests/socket.c b/tests/socket.c
index 5b252409..7c6aa115 100644
--- a/tests/socket.c
+++ b/tests/socket.c
@@ -1,6 +1,6 @@
/* socket.c --- wrappers for Windows socket function
- 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
@@ -35,13 +35,11 @@
int
rpl_socket (int domain, int type, int protocol)
{
- SOCKET fh;
-
gl_sockets_startup (SOCKETS_1_1);
/* We have to use WSASocket() to create non-overlapped IO sockets.
Overlapped IO sockets cannot be used with read/write. */
- fh = WSASocket (domain, type, protocol, NULL, 0, 0);
+ SOCKET fh = WSASocket (domain, type, protocol, NULL, 0, 0);
if (fh == INVALID_SOCKET)
{
diff --git a/tests/sockets.c b/tests/sockets.c
index 7accfdd3..ce98698d 100644
--- a/tests/sockets.c
+++ b/tests/sockets.c
@@ -1,6 +1,6 @@
/* sockets.c --- wrappers for Windows socket functions
- 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
@@ -46,11 +46,10 @@ close_fd_maybe_socket (const struct fd_hook *remaining_list,
our calls to closesocket() and the primary close(), some other thread
could make system calls that allocate precisely the same HANDLE value
as sock; then the primary close() would call CloseHandle() on it. */
- SOCKET sock;
- WSANETWORKEVENTS ev;
/* Test whether fd refers to a socket. */
- sock = FD_TO_SOCKET (fd);
+ SOCKET sock = FD_TO_SOCKET (fd);
+ WSANETWORKEVENTS ev;
ev.lNetworkEvents = 0xDEADBEEF;
WSAEnumNetworkEvents (sock, NULL, &ev);
if (ev.lNetworkEvents != 0xDEADBEEF)
@@ -83,11 +82,9 @@ ioctl_fd_maybe_socket (const struct fd_hook *remaining_list,
gl_ioctl_fn primary,
int fd, int request, void *arg)
{
- SOCKET sock;
- WSANETWORKEVENTS ev;
-
/* Test whether fd refers to a socket. */
- sock = FD_TO_SOCKET (fd);
+ SOCKET sock = FD_TO_SOCKET (fd);
+ WSANETWORKEVENTS ev;
ev.lNetworkEvents = 0xDEADBEEF;
WSAEnumNetworkEvents (sock, NULL, &ev);
if (ev.lNetworkEvents != 0xDEADBEEF)
@@ -119,9 +116,7 @@ gl_sockets_startup (_GL_UNUSED int version)
if (version > initialized_sockets_version)
{
WSADATA data;
- int err;
-
- err = WSAStartup (version, &data);
+ int err = WSAStartup (version, &data);
if (err != 0)
return 1;
@@ -146,13 +141,11 @@ int
gl_sockets_cleanup (void)
{
#if WINDOWS_SOCKETS
- int err;
-
initialized_sockets_version = 0;
unregister_fd_hook (&fd_sockets_hook);
- err = WSACleanup ();
+ int err = WSACleanup ();
if (err != 0)
return 1;
#endif
diff --git a/tests/sockets.h b/tests/sockets.h
index 5be5d3f6..ed12cf9a 100644
--- a/tests/sockets.h
+++ b/tests/sockets.h
@@ -1,6 +1,6 @@
/* sockets.h - wrappers for Windows socket functions
- 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/tests/stat-time.c b/tests/stat-time.c
index fa93e16c..9dcdc377 100644
--- a/tests/stat-time.c
+++ b/tests/stat-time.c
@@ -1,6 +1,6 @@
/* stat-related time functions.
- Copyright (C) 2012-2025 Free Software Foundation, Inc.
+ Copyright (C) 2012-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -15,7 +15,6 @@
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_STAT_TIME_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "stat-time.h"
diff --git a/tests/stat-time.h b/tests/stat-time.h
index 38315b9f..45364316 100644
--- a/tests/stat-time.h
+++ b/tests/stat-time.h
@@ -1,6 +1,6 @@
/* stat-related time functions.
- Copyright (C) 2005, 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 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
@@ -232,8 +232,7 @@ stat_time_normalize (int result, _GL_UNUSED struct stat *st)
short int const ts_off[] = { STAT_TIMESPEC_OFFSETOF (st_atim),
STAT_TIMESPEC_OFFSETOF (st_mtim),
STAT_TIMESPEC_OFFSETOF (st_ctim) };
- int i;
- for (i = 0; i < sizeof ts_off / sizeof *ts_off; i++)
+ for (int i = 0; i < sizeof ts_off / sizeof *ts_off; i++)
{
struct timespec *ts = (struct timespec *) ((char *) st + ts_off[i]);
long int q = ts->tv_nsec / timespec_hz;
diff --git a/tests/stat-w32.c b/tests/stat-w32.c
index 8da8fe5c..583ef09b 100644
--- a/tests/stat-w32.c
+++ b/tests/stat-w32.c
@@ -1,5 +1,5 @@
/* Core of implementation of fstat and stat for native Windows.
- 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
@@ -112,11 +112,11 @@ initialize (void)
struct timespec
_gl_convert_FILETIME_to_timespec (const FILETIME *ft)
{
- struct timespec result;
/* FILETIME: <https://docs.microsoft.com/en-us/windows/desktop/api/minwinbase/ns-minwinbase-filetime> */
unsigned long long since_1601 =
((unsigned long long) ft->dwHighDateTime << 32)
| (unsigned long long) ft->dwLowDateTime;
+ struct timespec result;
if (since_1601 == 0)
{
result.tv_sec = 0;
@@ -289,8 +289,7 @@ _gl_fstat_by_handle (HANDLE h, const char *path, struct stat *buf)
&& (path = fpath, 1)))
{
const char *last_dot = NULL;
- const char *p;
- for (p = path; *p != '\0'; p++)
+ for (const char *p = path; *p != '\0'; p++)
if (*p == '.')
last_dot = p;
if (last_dot != NULL)
diff --git a/tests/stat-w32.h b/tests/stat-w32.h
index c70c1be3..f5cc82f4 100644
--- a/tests/stat-w32.h
+++ b/tests/stat-w32.h
@@ -1,5 +1,5 @@
/* Core of implementation of fstat and stat for native Windows.
- 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/tests/stat.c b/tests/stat.c
index f4cc02e9..da6a9862 100644
--- a/tests/stat.c
+++ b/tests/stat.c
@@ -1,5 +1,5 @@
/* Work around platform bugs in stat.
- 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
@@ -287,8 +287,7 @@ rpl_stat (char const *name, struct stat *buf)
if (info.nFileSizeHigh > 0 || info.nFileSizeLow > 0)
{
const char *last_dot = NULL;
- const char *p;
- for (p = info.cFileName; *p != '\0'; p++)
+ for (const char *p = info.cFileName; *p != '\0'; p++)
if (*p == '.')
last_dot = p;
if (last_dot != NULL)
diff --git a/tests/stdio-consolesafe.c b/tests/stdio-consolesafe.c
index fbea20be..f634de13 100644
--- a/tests/stdio-consolesafe.c
+++ b/tests/stdio-consolesafe.c
@@ -1,5 +1,5 @@
/* msvcrt workarounds.
- 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
@@ -74,6 +74,59 @@ gl_consolesafe_fwrite (const void *ptr, size_t size, size_t nmemb, FILE *fp)
#if defined __MINGW32__ && __USE_MINGW_ANSI_STDIO
# include "fseterr.h"
+# include <stdarg.h>
+
+# if !HAVE_VASPRINTF
+
+# include <errno.h>
+
+/* The old mingw (before mingw-w64) does not have the vasprintf function.
+ Define a suitable replacement here, that supports the same format
+ specifiers as the mingw *printf functions. */
+
+static int
+local_vasprintf (char **resultp, const char *format, va_list args)
+{
+ /* First try: Use a stack-allocated buffer. */
+ char buf[2048];
+ size_t bufsize = sizeof (buf);
+ int ret = __mingw_vsnprintf (buf, bufsize, format, args);
+ if (ret < 0)
+ return -1;
+ size_t nbytes = ret;
+ char *mem = (char *) malloc (nbytes + 1);
+ if (mem == NULL)
+ {
+ errno = ENOMEM;
+ return -1;
+ }
+ if (ret < bufsize)
+ {
+ /* The buffer was sufficiently large. */
+ memcpy (mem, buf, nbytes + 1);
+ }
+ else
+ {
+ /* Second try: Use the heap-allocated memory. */
+ ret = __mingw_vsnprintf (mem, nbytes + 1, format, args);
+ if (ret < 0)
+ {
+ int saved_errno = errno;
+ free (mem);
+ errno = saved_errno;
+ return -1;
+ }
+ if (ret != nbytes)
+ abort ();
+ }
+ *resultp = mem;
+ return nbytes;
+}
+
+# undef vasprintf
+# define vasprintf local_vasprintf
+
+# endif
/* Bypass the functions __mingw_[v][f]printf, that trigger a bug in msvcrt,
but without losing the support for modern format specifiers added by
@@ -83,8 +136,8 @@ int
gl_consolesafe_fprintf (FILE *restrict fp, const char *restrict format, ...)
{
va_list args;
- char *tmpstring;
va_start (args, format);
+ char *tmpstring;
int result = vasprintf (&tmpstring, format, args);
va_end (args);
if (result >= 0)
@@ -101,8 +154,8 @@ int
gl_consolesafe_printf (const char *restrict format, ...)
{
va_list args;
- char *tmpstring;
va_start (args, format);
+ char *tmpstring;
int result = vasprintf (&tmpstring, format, args);
va_end (args);
if (result >= 0)
diff --git a/tests/stdio-read.c b/tests/stdio-read.c
index 70452b48..0ca956dc 100644
--- a/tests/stdio-read.c
+++ b/tests/stdio-read.c
@@ -1,5 +1,5 @@
/* POSIX compatible FILE stream read function.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software: you can redistribute it and/or modify
@@ -52,9 +52,8 @@
return (EXPRESSION); \
else \
{ \
- RETTYPE ret; \
SetLastError (0); \
- ret = (EXPRESSION); \
+ RETTYPE ret = (EXPRESSION); \
if (FAILED) \
{ \
if (GetLastError () == ERROR_NO_DATA && ferror (stream)) \
@@ -86,11 +85,9 @@
int
scanf (const char *format, ...)
{
- int retval;
va_list args;
-
va_start (args, format);
- retval = vfscanf (stdin, format, args);
+ int retval = vfscanf (stdin, format, args);
va_end (args);
return retval;
@@ -103,11 +100,9 @@ scanf (const char *format, ...)
int
fscanf (FILE *stream, const char *format, ...)
{
- int retval;
va_list args;
-
va_start (args, format);
- retval = vfscanf (stream, format, args);
+ int retval = vfscanf (stream, format, args);
va_end (args);
return retval;
diff --git a/tests/stdio-write.c b/tests/stdio-write.c
index 59ba8fc4..fc7f74fe 100644
--- a/tests/stdio-write.c
+++ b/tests/stdio-write.c
@@ -1,5 +1,5 @@
/* POSIX compatible FILE stream write function.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This file is free software: you can redistribute it and/or modify
@@ -107,10 +107,9 @@
return (EXPRESSION); \
else \
{ \
- RETTYPE ret; \
CLEAR_ERRNO \
CLEAR_LastError \
- ret = (EXPRESSION); \
+ RETTYPE ret = (EXPRESSION); \
if (FAILED) \
{ \
HANDLE_ENOSPC \
@@ -124,11 +123,9 @@
int
printf (const char *format, ...)
{
- int retval;
va_list args;
-
va_start (args, format);
- retval = vfprintf (stdout, format, args);
+ int retval = vfprintf (stdout, format, args);
va_end (args);
return retval;
@@ -139,11 +136,9 @@ printf (const char *format, ...)
int
fprintf (FILE *stream, const char *format, ...)
{
- int retval;
va_list args;
-
va_start (args, format);
- retval = vfprintf (stream, format, args);
+ int retval = vfprintf (stream, format, args);
va_end (args);
return retval;
diff --git a/tests/stdio.in.h b/tests/stdio.in.h
index f3ab7969..33b0b8e4 100644
--- a/tests/stdio.in.h
+++ b/tests/stdio.in.h
@@ -1,6 +1,6 @@
/* A GNU-like <stdio.h>.
- Copyright (C) 2004, 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2004, 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
@@ -338,7 +338,7 @@ _GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *restrict format, ...));
_GL_CXXALIASWARN (dprintf);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef dprintf
+# undef dprintf /* https://lists.gnu.org/r/bug-gnulib/2025-11/msg00254.html */
# if HAVE_RAW_DECL_DPRINTF
_GL_WARN_ON_USE (dprintf, "dprintf is unportable - "
"use gnulib module dprintf for portability");
@@ -360,7 +360,6 @@ _GL_CXXALIAS_SYS (fclose, int, (FILE *stream));
_GL_CXXALIASWARN (fclose);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef fclose
/* Assume fclose is always declared. */
_GL_WARN_ON_USE (fclose, "fclose is not always POSIX compliant - "
"use gnulib module fclose for portable POSIX compliance");
@@ -447,7 +446,6 @@ _GL_FUNCDECL_SYS (fdopen, FILE *,
# endif
# endif
# if defined GNULIB_POSIXCHECK
-# undef fdopen
/* Assume fdopen is always declared. */
_GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - "
"use gnulib module fdopen for portability");
@@ -488,7 +486,6 @@ _GL_CXXALIAS_SYS (fflush, int, (FILE *gl_stream));
_GL_CXXALIASWARN (fflush);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef fflush
/* Assume fflush is always declared. */
_GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - "
"use gnulib module fflush for portable POSIX compliance");
@@ -581,7 +578,6 @@ _GL_FUNCDECL_SYS (fopen, FILE *,
_GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1));
# endif
# if defined GNULIB_POSIXCHECK
-# undef fopen
/* Assume fopen is always declared. */
_GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX compliant - "
"use gnulib module fopen for portability");
@@ -641,9 +637,6 @@ _GL_CXXALIASWARN (fprintf);
# endif
#endif
#if !@GNULIB_FPRINTF_POSIX@ && defined GNULIB_POSIXCHECK
-# if !GNULIB_overrides_fprintf
-# undef fprintf
-# endif
/* Assume fprintf is always declared. */
_GL_WARN_ON_USE (fprintf, "fprintf is not always POSIX compliant - "
"use gnulib module fprintf-posix for portable "
@@ -673,7 +666,6 @@ _GL_CXXALIAS_SYS (fpurge, int, (FILE *gl_stream));
_GL_CXXALIASWARN (fpurge);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef fpurge
# if HAVE_RAW_DECL_FPURGE
_GL_WARN_ON_USE (fpurge, "fpurge is not always present - "
"use gnulib module fpurge for portability");
@@ -761,7 +753,6 @@ _GL_CXXALIAS_SYS (freopen, FILE *,
_GL_CXXALIASWARN (freopen);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef freopen
/* Assume freopen is always declared. */
_GL_WARN_ON_USE (freopen,
"freopen on native Windows platforms is not POSIX compliant - "
@@ -868,7 +859,6 @@ _GL_CXXALIASWARN (fseeko);
#elif defined GNULIB_POSIXCHECK
# define _GL_FSEEK_WARN /* Category 1, above. */
# undef fseek
-# undef fseeko
# if HAVE_RAW_DECL_FSEEKO
_GL_WARN_ON_USE (fseeko, "fseeko is unportable - "
"use gnulib module fseeko for portability");
@@ -932,7 +922,6 @@ _GL_CXXALIASWARN (ftello);
#elif defined GNULIB_POSIXCHECK
# define _GL_FTELL_WARN /* Category 1, above. */
# undef ftell
-# undef ftello
# if HAVE_RAW_DECL_FTELLO
_GL_WARN_ON_USE (ftello, "ftello is unportable - "
"use gnulib module ftello for portability");
@@ -1044,6 +1033,17 @@ _GL_CXXALIASWARN (getchar);
# undef getdelim
# define getdelim rpl_getdelim
# endif
+# ifndef __has_feature
+# define __has_feature(a) 0
+# endif
+# if __GLIBC__ >= 2 && !(defined __SANITIZE_ADDRESS__ \
+ || __has_feature (address_sanitizer))
+/* Arrange for the inline definition of getline() in <bits/stdio.h>
+ to call our getdelim() override. Do not use the __getdelim symbol
+ if address sanitizer is in use, otherwise it may be overridden by
+ __interceptor_trampoline___getdelim. */
+# define rpl_getdelim __getdelim
+# endif
_GL_FUNCDECL_RPL (getdelim, ssize_t,
(char **restrict lineptr, size_t *restrict linesize,
int delimiter,
@@ -1070,7 +1070,6 @@ _GL_CXXALIAS_SYS (getdelim, ssize_t,
_GL_CXXALIASWARN (getdelim);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getdelim
# if HAVE_RAW_DECL_GETDELIM
_GL_WARN_ON_USE (getdelim, "getdelim is unportable - "
"use gnulib module getdelim for portability");
@@ -1085,14 +1084,27 @@ _GL_WARN_ON_USE (getdelim, "getdelim is unportable - "
Return the number of bytes read and stored at *LINEPTR (not including the
NUL terminator), or -1 on error or EOF. */
# if @REPLACE_GETLINE@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-# undef getline
-# define getline rpl_getline
-# endif
_GL_FUNCDECL_RPL (getline, ssize_t,
(char **restrict lineptr, size_t *restrict linesize,
FILE *restrict stream),
_GL_ARG_NONNULL ((1, 2, 3)) _GL_ATTRIBUTE_NODISCARD);
+# if defined __cplusplus
+/* The C++ standard library defines std::basic_istream::getline in <istream>
+ or <string>. */
+# if !(__GLIBC__ >= 2)
+extern "C" {
+inline ssize_t
+getline (char **restrict lineptr, size_t *restrict linesize,
+ FILE *restrict stream)
+{
+ return rpl_getline (lineptr, linesize, stream);
+}
+}
+# endif
+# else
+# undef getline
+# define getline rpl_getline
+# endif
_GL_CXXALIAS_RPL (getline, ssize_t,
(char **restrict lineptr, size_t *restrict linesize,
FILE *restrict stream));
@@ -1111,7 +1123,6 @@ _GL_CXXALIAS_SYS (getline, ssize_t,
_GL_CXXALIASWARN (getline);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getline
# if HAVE_RAW_DECL_GETLINE
_GL_WARN_ON_USE (getline, "getline is unportable - "
"use gnulib module getline for portability");
@@ -1121,7 +1132,6 @@ _GL_WARN_ON_USE (getline, "getline is unportable - "
/* It is very rare that the developer ever has full control of stdin,
so any use of gets warrants an unconditional warning; besides, C11
removed it. */
-#undef gets
#if HAVE_RAW_DECL_GETS && !defined __cplusplus
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
#endif
@@ -1234,7 +1244,6 @@ _GL_FUNCDECL_SYS (pclose, int, (FILE *stream), _GL_ARG_NONNULL ((1)));
_GL_CXXALIAS_SYS (pclose, int, (FILE *stream));
_GL_CXXALIASWARN (pclose);
#elif defined GNULIB_POSIXCHECK
-# undef pclose
# if HAVE_RAW_DECL_PCLOSE
_GL_WARN_ON_USE (pclose, "pclose is unportable - "
"use gnulib module pclose for more portability");
@@ -1258,7 +1267,6 @@ _GL_CXXALIAS_SYS (perror, void, (const char *string));
_GL_CXXALIASWARN (perror);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef perror
/* Assume perror is always declared. */
_GL_WARN_ON_USE (perror, "perror is not always POSIX compliant - "
"use gnulib module perror for portability");
@@ -1295,7 +1303,6 @@ _GL_FUNCDECL_SYS (popen, FILE *,
_GL_ATTRIBUTE_MALLOC);
# endif
# if defined GNULIB_POSIXCHECK
-# undef popen
# if HAVE_RAW_DECL_POPEN
_GL_WARN_ON_USE (popen, "popen is buggy on some platforms - "
"use gnulib module popen or pipe for more portability");
@@ -1368,9 +1375,6 @@ _GL_CXXALIASWARN (printf);
# endif
#endif
#if !@GNULIB_PRINTF_POSIX@ && defined GNULIB_POSIXCHECK
-# if !GNULIB_overrides_printf
-# undef printf
-# endif
/* Assume printf is always declared. */
_GL_WARN_ON_USE (printf, "printf is not always POSIX compliant - "
"use gnulib module printf-posix for portable "
@@ -1464,7 +1468,6 @@ _GL_CXXALIAS_SYS (remove, int, (const char *name));
_GL_CXXALIASWARN (remove);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef remove
/* Assume remove is always declared. */
_GL_WARN_ON_USE (remove, "remove cannot handle directories on some platforms - "
"use gnulib module remove for more portability");
@@ -1489,7 +1492,6 @@ _GL_CXXALIAS_SYS (rename, int,
_GL_CXXALIASWARN (rename);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef rename
/* Assume rename is always declared. */
_GL_WARN_ON_USE (rename, "rename is buggy on some platforms - "
"use gnulib module rename for more portability");
@@ -1517,7 +1519,6 @@ _GL_CXXALIAS_SYS (renameat, int,
# endif
_GL_CXXALIASWARN (renameat);
#elif defined GNULIB_POSIXCHECK
-# undef renameat
# if HAVE_RAW_DECL_RENAMEAT
_GL_WARN_ON_USE (renameat, "renameat is not portable - "
"use gnulib module renameat for portability");
@@ -1611,7 +1612,6 @@ _GL_CXXALIAS_SYS (snprintf, int,
_GL_CXXALIASWARN (snprintf);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef snprintf
# if HAVE_RAW_DECL_SNPRINTF
_GL_WARN_ON_USE (snprintf, "snprintf is unportable - "
"use gnulib module snprintf for portability");
@@ -1667,7 +1667,6 @@ _GL_CXXALIAS_SYS (sprintf, int,
_GL_CXXALIASWARN (sprintf);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef sprintf
/* Assume sprintf is always declared. */
_GL_WARN_ON_USE (sprintf, "sprintf is not always POSIX compliant - "
"use gnulib module sprintf-posix for portable "
@@ -1722,7 +1721,6 @@ _GL_FUNCDECL_SYS (tmpfile, FILE *, (void),
_GL_ATTRIBUTE_MALLOC);
# endif
# if defined GNULIB_POSIXCHECK
-# undef tmpfile
# if HAVE_RAW_DECL_TMPFILE
_GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - "
"use gnulib module tmpfile for portability");
@@ -1856,7 +1854,6 @@ _GL_CXXALIAS_SYS_CAST (vdprintf, int,
_GL_CXXALIASWARN (vdprintf);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef vdprintf
# if HAVE_RAW_DECL_VDPRINTF
_GL_WARN_ON_USE (vdprintf, "vdprintf is unportable - "
"use gnulib module vdprintf for portability");
@@ -1925,9 +1922,6 @@ _GL_CXXALIASWARN (vfprintf);
# endif
#endif
#if !@GNULIB_VFPRINTF_POSIX@ && defined GNULIB_POSIXCHECK
-# if !GNULIB_overrides_vfprintf
-# undef vfprintf
-# endif
/* Assume vfprintf is always declared. */
_GL_WARN_ON_USE (vfprintf, "vfprintf is not always POSIX compliant - "
"use gnulib module vfprintf-posix for portable "
@@ -2011,9 +2005,6 @@ _GL_CXXALIASWARN (vprintf);
# endif
#endif
#if !@GNULIB_VPRINTF_POSIX@ && defined GNULIB_POSIXCHECK
-# if !GNULIB_overrides_vprintf
-# undef vprintf
-# endif
/* Assume vprintf is always declared. */
_GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX compliant - "
"use gnulib module vprintf-posix for portable "
@@ -2092,7 +2083,6 @@ _GL_CXXALIAS_SYS (vsnprintf, int,
_GL_CXXALIASWARN (vsnprintf);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef vsnprintf
# if HAVE_RAW_DECL_VSNPRINTF
_GL_WARN_ON_USE (vsnprintf, "vsnprintf is unportable - "
"use gnulib module vsnprintf for portability");
@@ -2145,7 +2135,6 @@ _GL_CXXALIAS_SYS_CAST (vsprintf, int,
_GL_CXXALIASWARN (vsprintf);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef vsprintf
/* Assume vsprintf is always declared. */
_GL_WARN_ON_USE (vsprintf, "vsprintf is not always POSIX compliant - "
"use gnulib module vsprintf-posix for portable "
diff --git a/tests/stpcpy.c b/tests/stpcpy.c
index 6d5458c2..862de088 100644
--- a/tests/stpcpy.c
+++ b/tests/stpcpy.c
@@ -1,5 +1,5 @@
/* stpcpy.c -- copy a string and return pointer to end of new string
- Copyright (C) 1992, 1995, 1997-1998, 2006, 2009-2025 Free Software
+ Copyright (C) 1992, 1995, 1997-1998, 2006, 2009-2026 Free Software
Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C Library.
diff --git a/tests/str_endswith.c b/tests/str_endswith.c
index cd2cc9e1..e38569ac 100644
--- a/tests/str_endswith.c
+++ b/tests/str_endswith.c
@@ -1,5 +1,5 @@
/* str_endswith function.
- 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/tests/str_startswith.c b/tests/str_startswith.c
index a312728b..2c650cea 100644
--- a/tests/str_startswith.c
+++ b/tests/str_startswith.c
@@ -1,5 +1,5 @@
/* str_startswith function.
- 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/tests/strerror-override.c b/tests/strerror-override.c
index 3cc25905..a07ed62f 100644
--- a/tests/strerror-override.c
+++ b/tests/strerror-override.c
@@ -1,6 +1,6 @@
/* strerror-override.c --- POSIX compatible system error routine
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/tests/strerror-override.h b/tests/strerror-override.h
index 653ea0ad..1e84bdbc 100644
--- a/tests/strerror-override.h
+++ b/tests/strerror-override.h
@@ -1,6 +1,6 @@
/* strerror-override.h --- POSIX compatible system error routine
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 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
diff --git a/tests/strerror.c b/tests/strerror.c
index 72572ae4..c451f055 100644
--- a/tests/strerror.c
+++ b/tests/strerror.c
@@ -1,6 +1,6 @@
/* strerror.c --- POSIX compatible system error routine
- 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
@@ -42,7 +42,6 @@ strerror (int n)
#undef strerror
{
static char buf[STACKBUF_LEN];
- size_t len;
/* Cast away const, due to the historical signature of strerror;
callers should not be modifying the string. */
@@ -67,7 +66,7 @@ strerror (int n)
}
/* Fix STACKBUF_LEN if this ever aborts. */
- len = strlen (msg);
+ size_t len = strlen (msg);
if (sizeof buf <= len)
abort ();
diff --git a/tests/strerror_r.c b/tests/strerror_r.c
index 1e6974e3..ec7bfe6b 100644
--- a/tests/strerror_r.c
+++ b/tests/strerror_r.c
@@ -1,6 +1,6 @@
/* strerror_r.c --- POSIX compatible system error routine
- Copyright (C) 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 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
@@ -103,10 +103,8 @@ static int
local_snprintf (char *buf, size_t buflen, const char *format, ...)
{
va_list args;
- int result;
-
va_start (args, format);
- result = _vsnprintf (buf, buflen, format, args);
+ int result = _vsnprintf (buf, buflen, format, args);
va_end (args);
if (buflen > 0 && (result < 0 || result >= buflen))
buf[buflen - 1] = '\0';
@@ -222,9 +220,8 @@ strerror_r (int errnum, char *buf, size_t buflen)
if (!ret && strlen (buf) == buflen - 1)
{
char stackbuf[STACKBUF_LEN];
- size_t len;
strerror_r (errnum, stackbuf, sizeof stackbuf);
- len = strlen (stackbuf);
+ size_t len = strlen (stackbuf);
/* STACKBUF_LEN should have been large enough. */
if (len + 1 == sizeof stackbuf)
abort ();
diff --git a/tests/symlink.c b/tests/symlink.c
index 8839a981..80ac16ce 100644
--- a/tests/symlink.c
+++ b/tests/symlink.c
@@ -1,5 +1,5 @@
/* Stub for symlink().
- 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/tests/sys_ioctl.in.h b/tests/sys_ioctl.in.h
index 208c807e..9fa64a25 100644
--- a/tests/sys_ioctl.in.h
+++ b/tests/sys_ioctl.in.h
@@ -1,5 +1,5 @@
/* Substitute for and wrapper around <sys/ioctl.h>.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -76,7 +76,6 @@ _GL_CXXALIASWARN (ioctl);
# define ioctl ioctl_used_without_requesting_gnulib_module_ioctl
# endif
#elif defined GNULIB_POSIXCHECK
-# undef ioctl
# if HAVE_RAW_DECL_IOCTL
_GL_WARN_ON_USE (ioctl, "ioctl does not portably work on sockets - "
"use gnulib module ioctl for portability");
diff --git a/tests/sys_select.in.h b/tests/sys_select.in.h
index 69c2fa9f..6a85efe8 100644
--- a/tests/sys_select.in.h
+++ b/tests/sys_select.in.h
@@ -1,5 +1,5 @@
/* Substitute for <sys/select.h>.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -152,11 +152,10 @@ typedef int suseconds_t;
static int
rpl_fd_isset (SOCKET fd, const fd_set * set)
{
- u_int i;
if (set == NULL)
return 0;
- for (i = 0; i < set->fd_count; i++)
+ for (u_int i = 0; i < set->fd_count; i++)
if (set->fd_array[i] == fd)
return 1;
@@ -284,7 +283,6 @@ _GL_CXXALIAS_SYS_CAST (pselect, int,
_GL_CXXALIASWARN (pselect);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef pselect
# if HAVE_RAW_DECL_PSELECT
_GL_WARN_ON_USE (pselect, "pselect is not portable - "
"use gnulib module pselect for portability");
@@ -317,7 +315,6 @@ _GL_CXXALIASWARN (select);
# define select select_used_without_requesting_gnulib_module_select
# endif
#elif defined GNULIB_POSIXCHECK
-# undef select
# if HAVE_RAW_DECL_SELECT
_GL_WARN_ON_USE (select, "select is not always POSIX compliant - "
"use gnulib module select for portability");
diff --git a/tests/sys_socket.c b/tests/sys_socket.c
index efd36610..023a7c55 100644
--- a/tests/sys_socket.c
+++ b/tests/sys_socket.c
@@ -1,6 +1,6 @@
/* Inline functions for <sys/socket.h>.
- Copyright (C) 2012-2025 Free Software Foundation, Inc.
+ Copyright (C) 2012-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
diff --git a/tests/sys_socket.in.h b/tests/sys_socket.in.h
index 8632c66d..c19b7461 100644
--- a/tests/sys_socket.in.h
+++ b/tests/sys_socket.in.h
@@ -1,6 +1,6 @@
/* Provide a sys/socket header file for systems lacking it (read: MinGW)
and for systems where it is incomplete.
- Copyright (C) 2005-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005-2026 Free Software Foundation, Inc.
Written by Simon Josefsson.
This file is free software: you can redistribute it and/or modify
@@ -235,11 +235,10 @@ struct msghdr {
_GL_SYS_SOCKET_INLINE int
rpl_fd_isset (SOCKET fd, fd_set * set)
{
- u_int i;
if (set == NULL)
return 0;
- for (i = 0; i < set->fd_count; i++)
+ for (u_int i = 0; i < set->fd_count; i++)
if (set->fd_array[i] == fd)
return 1;
@@ -304,7 +303,6 @@ _GL_CXXALIASWARN (socket);
# define socket socket_used_without_requesting_gnulib_module_socket
# endif
#elif defined GNULIB_POSIXCHECK
-# undef socket
# if HAVE_RAW_DECL_SOCKET
_GL_WARN_ON_USE (socket, "socket is not always POSIX compliant - "
"use gnulib module socket for portability");
@@ -336,7 +334,6 @@ _GL_CXXALIASWARN (connect);
# define connect connect_used_without_requesting_gnulib_module_connect
# endif
#elif defined GNULIB_POSIXCHECK
-# undef connect
# if HAVE_RAW_DECL_CONNECT
_GL_WARN_ON_USE (connect, "connect is not always POSIX compliant - "
"use gnulib module connect for portability");
@@ -374,7 +371,6 @@ _GL_CXXALIASWARN (accept);
# define accept accept_used_without_requesting_gnulib_module_accept
# endif
#elif defined GNULIB_POSIXCHECK
-# undef accept
# if HAVE_RAW_DECL_ACCEPT
_GL_WARN_ON_USE (accept, "accept is not always POSIX compliant - "
"use gnulib module accept for portability");
@@ -406,7 +402,6 @@ _GL_CXXALIASWARN (bind);
# define bind bind_used_without_requesting_gnulib_module_bind
# endif
#elif defined GNULIB_POSIXCHECK
-# undef bind
# if HAVE_RAW_DECL_BIND
_GL_WARN_ON_USE (bind, "bind is not always POSIX compliant - "
"use gnulib module bind for portability");
@@ -442,7 +437,6 @@ _GL_CXXALIASWARN (getpeername);
# define getpeername getpeername_used_without_requesting_gnulib_module_getpeername
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getpeername
# if HAVE_RAW_DECL_GETPEERNAME
_GL_WARN_ON_USE (getpeername, "getpeername is not always POSIX compliant - "
"use gnulib module getpeername for portability");
@@ -478,7 +472,6 @@ _GL_CXXALIASWARN (getsockname);
# define getsockname getsockname_used_without_requesting_gnulib_module_getsockname
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getsockname
# if HAVE_RAW_DECL_GETSOCKNAME
_GL_WARN_ON_USE (getsockname, "getsockname is not always POSIX compliant - "
"use gnulib module getsockname for portability");
@@ -512,7 +505,6 @@ _GL_CXXALIASWARN (getsockopt);
# define getsockopt getsockopt_used_without_requesting_gnulib_module_getsockopt
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getsockopt
# if HAVE_RAW_DECL_GETSOCKOPT
_GL_WARN_ON_USE (getsockopt, "getsockopt is not always POSIX compliant - "
"use gnulib module getsockopt for portability");
@@ -537,7 +529,6 @@ _GL_CXXALIASWARN (listen);
# define listen listen_used_without_requesting_gnulib_module_listen
# endif
#elif defined GNULIB_POSIXCHECK
-# undef listen
# if HAVE_RAW_DECL_LISTEN
_GL_WARN_ON_USE (listen, "listen is not always POSIX compliant - "
"use gnulib module listen for portability");
@@ -566,7 +557,6 @@ _GL_CXXALIASWARN (recv);
# define recv recv_used_without_requesting_gnulib_module_recv
# endif
#elif defined GNULIB_POSIXCHECK
-# undef recv
# if HAVE_RAW_DECL_RECV
_GL_WARN_ON_USE (recv, "recv is not always POSIX compliant - "
"use gnulib module recv for portability");
@@ -598,7 +588,6 @@ _GL_CXXALIASWARN (send);
# define send send_used_without_requesting_gnulib_module_send
# endif
#elif defined GNULIB_POSIXCHECK
-# undef send
# if HAVE_RAW_DECL_SEND
_GL_WARN_ON_USE (send, "send is not always POSIX compliant - "
"use gnulib module send for portability");
@@ -637,7 +626,6 @@ _GL_CXXALIASWARN (recvfrom);
# define recvfrom recvfrom_used_without_requesting_gnulib_module_recvfrom
# endif
#elif defined GNULIB_POSIXCHECK
-# undef recvfrom
# if HAVE_RAW_DECL_RECVFROM
_GL_WARN_ON_USE (recvfrom, "recvfrom is not always POSIX compliant - "
"use gnulib module recvfrom for portability");
@@ -671,7 +659,6 @@ _GL_CXXALIASWARN (sendto);
# define sendto sendto_used_without_requesting_gnulib_module_sendto
# endif
#elif defined GNULIB_POSIXCHECK
-# undef sendto
# if HAVE_RAW_DECL_SENDTO
_GL_WARN_ON_USE (sendto, "sendto is not always POSIX compliant - "
"use gnulib module sendto for portability");
@@ -703,7 +690,6 @@ _GL_CXXALIASWARN (setsockopt);
# define setsockopt setsockopt_used_without_requesting_gnulib_module_setsockopt
# endif
#elif defined GNULIB_POSIXCHECK
-# undef setsockopt
# if HAVE_RAW_DECL_SETSOCKOPT
_GL_WARN_ON_USE (setsockopt, "setsockopt is not always POSIX compliant - "
"use gnulib module setsockopt for portability");
@@ -728,7 +714,6 @@ _GL_CXXALIASWARN (shutdown);
# define shutdown shutdown_used_without_requesting_gnulib_module_shutdown
# endif
#elif defined GNULIB_POSIXCHECK
-# undef shutdown
# if HAVE_RAW_DECL_SHUTDOWN
_GL_WARN_ON_USE (shutdown, "shutdown is not always POSIX compliant - "
"use gnulib module shutdown for portability");
@@ -761,7 +746,6 @@ _GL_CXXALIAS_SYS (accept4, int,
# endif
_GL_CXXALIASWARN (accept4);
#elif defined GNULIB_POSIXCHECK
-# undef accept4
# if HAVE_RAW_DECL_ACCEPT4
_GL_WARN_ON_USE (accept4, "accept4 is unportable - "
"use gnulib module accept4 for portability");
diff --git a/tests/sys_stat.in.h b/tests/sys_stat.in.h
index 8f676cb3..deed21cd 100644
--- a/tests/sys_stat.in.h
+++ b/tests/sys_stat.in.h
@@ -1,5 +1,5 @@
/* Provide a more complete sys/stat.h header file.
- 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
@@ -451,7 +451,6 @@ _GL_CXXALIAS_SYS (chmod, int, (const char *filename, mode_t mode));
# endif
_GL_CXXALIASWARN (chmod);
#elif defined GNULIB_POSIXCHECK
-# undef chmod
# if HAVE_RAW_DECL_CHMOD
_GL_WARN_ON_USE (chmod, "chmod has portability problems - "
"use gnulib module chmod for portability");
@@ -496,7 +495,6 @@ _GL_CXXALIAS_SYS (fchmodat, int,
# endif
_GL_CXXALIASWARN (fchmodat);
#elif defined GNULIB_POSIXCHECK
-# undef fchmodat
# if HAVE_RAW_DECL_FCHMODAT
_GL_WARN_ON_USE (fchmodat, "fchmodat is not portable - "
"use gnulib module openat for portability");
@@ -528,7 +526,6 @@ _GL_CXXALIASWARN (fstat);
/* Above, we define stat to _stati64. */
# define fstat _fstati64
#elif defined GNULIB_POSIXCHECK
-# undef fstat
# if HAVE_RAW_DECL_FSTAT
_GL_WARN_ON_USE (fstat, "fstat has portability problems - "
"use gnulib module fstat for portability");
@@ -567,7 +564,6 @@ _GL_CXXALIASWARN (fstatat);
# define fstatat fstatat_used_without_requesting_gnulib_module_fstatat
# endif
#elif defined GNULIB_POSIXCHECK
-# undef fstatat
# if HAVE_RAW_DECL_FSTATAT
_GL_WARN_ON_USE (fstatat, "fstatat is not portable - "
"use gnulib module openat for portability");
@@ -597,7 +593,6 @@ _GL_CXXALIAS_SYS (futimens, int, (int fd, struct timespec const times[2]));
_GL_CXXALIASWARN (futimens);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef futimens
# if HAVE_RAW_DECL_FUTIMENS
_GL_WARN_ON_USE (futimens, "futimens is not portable - "
"use gnulib module futimens for portability");
@@ -618,7 +613,6 @@ _GL_CXXALIAS_SYS (getumask, mode_t, (void));
_GL_CXXALIASWARN (getumask);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef getumask
# if HAVE_RAW_DECL_GETUMASK
_GL_WARN_ON_USE (getumask, "getumask is not portable - "
"use gnulib module getumask for portability");
@@ -636,7 +630,6 @@ _GL_FUNCDECL_SYS (lchmod, int, (const char *filename, mode_t mode),
_GL_CXXALIAS_SYS (lchmod, int, (const char *filename, mode_t mode));
_GL_CXXALIASWARN (lchmod);
#elif defined GNULIB_POSIXCHECK
-# undef lchmod
# if HAVE_RAW_DECL_LCHMOD
_GL_WARN_ON_USE (lchmod, "lchmod is unportable - "
"use gnulib module lchmod for portability");
@@ -698,7 +691,6 @@ _GL_CXXALIAS_SYS (mkdir, int, (char const *name, mode_t mode));
# endif
_GL_CXXALIASWARN (mkdir);
#elif defined GNULIB_POSIXCHECK
-# undef mkdir
# if HAVE_RAW_DECL_MKDIR
_GL_WARN_ON_USE (mkdir, "mkdir does not always support two parameters - "
"use gnulib module mkdir for portability");
@@ -714,7 +706,6 @@ _GL_FUNCDECL_SYS (mkdirat, int, (int fd, char const *file, mode_t mode),
_GL_CXXALIAS_SYS (mkdirat, int, (int fd, char const *file, mode_t mode));
_GL_CXXALIASWARN (mkdirat);
#elif defined GNULIB_POSIXCHECK
-# undef mkdirat
# if HAVE_RAW_DECL_MKDIRAT
_GL_WARN_ON_USE (mkdirat, "mkdirat is not portable - "
"use gnulib module openat for portability");
@@ -740,7 +731,6 @@ _GL_CXXALIAS_SYS (mkfifo, int, (char const *file, mode_t mode));
# endif
_GL_CXXALIASWARN (mkfifo);
#elif defined GNULIB_POSIXCHECK
-# undef mkfifo
# if HAVE_RAW_DECL_MKFIFO
_GL_WARN_ON_USE (mkfifo, "mkfifo is not portable - "
"use gnulib module mkfifo for portability");
@@ -768,7 +758,6 @@ _GL_CXXALIAS_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode));
_GL_CXXALIASWARN (mkfifoat);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mkfifoat
# if HAVE_RAW_DECL_MKFIFOAT
_GL_WARN_ON_USE (mkfifoat, "mkfifoat is not portable - "
"use gnulib module mkfifoat for portability");
@@ -794,7 +783,6 @@ _GL_CXXALIAS_SYS (mknod, int, (char const *file, mode_t mode, dev_t dev));
# endif
_GL_CXXALIASWARN (mknod);
#elif defined GNULIB_POSIXCHECK
-# undef mknod
# if HAVE_RAW_DECL_MKNOD
_GL_WARN_ON_USE (mknod, "mknod is not portable - "
"use gnulib module mknod for portability");
@@ -826,7 +814,6 @@ _GL_CXXALIAS_SYS (mknodat, int,
_GL_CXXALIASWARN (mknodat);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef mknodat
# if HAVE_RAW_DECL_MKNODAT
_GL_WARN_ON_USE (mknodat, "mknodat is not portable - "
"use gnulib module mkfifoat for portability");
@@ -904,7 +891,6 @@ _GL_EXTERN_C int stat (const char *restrict name, struct stat *restrict buf)
#define stat stat_used_without_requesting_gnulib_module_stat
*/
#elif defined GNULIB_POSIXCHECK
-# undef stat
# if HAVE_RAW_DECL_STAT
_GL_WARN_ON_USE (stat, "stat is unportable - "
"use gnulib module stat for portability");
@@ -944,7 +930,6 @@ _GL_CXXALIASWARN (lstat);
# define lstat lstat_used_without_requesting_gnulib_module_lstat
# endif
#elif defined GNULIB_POSIXCHECK
-# undef lstat
# if HAVE_RAW_DECL_LSTAT
_GL_WARN_ON_USE (lstat, "lstat is unportable - "
"use gnulib module lstat for portability");
@@ -998,7 +983,6 @@ _GL_CXXALIAS_SYS (utimensat, int, (int fd, char const *name,
_GL_CXXALIASWARN (utimensat);
# endif
#elif defined GNULIB_POSIXCHECK
-# undef utimensat
# if HAVE_RAW_DECL_UTIMENSAT
_GL_WARN_ON_USE (utimensat, "utimensat is not portable - "
"use gnulib module utimensat for portability");
diff --git a/tests/sys_time.in.h b/tests/sys_time.in.h
index e6d15613..666d9dd1 100644
--- a/tests/sys_time.in.h
+++ b/tests/sys_time.in.h
@@ -1,6 +1,6 @@
/* Provide a more complete sys/time.h.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -133,7 +133,6 @@ namespace GNULIB_NAMESPACE {
}
# endif
#elif defined GNULIB_POSIXCHECK
-# undef gettimeofday
# if HAVE_RAW_DECL_GETTIMEOFDAY
_GL_WARN_ON_USE (gettimeofday, "gettimeofday is unportable - "
"use gnulib module gettimeofday for portability");
diff --git a/tests/sys_uio.in.h b/tests/sys_uio.in.h
index fec3a70a..8f7f506f 100644
--- a/tests/sys_uio.in.h
+++ b/tests/sys_uio.in.h
@@ -1,5 +1,5 @@
/* Substitute for <sys/uio.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/tests/test-accept.c b/tests/test-accept.c
index 2557d06e..b8aaeff1 100644
--- a/tests/test-accept.c
+++ b/tests/test-accept.c
@@ -1,5 +1,5 @@
/* Test accepting a connection to a server socket.
- 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 General Public License as published by
diff --git a/tests/test-alignasof.c b/tests/test-alignasof.c
index b0c74f84..b92a24fc 100644
--- a/tests/test-alignasof.c
+++ b/tests/test-alignasof.c
@@ -1,5 +1,5 @@
/* Test of alignasof module.
- Copyright 2009-2025 Free Software Foundation, Inc.
+ Copyright 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 General Public License as published by
diff --git a/tests/test-alloca-opt.c b/tests/test-alloca-opt.c
index 5cd56405..395db9d7 100644
--- a/tests/test-alloca-opt.c
+++ b/tests/test-alloca-opt.c
@@ -1,5 +1,5 @@
/* Test of optional automatic memory allocation.
- Copyright (C) 2005, 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005, 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 General Public License as published by
@@ -37,10 +37,8 @@ int
main ()
{
#if HAVE_ALLOCA
- int i;
-
/* Repeat a lot of times, to make sure there's no memory leak. */
- for (i = 0; i < 100000; i++)
+ for (int i = 0; i < 100000; i++)
{
/* Try various values.
n = 0 gave a crash on Alpha with gcc-2.5.8.
diff --git a/tests/test-arpa_inet-h.c b/tests/test-arpa_inet-h.c
index c81ddc6f..553106ff 100644
--- a/tests/test-arpa_inet-h.c
+++ b/tests/test-arpa_inet-h.c
@@ -1,5 +1,5 @@
/* Test of <arpa/inet.h> substitute.
- 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 General Public License as published by
diff --git a/tests/test-array-mergesort.c b/tests/test-array-mergesort.c
index dd6dc0b2..a19bcc6f 100644
--- a/tests/test-array-mergesort.c
+++ b/tests/test-array-mergesort.c
@@ -1,5 +1,5 @@
/* Test of stable-sorting of an array using mergesort.
- 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
@@ -301,15 +301,12 @@ cmp_double (const void *a, const void *b)
int
main ()
{
- size_t n;
-
/* Test merge_sort_fromto. */
- for (n = 1; n <= NMAX; n++)
+ for (size_t n = 1; n <= NMAX; n++)
{
struct foo *dst;
struct foo *tmp;
double *qsort_result;
- size_t i;
dst = (struct foo *) malloc ((n + 1) * sizeof (struct foo));
dst[n].x = 0x4A6A71FE; /* canary */
@@ -324,14 +321,14 @@ main ()
/* Verify the result. */
qsort_result = (double *) malloc (n * sizeof (double));
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
qsort_result[i] = data[i].x;
qsort (qsort_result, n, sizeof (double), cmp_double);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
ASSERT (dst[i].x == qsort_result[i]);
/* Verify the stability. */
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
if (i > 0 && dst[i - 1].x == dst[i].x)
ASSERT (dst[i - 1].index < dst[i].index);
@@ -341,19 +338,18 @@ main ()
}
/* Test merge_sort_inplace. */
- for (n = 1; n <= NMAX; n++)
+ for (size_t n = 1; n <= NMAX; n++)
{
struct foo *src;
struct foo *tmp;
double *qsort_result;
- size_t i;
src = (struct foo *) malloc ((n + 1) * sizeof (struct foo));
src[n].x = 0x4A6A71FE; /* canary */
tmp = (struct foo *) malloc ((n + 1) * sizeof (struct foo));
tmp[n].x = 0x587EF149; /* canary */
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
src[i] = data[i];
merge_sort_inplace (src, n, tmp);
@@ -364,14 +360,14 @@ main ()
/* Verify the result. */
qsort_result = (double *) malloc (n * sizeof (double));
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
qsort_result[i] = data[i].x;
qsort (qsort_result, n, sizeof (double), cmp_double);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
ASSERT (src[i].x == qsort_result[i]);
/* Verify the stability. */
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
if (i > 0 && src[i - 1].x == src[i].x)
ASSERT (src[i - 1].index < src[i].index);
diff --git a/tests/test-assert.c b/tests/test-assert.c
index 1262d5dd..2344dbcb 100644
--- a/tests/test-assert.c
+++ b/tests/test-assert.c
@@ -1,5 +1,5 @@
/* Test assert.h and static_assert.
- 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 General Public License as published by
diff --git a/tests/test-binary-io.c b/tests/test-binary-io.c
index 7cdf7ba9..682a5234 100644
--- a/tests/test-binary-io.c
+++ b/tests/test-binary-io.c
@@ -1,5 +1,5 @@
/* Test of binary mode I/O.
- Copyright (C) 2005, 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2007-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
diff --git a/tests/test-bind.c b/tests/test-bind.c
index 5b9ca8c5..a6b1a186 100644
--- a/tests/test-bind.c
+++ b/tests/test-bind.c
@@ -1,5 +1,5 @@
/* Test binding a server socket to a port.
- 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 General Public License as published by
diff --git a/tests/test-bool.c b/tests/test-bool.c
index 0dbbf38b..ba8c316d 100644
--- a/tests/test-bool.c
+++ b/tests/test-bool.c
@@ -1,5 +1,5 @@
/* Test bool.
- Copyright (C) 2002-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2002-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 General Public License as published by
diff --git a/tests/test-btoc32.c b/tests/test-btoc32.c
index a4664e76..15b64442 100644
--- a/tests/test-btoc32.c
+++ b/tests/test-btoc32.c
@@ -1,5 +1,5 @@
/* Test of conversion of unibyte character to 32-bit wide character.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -32,8 +32,6 @@ SIGNATURE_CHECK (btoc32, wint_t, (int));
int
main (int argc, char *argv[])
{
- int c;
-
/* configure should already have checked that the locale is supported. */
if (setlocale (LC_ALL, "") == NULL)
return 1;
@@ -54,7 +52,7 @@ main (int argc, char *argv[])
{
case '1':
/* C or POSIX locale. */
- for (c = 0; c < 0x100; c++)
+ for (int c = 0; c < 0x100; c++)
if (c != 0)
{
/* We are testing all nonnull bytes. */
@@ -75,17 +73,17 @@ main (int argc, char *argv[])
case '2':
/* Locale encoding is ISO-8859-1 or ISO-8859-15. */
- for (c = 0; c < 0x80; c++)
+ for (int c = 0; c < 0x80; c++)
ASSERT (btoc32 (c) == c);
- for (c = 0xA0; c < 0x100; c++)
+ for (int c = 0xA0; c < 0x100; c++)
ASSERT (btoc32 (c) != WEOF);
return test_exit_status;
case '3':
/* Locale encoding is UTF-8. */
- for (c = 0; c < 0x80; c++)
+ for (int c = 0; c < 0x80; c++)
ASSERT (btoc32 (c) == c);
- for (c = 0x80; c < 0x100; c++)
+ for (int c = 0x80; c < 0x100; c++)
ASSERT (btoc32 (c) == WEOF);
return test_exit_status;
}
diff --git a/tests/test-btowc.c b/tests/test-btowc.c
index de3c5603..facc1540 100644
--- a/tests/test-btowc.c
+++ b/tests/test-btowc.c
@@ -1,5 +1,5 @@
/* Test of conversion of unibyte character to wide character.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -31,8 +31,6 @@ SIGNATURE_CHECK (btowc, wint_t, (int));
int
main (int argc, char *argv[])
{
- int c;
-
/* configure should already have checked that the locale is supported. */
if (setlocale (LC_ALL, "") == NULL)
return 1;
@@ -53,7 +51,7 @@ main (int argc, char *argv[])
{
case '1':
/* C or POSIX locale. */
- for (c = 0; c < 0x100; c++)
+ for (int c = 0; c < 0x100; c++)
if (c != 0)
{
/* We are testing all nonnull bytes. */
@@ -72,17 +70,17 @@ main (int argc, char *argv[])
case '2':
/* Locale encoding is ISO-8859-1 or ISO-8859-15. */
- for (c = 0; c < 0x80; c++)
+ for (int c = 0; c < 0x80; c++)
ASSERT (btowc (c) == c);
- for (c = 0xA0; c < 0x100; c++)
+ for (int c = 0xA0; c < 0x100; c++)
ASSERT (btowc (c) != WEOF);
return test_exit_status;
case '3':
/* Locale encoding is UTF-8. */
- for (c = 0; c < 0x80; c++)
+ for (int c = 0; c < 0x80; c++)
ASSERT (btowc (c) == c);
- for (c = 0x80; c < 0x100; c++)
+ for (int c = 0x80; c < 0x100; c++)
ASSERT (btowc (c) == WEOF);
return test_exit_status;
}
diff --git a/tests/test-c-ctype.c b/tests/test-c-ctype.c
index c5eadb29..512f5ce7 100644
--- a/tests/test-c-ctype.c
+++ b/tests/test-c-ctype.c
@@ -1,5 +1,5 @@
/* Test of character handling in C locale.
- Copyright (C) 2005, 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2007-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
@@ -30,9 +30,7 @@
static void
test_agree_with_C_locale (void)
{
- int c;
-
- for (c = 0; c <= UCHAR_MAX; c++)
+ for (int c = 0; c <= UCHAR_MAX; c++)
{
if (c_isascii (c))
{
@@ -57,10 +55,9 @@ test_agree_with_C_locale (void)
static void
test_all (void)
{
- int c;
int n_isascii = 0;
- for (c = CHAR_MIN; c <= UCHAR_MAX; c++)
+ for (int c = CHAR_MIN; c <= UCHAR_MAX; c++)
{
if (! (0 <= c && c <= CHAR_MAX))
{
diff --git a/tests/test-c-strcasecmp.c b/tests/test-c-strcasecmp.c
index b02caad0..ffe7687c 100644
--- a/tests/test-c-strcasecmp.c
+++ b/tests/test-c-strcasecmp.c
@@ -1,5 +1,5 @@
/* Test of case-insensitive string comparison function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-c32isalnum.c b/tests/test-c32isalnum.c
index 20e4d30a..17880fa1 100644
--- a/tests/test-c32isalnum.c
+++ b/tests/test-c32isalnum.c
@@ -1,5 +1,5 @@
/* Test of c32isalnum() function.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-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
@@ -68,61 +68,57 @@ main (int argc, char *argv[])
- in the "POSIX" locale (which is usually the same as the "C" locale),
the alphanumeric characters include only the ASCII A ... Z and a ... z
and 0 ... 9 characters. */
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\t': case '\v': case '\f':
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set". */
- buf[0] = (unsigned char) c;
- is = for_character (buf, 1);
- switch (c)
- {
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z':
- ASSERT (is != 0);
- break;
- default:
- ASSERT (is == 0);
- break;
- }
- break;
- }
- }
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ buf[0] = (unsigned char) c;
+ is = for_character (buf, 1);
+ switch (c)
+ {
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z':
+ ASSERT (is != 0);
+ break;
+ default:
+ ASSERT (is == 0);
+ break;
+ }
+ break;
+ }
if (argc > 1)
switch (argv[1][0])
diff --git a/tests/test-c32isalpha.c b/tests/test-c32isalpha.c
index c9d2c19f..bd473842 100644
--- a/tests/test-c32isalpha.c
+++ b/tests/test-c32isalpha.c
@@ -1,5 +1,5 @@
/* Test of c32isalpha() function.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-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
@@ -68,59 +68,55 @@ main (int argc, char *argv[])
- in the "POSIX" locale (which is usually the same as the "C" locale),
the alphabetic characters include only the ASCII A ... Z and a ... z
characters. */
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\t': case '\v': case '\f':
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set". */
- buf[0] = (unsigned char) c;
- is = for_character (buf, 1);
- switch (c)
- {
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z':
- ASSERT (is != 0);
- break;
- default:
- ASSERT (is == 0);
- break;
- }
- break;
- }
- }
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ buf[0] = (unsigned char) c;
+ is = for_character (buf, 1);
+ switch (c)
+ {
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z':
+ ASSERT (is != 0);
+ break;
+ default:
+ ASSERT (is == 0);
+ break;
+ }
+ break;
+ }
if (argc > 1)
switch (argv[1][0])
diff --git a/tests/test-c32isblank.c b/tests/test-c32isblank.c
index 0d919867..33e7c3c8 100644
--- a/tests/test-c32isblank.c
+++ b/tests/test-c32isblank.c
@@ -1,5 +1,5 @@
/* Test of c32isblank() function.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-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
@@ -67,49 +67,45 @@ main (int argc, char *argv[])
- in the "POSIX" locale (which is usually the same as the "C" locale),
the blank characters include only the ASCII <space> and <tab>
characters. */
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\t':
- #if !(defined __FreeBSD__ || defined __NetBSD__)
- case '\v':
- #endif
- #if !defined __NetBSD__
- case '\f':
- #endif
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set". */
- buf[0] = (unsigned char) c;
- is = for_character (buf, 1);
- if (c == '\t' || c == ' ')
- ASSERT (is != 0);
- else
- ASSERT (is == 0);
- break;
- }
- }
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t':
+ #if !(defined __FreeBSD__ || defined __NetBSD__)
+ case '\v':
+ #endif
+ #if !defined __NetBSD__
+ case '\f':
+ #endif
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ buf[0] = (unsigned char) c;
+ is = for_character (buf, 1);
+ if (c == '\t' || c == ' ')
+ ASSERT (is != 0);
+ else
+ ASSERT (is == 0);
+ break;
+ }
if (argc > 1)
switch (argv[1][0])
diff --git a/tests/test-c32iscntrl.c b/tests/test-c32iscntrl.c
index d9a98f89..8bf7d35c 100644
--- a/tests/test-c32iscntrl.c
+++ b/tests/test-c32iscntrl.c
@@ -1,5 +1,5 @@
/* Test of c32iscntrl() function.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-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
@@ -62,48 +62,44 @@ main (int argc, char *argv[])
POSIX specifies in
<https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html>
no explicit list of control characters. */
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\t': case '\v': case '\f':
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set". */
- buf[0] = (unsigned char) c;
- is = for_character (buf, 1);
- switch (c)
- {
- case '\t': case '\v': case '\f':
- ASSERT (is != 0);
- break;
- default:
- ASSERT (is == 0);
- break;
- }
- break;
- }
- }
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ buf[0] = (unsigned char) c;
+ is = for_character (buf, 1);
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ ASSERT (is != 0);
+ break;
+ default:
+ ASSERT (is == 0);
+ break;
+ }
+ break;
+ }
if (argc > 1)
switch (argv[1][0])
@@ -145,7 +141,7 @@ main (int argc, char *argv[])
/* U+00A0 NO-BREAK SPACE */
is = for_character ("\302\240", 2);
ASSERT (is == 0);
- #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __DragonFly__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || defined __ANDROID__)
+ #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __DragonFly__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || defined __ANDROID__ || defined __HAIKU__)
/* U+202E RIGHT-TO-LEFT OVERRIDE */
is = for_character ("\342\200\256", 3);
ASSERT (is != 0);
@@ -153,7 +149,7 @@ main (int argc, char *argv[])
/* U+3000 IDEOGRAPHIC SPACE */
is = for_character ("\343\200\200", 3);
ASSERT (is == 0);
- #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __DragonFly__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || defined __ANDROID__)
+ #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __DragonFly__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || defined __ANDROID__ || defined __HAIKU__)
/* U+FEFF ZERO WIDTH NO-BREAK SPACE */
is = for_character ("\357\273\277", 3);
ASSERT (is != 0);
@@ -161,7 +157,7 @@ main (int argc, char *argv[])
/* U+20000 <CJK Ideograph> */
is = for_character ("\360\240\200\200", 4);
ASSERT (is == 0);
- #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __DragonFly__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || (defined _WIN32 && !defined __CYGWIN__) || defined __ANDROID__)
+ #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __DragonFly__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || (defined _WIN32 && !defined __CYGWIN__) || defined __ANDROID__ || defined __HAIKU__)
/* U+E0001 LANGUAGE TAG */
is = for_character ("\363\240\200\201", 4);
ASSERT (is != 0);
diff --git a/tests/test-c32isdigit.c b/tests/test-c32isdigit.c
index 4300da18..97b3538e 100644
--- a/tests/test-c32isdigit.c
+++ b/tests/test-c32isdigit.c
@@ -1,5 +1,5 @@
/* Test of c32isdigit() function.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-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
@@ -61,49 +61,45 @@ main (int argc, char *argv[])
/* Test single-byte characters.
ISO C 99 sections 7.25.2.1.5 and 5.2.1 specify that the decimal digits
include only the ASCII 0 ... 9 characters. */
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\t': case '\v': case '\f':
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set". */
- buf[0] = (unsigned char) c;
- is = for_character (buf, 1);
- switch (c)
- {
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- ASSERT (is != 0);
- break;
- default:
- ASSERT (is == 0);
- break;
- }
- break;
- }
- }
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ buf[0] = (unsigned char) c;
+ is = for_character (buf, 1);
+ switch (c)
+ {
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ ASSERT (is != 0);
+ break;
+ default:
+ ASSERT (is == 0);
+ break;
+ }
+ break;
+ }
if (argc > 1)
switch (argv[1][0])
diff --git a/tests/test-c32isgraph.c b/tests/test-c32isgraph.c
index f6f7276f..471710f3 100644
--- a/tests/test-c32isgraph.c
+++ b/tests/test-c32isgraph.c
@@ -1,5 +1,5 @@
/* Test of c32isgraph() function.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-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
@@ -62,49 +62,45 @@ main (int argc, char *argv[])
POSIX specifies in
<https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html>
no explicit list of graphic characters. */
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\t': case '\v': case '\f':
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set". */
- buf[0] = (unsigned char) c;
- is = for_character (buf, 1);
- switch (c)
- {
- case '\t': case '\v': case '\f':
- case ' ':
- ASSERT (is == 0);
- break;
- default:
- ASSERT (is != 0);
- break;
- }
- break;
- }
- }
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ buf[0] = (unsigned char) c;
+ is = for_character (buf, 1);
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ':
+ ASSERT (is == 0);
+ break;
+ default:
+ ASSERT (is != 0);
+ break;
+ }
+ break;
+ }
if (argc > 1)
switch (argv[1][0])
@@ -155,7 +151,7 @@ main (int argc, char *argv[])
/* U+007F <control> */
is = for_character ("\177", 1);
ASSERT (is == 0);
- #if !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __DragonFly__ || defined __NetBSD__ || defined __sun || defined __CYGWIN__ || (defined _WIN32 && !defined __CYGWIN__))
+ #if !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __DragonFly__ || defined __NetBSD__ || defined __sun || defined __CYGWIN__ || (defined _WIN32 && !defined __CYGWIN__) || defined __HAIKU__)
/* U+00A0 NO-BREAK SPACE */
is = for_character ("\302\240", 2);
ASSERT (is != 0);
@@ -166,7 +162,7 @@ main (int argc, char *argv[])
/* U+2002 EN SPACE */
is = for_character ("\342\200\202", 3);
ASSERT (is == 0);
- #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || defined __ANDROID__)
+ #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || defined __ANDROID__ || defined __HAIKU__)
/* U+202E RIGHT-TO-LEFT OVERRIDE */
is = for_character ("\342\200\256", 3);
ASSERT (is == 0);
@@ -174,7 +170,7 @@ main (int argc, char *argv[])
/* U+3000 IDEOGRAPHIC SPACE */
is = for_character ("\343\200\200", 3);
ASSERT (is == 0);
- #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || defined __ANDROID__)
+ #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || defined __ANDROID__ || defined __HAIKU__)
/* U+FEFF ZERO WIDTH NO-BREAK SPACE */
is = for_character ("\357\273\277", 3);
ASSERT (is == 0);
@@ -184,7 +180,7 @@ main (int argc, char *argv[])
is = for_character ("\360\240\200\200", 4);
ASSERT (is != 0);
#endif
- #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || (defined _WIN32 && !defined __CYGWIN__) || defined __ANDROID__)
+ #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || (defined _WIN32 && !defined __CYGWIN__) || defined __ANDROID__ || defined __HAIKU__)
/* U+E0001 LANGUAGE TAG */
is = for_character ("\363\240\200\201", 4);
ASSERT (is == 0);
diff --git a/tests/test-c32islower.c b/tests/test-c32islower.c
index a66199f8..ea176b14 100644
--- a/tests/test-c32islower.c
+++ b/tests/test-c32islower.c
@@ -1,5 +1,5 @@
/* Test of c32islower() function.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-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
@@ -67,53 +67,49 @@ main (int argc, char *argv[])
- in the "POSIX" locale (which is usually the same as the "C" locale),
the lowercase characters include only the ASCII a ... z characters.
*/
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\t': case '\v': case '\f':
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set". */
- buf[0] = (unsigned char) c;
- is = for_character (buf, 1);
- switch (c)
- {
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z':
- ASSERT (is != 0);
- break;
- default:
- ASSERT (is == 0);
- break;
- }
- break;
- }
- }
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ buf[0] = (unsigned char) c;
+ is = for_character (buf, 1);
+ switch (c)
+ {
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z':
+ ASSERT (is != 0);
+ break;
+ default:
+ ASSERT (is == 0);
+ break;
+ }
+ break;
+ }
if (argc > 1)
switch (argv[1][0])
@@ -202,7 +198,7 @@ main (int argc, char *argv[])
/* U+00B2 SUPERSCRIPT TWO */
is = for_character ("\302\262", 2);
ASSERT (is == 0);
- #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __DragonFly__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || (defined _WIN32 && !defined __CYGWIN__) || defined __ANDROID__)
+ #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __DragonFly__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || (defined _WIN32 && !defined __CYGWIN__) || defined __ANDROID__ || defined __HAIKU__)
/* U+00B5 MICRO SIGN */
is = for_character ("\302\265", 2);
ASSERT (is == 0);
diff --git a/tests/test-c32isprint.c b/tests/test-c32isprint.c
index b025d7cb..c64eec43 100644
--- a/tests/test-c32isprint.c
+++ b/tests/test-c32isprint.c
@@ -1,5 +1,5 @@
/* Test of c32isprint() function.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-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
@@ -62,48 +62,44 @@ main (int argc, char *argv[])
POSIX specifies in
<https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html>
no explicit list of printable characters. */
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\t': case '\v': case '\f':
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set". */
- buf[0] = (unsigned char) c;
- is = for_character (buf, 1);
- switch (c)
- {
- case '\t': case '\v': case '\f':
- ASSERT (is == 0);
- break;
- default:
- ASSERT (is != 0);
- break;
- }
- break;
- }
- }
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ buf[0] = (unsigned char) c;
+ is = for_character (buf, 1);
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ ASSERT (is == 0);
+ break;
+ default:
+ ASSERT (is != 0);
+ break;
+ }
+ break;
+ }
if (argc > 1)
switch (argv[1][0])
@@ -167,7 +163,7 @@ main (int argc, char *argv[])
is = for_character ("\342\200\202", 3);
ASSERT (is != 0);
#endif
- #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || defined __ANDROID__)
+ #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || defined __ANDROID__ || defined __HAIKU__)
/* U+202E RIGHT-TO-LEFT OVERRIDE */
is = for_character ("\342\200\256", 3);
ASSERT (is == 0);
@@ -177,7 +173,7 @@ main (int argc, char *argv[])
is = for_character ("\343\200\200", 3);
ASSERT (is != 0);
#endif
- #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || (defined _WIN32 && !defined __CYGWIN__) || defined __ANDROID__)
+ #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || (defined _WIN32 && !defined __CYGWIN__) || defined __ANDROID__ || defined __HAIKU__)
/* U+FEFF ZERO WIDTH NO-BREAK SPACE */
is = for_character ("\357\273\277", 3);
ASSERT (is == 0);
@@ -187,7 +183,7 @@ main (int argc, char *argv[])
is = for_character ("\360\240\200\200", 4);
ASSERT (is != 0);
#endif
- #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || (defined _WIN32 && !defined __CYGWIN__) || defined __ANDROID__)
+ #if !(defined __GLIBC__ || defined MUSL_LIBC || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ || defined _AIX || defined __sun || defined __CYGWIN__ || (defined _WIN32 && !defined __CYGWIN__) || defined __ANDROID__ || defined __HAIKU__)
/* U+E0001 LANGUAGE TAG */
is = for_character ("\363\240\200\201", 4);
ASSERT (is == 0);
diff --git a/tests/test-c32ispunct.c b/tests/test-c32ispunct.c
index 535d0c49..52be41e0 100644
--- a/tests/test-c32ispunct.c
+++ b/tests/test-c32ispunct.c
@@ -1,5 +1,5 @@
/* Test of c32ispunct() function.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-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
@@ -62,74 +62,74 @@ main (int argc, char *argv[])
POSIX specifies in
<https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html>
no explicit list of punctuation or symbol characters. */
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\t': case '\v': case '\f':
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set". */
- buf[0] = (unsigned char) c;
- is = for_character (buf, 1);
- switch (c)
- {
- case ' ':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z':
- /* c is an alphanumeric or space character. */
- ASSERT (is == 0);
- break;
- case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case '[': case '\\': case ']': case '^': case '_':
- case '{': case '|': case '}': case '~':
- /* These characters are usually expected to be punctuation or
- symbol characters. */
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ buf[0] = (unsigned char) c;
+ is = for_character (buf, 1);
+ switch (c)
+ {
+ case ' ':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z':
+ /* c is an alphanumeric or space character. */
+ ASSERT (is == 0);
+ break;
+ case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case '[': case '\\': case ']': case '^': case '_':
+ case '{': case '|': case '}': case '~':
+ /* These characters are usually expected to be punctuation or
+ symbol characters. */
+ #if defined __HAIKU__
+ if (!(c == '+' || c == '<' || c == '=' || c == '>'
+ || c == '^' || c == '|' || c == '~'))
+ #endif
ASSERT (is != 0);
- break;
- default:
- ASSERT (is == 0);
- break;
- }
- break;
- }
- }
+ break;
+ default:
+ ASSERT (is == 0);
+ break;
+ }
+ break;
+ }
if (argc > 1)
switch (argv[1][0])
@@ -216,7 +216,7 @@ main (int argc, char *argv[])
/* U+00BF INVERTED QUESTION MARK */
is = for_character ("\302\277", 2);
ASSERT (is != 0);
- #if !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __DragonFly__ || defined __sun)
+ #if !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __DragonFly__ || defined __sun || defined __HAIKU__)
/* U+00D7 MULTIPLICATION SIGN */
is = for_character ("\303\227", 2);
ASSERT (is != 0);
@@ -233,7 +233,7 @@ main (int argc, char *argv[])
/* U+05F3 HEBREW PUNCTUATION GERESH */
is = for_character ("\327\263", 2);
ASSERT (is != 0);
- #if !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __DragonFly__ || defined __sun || (defined _WIN32 && !defined __CYGWIN__))
+ #if !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __DragonFly__ || defined __sun || (defined _WIN32 && !defined __CYGWIN__) || defined __HAIKU__)
/* U+2192 RIGHTWARDS ARROW */
is = for_character ("\342\206\222", 3);
ASSERT (is != 0);
@@ -250,7 +250,7 @@ main (int argc, char *argv[])
/* U+10330 GOTHIC LETTER AHSA */
is = for_character ("\360\220\214\260", 4);
ASSERT (is == 0);
- #if !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __DragonFly__ || defined __sun)
+ #if !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __DragonFly__ || defined __sun || defined __HAIKU__)
/* U+1D100 MUSICAL SYMBOL SINGLE BARLINE */
is = for_character ("\360\235\204\200", 4);
ASSERT (is != 0);
diff --git a/tests/test-c32isspace.c b/tests/test-c32isspace.c
index 6381e42d..1b1a679d 100644
--- a/tests/test-c32isspace.c
+++ b/tests/test-c32isspace.c
@@ -1,5 +1,5 @@
/* Test of c32isspace() function.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-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
@@ -68,49 +68,45 @@ main (int argc, char *argv[])
- in the "POSIX" locale (which is usually the same as the "C" locale),
the white-space characters include only the ASCII <space>, <form-feed>,
<newline>, <carriage-return>, <tab>, <vertical-tab> characters. */
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\f': case '\n': case '\r': case '\t': case '\v':
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set" or one of the explicitly
- mentioned white-space characters. */
- buf[0] = (unsigned char) c;
- is = for_character (buf, 1);
- switch (c)
- {
- case ' ': case '\f': case '\n': case '\r': case '\t': case '\v':
- ASSERT (is != 0);
- break;
- default:
- ASSERT (is == 0);
- break;
- }
- break;
- }
- }
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\f': case '\n': case '\r': case '\t': case '\v':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set" or one of the explicitly
+ mentioned white-space characters. */
+ buf[0] = (unsigned char) c;
+ is = for_character (buf, 1);
+ switch (c)
+ {
+ case ' ': case '\f': case '\n': case '\r': case '\t': case '\v':
+ ASSERT (is != 0);
+ break;
+ default:
+ ASSERT (is == 0);
+ break;
+ }
+ break;
+ }
if (argc > 1)
switch (argv[1][0])
diff --git a/tests/test-c32isupper.c b/tests/test-c32isupper.c
index 460328ea..3c70a0d8 100644
--- a/tests/test-c32isupper.c
+++ b/tests/test-c32isupper.c
@@ -1,5 +1,5 @@
/* Test of c32isupper() function.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-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
@@ -67,53 +67,49 @@ main (int argc, char *argv[])
- in the "POSIX" locale (which is usually the same as the "C" locale),
the uppercase characters include only the ASCII A ... Z characters.
*/
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\t': case '\v': case '\f':
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set". */
- buf[0] = (unsigned char) c;
- is = for_character (buf, 1);
- switch (c)
- {
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- ASSERT (is != 0);
- break;
- default:
- ASSERT (is == 0);
- break;
- }
- break;
- }
- }
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ buf[0] = (unsigned char) c;
+ is = for_character (buf, 1);
+ switch (c)
+ {
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ ASSERT (is != 0);
+ break;
+ default:
+ ASSERT (is == 0);
+ break;
+ }
+ break;
+ }
if (argc > 1)
switch (argv[1][0])
diff --git a/tests/test-c32isxdigit.c b/tests/test-c32isxdigit.c
index c433fe44..9367de8b 100644
--- a/tests/test-c32isxdigit.c
+++ b/tests/test-c32isxdigit.c
@@ -1,5 +1,5 @@
/* Test of c32isxdigit() function.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-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
@@ -61,51 +61,47 @@ main (int argc, char *argv[])
/* Test single-byte characters.
ISO C 99 sections 7.25.2.1.12 and 6.4.4.1 specify that the hexadecimal
digits include only the ASCII 0 ... 9 A ... F a ... f characters. */
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\t': case '\v': case '\f':
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set". */
- buf[0] = (unsigned char) c;
- is = for_character (buf, 1);
- switch (c)
- {
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
- case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
- ASSERT (is != 0);
- break;
- default:
- ASSERT (is == 0);
- break;
- }
- break;
- }
- }
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ buf[0] = (unsigned char) c;
+ is = for_character (buf, 1);
+ switch (c)
+ {
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
+ case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
+ ASSERT (is != 0);
+ break;
+ default:
+ ASSERT (is == 0);
+ break;
+ }
+ break;
+ }
if (argc > 1)
switch (argv[1][0])
diff --git a/tests/test-c32rtomb-w32.c b/tests/test-c32rtomb-w32.c
index 9ee86301..e23b4a2f 100644
--- a/tests/test-c32rtomb-w32.c
+++ b/tests/test-c32rtomb-w32.c
@@ -1,5 +1,5 @@
/* Test of conversion of wide character to multibyte character.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -97,40 +97,36 @@ test_one_locale (const char *name, int codepage)
}
/* Test single bytes. */
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\t': case '\v': case '\f':
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set". */
- ret = c32rtomb (buf, btoc32 (c), NULL);
- ASSERT (ret == 1);
- ASSERT (buf[0] == (char) c);
- break;
- }
- }
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ ret = c32rtomb (buf, btoc32 (c), NULL);
+ ASSERT (ret == 1);
+ ASSERT (buf[0] == (char) c);
+ break;
+ }
/* Test special calling convention, passing a NULL pointer. */
{
@@ -318,10 +314,9 @@ main (int argc, char *argv[])
{
int codepage = atoi (argv[argc - 1]);
int result;
- int i;
result = 77;
- for (i = 1; i < argc - 1; i++)
+ for (int i = 1; i < argc - 1; i++)
{
int ret = test_one_locale (argv[i], codepage);
diff --git a/tests/test-c32rtomb.c b/tests/test-c32rtomb.c
index 14dc60fa..8e5cdff2 100644
--- a/tests/test-c32rtomb.c
+++ b/tests/test-c32rtomb.c
@@ -1,5 +1,5 @@
/* Test of conversion of wide character to multibyte character.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -72,40 +72,36 @@ main (int argc, char *argv[])
}
/* Test single bytes. */
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\t': case '\v': case '\f':
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set". */
- ret = c32rtomb (buf, btoc32 (c), NULL);
- ASSERT (ret == 1);
- ASSERT (buf[0] == (char) c);
- break;
- }
- }
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ ret = c32rtomb (buf, btoc32 (c), NULL);
+ ASSERT (ret == 1);
+ ASSERT (buf[0] == (char) c);
+ break;
+ }
/* Test special calling convention, passing a NULL pointer. */
{
diff --git a/tests/test-c32tolower.c b/tests/test-c32tolower.c
index f118021e..8198a3c5 100644
--- a/tests/test-c32tolower.c
+++ b/tests/test-c32tolower.c
@@ -1,5 +1,5 @@
/* Test of c32tolower() function.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-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
@@ -99,55 +99,51 @@ main (int argc, char *argv[])
See <https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=57339>. */
if (!(argc > 1 && argv[1][0] == '4'))
#endif
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\t': case '\v': case '\f':
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set". */
- buf[0] = (unsigned char) c;
- mb = for_character (buf, 1);
- switch (c)
- {
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- ASSERT (mb.nbytes == 1);
- ASSERT ((unsigned char) mb.buf[0] == (unsigned char) c - 'A' + 'a');
- break;
- default:
- ASSERT (mb.nbytes == 1);
- ASSERT ((unsigned char) mb.buf[0] == c);
- break;
- }
- break;
- }
- }
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ buf[0] = (unsigned char) c;
+ mb = for_character (buf, 1);
+ switch (c)
+ {
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ ASSERT (mb.nbytes == 1);
+ ASSERT ((unsigned char) mb.buf[0] == (unsigned char) c - 'A' + 'a');
+ break;
+ default:
+ ASSERT (mb.nbytes == 1);
+ ASSERT ((unsigned char) mb.buf[0] == c);
+ break;
+ }
+ break;
+ }
if (argc > 1)
switch (argv[1][0])
diff --git a/tests/test-c32width.c b/tests/test-c32width.c
index d9eec4a7..6d844679 100644
--- a/tests/test-c32width.c
+++ b/tests/test-c32width.c
@@ -1,5 +1,5 @@
/* Test of c32width() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -33,12 +33,10 @@ SIGNATURE_CHECK (c32width, int, (char32_t));
int
main ()
{
- char32_t wc;
-
#if !GNULIB_WCHAR_SINGLE_LOCALE
# ifdef C_CTYPE_ASCII
/* Test width of ASCII characters. */
- for (wc = 0x20; wc < 0x7F; wc++)
+ for (char32_t wc = 0x20; wc < 0x7F; wc++)
ASSERT (c32width (wc) == 1);
# endif
#endif
@@ -53,7 +51,7 @@ main ()
&& strcmp (locale_charset (), "UTF-8") == 0)
{
/* Test width of ASCII characters. */
- for (wc = 0x20; wc < 0x7F; wc++)
+ for (char32_t wc = 0x20; wc < 0x7F; wc++)
ASSERT (c32width (wc) == 1);
/* Test width of some non-spacing characters. */
diff --git a/tests/test-calloc-gnu.c b/tests/test-calloc-gnu.c
index 98a3fb8b..b7eb2ac5 100644
--- a/tests/test-calloc-gnu.c
+++ b/tests/test-calloc-gnu.c
@@ -1,5 +1,5 @@
/* Test of calloc function.
- 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 General Public License as published by
diff --git a/tests/test-calloc-posix.c b/tests/test-calloc-posix.c
index 702c7b6a..5c310775 100644
--- a/tests/test-calloc-posix.c
+++ b/tests/test-calloc-posix.c
@@ -1,5 +1,5 @@
/* Test of calloc function.
- Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Copyright (C) 2024-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
diff --git a/tests/test-cloexec.c b/tests/test-cloexec.c
index ed9d6ebc..903d6061 100644
--- a/tests/test-cloexec.c
+++ b/tests/test-cloexec.c
@@ -1,5 +1,5 @@
/* Test duplicating non-inheritable file descriptors.
- 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 General Public License as published by
diff --git a/tests/test-close.c b/tests/test-close.c
index c2e280c7..0c286845 100644
--- a/tests/test-close.c
+++ b/tests/test-close.c
@@ -1,5 +1,5 @@
/* Test closing a file or socket.
- 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 General Public License as published by
diff --git a/tests/test-connect.c b/tests/test-connect.c
index 1d826c2b..7377d9eb 100644
--- a/tests/test-connect.c
+++ b/tests/test-connect.c
@@ -1,5 +1,5 @@
/* Test connecting a client socket.
- 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 General Public License as published by
diff --git a/tests/test-ctype-h.c b/tests/test-ctype-h.c
index bde62720..8f29381c 100644
--- a/tests/test-ctype-h.c
+++ b/tests/test-ctype-h.c
@@ -1,5 +1,5 @@
/* Test of <ctype.h> substitute.
- 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 General Public License as published by
diff --git a/tests/test-dup2.c b/tests/test-dup2.c
index e13d2e9f..65d5aaf0 100644
--- a/tests/test-dup2.c
+++ b/tests/test-dup2.c
@@ -1,5 +1,5 @@
/* Test duplicating file descriptors.
- 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 General Public License as published by
diff --git a/tests/test-environ.c b/tests/test-environ.c
index 21641b89..dcd408f4 100644
--- a/tests/test-environ.c
+++ b/tests/test-environ.c
@@ -1,5 +1,5 @@
/* Test of environ variable.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/tests/test-errno-h.c b/tests/test-errno-h.c
index cb20635b..f1103dd3 100644
--- a/tests/test-errno-h.c
+++ b/tests/test-errno-h.c
@@ -1,5 +1,5 @@
/* Test of <errno.h> substitute.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/tests/test-error.c b/tests/test-error.c
index ba7941ff..1b490691 100644
--- a/tests/test-error.c
+++ b/tests/test-error.c
@@ -1,5 +1,5 @@
/* Test of error.h functions.
- Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ Copyright (C) 2023-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
diff --git a/tests/test-fcntl-h.c b/tests/test-fcntl-h.c
index 6ed6b574..f9664d5e 100644
--- a/tests/test-fcntl-h.c
+++ b/tests/test-fcntl-h.c
@@ -1,5 +1,5 @@
/* Test of <fcntl.h> substitute.
- 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 General Public License as published by
diff --git a/tests/test-fcntl.c b/tests/test-fcntl.c
index f5d6c351..58a907b0 100644
--- a/tests/test-fcntl.c
+++ b/tests/test-fcntl.c
@@ -1,5 +1,5 @@
/* Test of fcntl(2).
- 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 General Public License as published by
diff --git a/tests/test-fdopen.c b/tests/test-fdopen.c
index 5ac7ab74..cf25e084 100644
--- a/tests/test-fdopen.c
+++ b/tests/test-fdopen.c
@@ -1,5 +1,5 @@
/* Test opening a stream with a file descriptor.
- 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 General Public License as published by
@@ -39,8 +39,7 @@ main (void)
#define COUNT 1000
#endif
- int i;
- for (i = 0; i < COUNT; i++)
+ for (int i = 0; i < COUNT; i++)
{
errno = 0;
if (! fdopen (STDOUT_FILENO, "w"))
diff --git a/tests/test-fgetc.c b/tests/test-fgetc.c
index 1e179971..80e02944 100644
--- a/tests/test-fgetc.c
+++ b/tests/test-fgetc.c
@@ -1,5 +1,5 @@
/* Test of fgetc() function.
- 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 General Public License as published by
diff --git a/tests/test-fputc.c b/tests/test-fputc.c
index 60c65c7d..76442024 100644
--- a/tests/test-fputc.c
+++ b/tests/test-fputc.c
@@ -1,5 +1,5 @@
/* Test of fputc() function.
- 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 General Public License as published by
diff --git a/tests/test-fread.c b/tests/test-fread.c
index 86e48883..171399c8 100644
--- a/tests/test-fread.c
+++ b/tests/test-fread.c
@@ -1,5 +1,5 @@
/* Test of fread() function.
- 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 General Public License as published by
diff --git a/tests/test-free.c b/tests/test-free.c
index fff1c3a6..49b76bc5 100644
--- a/tests/test-free.c
+++ b/tests/test-free.c
@@ -1,5 +1,5 @@
/* Test of free() function.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-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
@@ -53,10 +53,9 @@ main ()
{ /* Small memory allocations. */
#define N 10000
void *ptrs[N];
- size_t i;
- for (i = 0; i < N; i++)
+ for (size_t i = 0; i < N; i++)
ptrs[i] = malloc (15);
- for (i = 0; i < N; i++)
+ for (size_t i = 0; i < N; i++)
{
errno = 1789;
free (ptrs[i]);
@@ -67,10 +66,9 @@ main ()
{ /* Medium memory allocations. */
#define N 1000
void *ptrs[N];
- size_t i;
- for (i = 0; i < N; i++)
+ for (size_t i = 0; i < N; i++)
ptrs[i] = malloc (729);
- for (i = 0; i < N; i++)
+ for (size_t i = 0; i < N; i++)
{
errno = 1789;
free (ptrs[i]);
@@ -81,10 +79,9 @@ main ()
{ /* Large memory allocations. */
#define N 10
void *ptrs[N];
- size_t i;
- for (i = 0; i < N; i++)
+ for (size_t i = 0; i < N; i++)
ptrs[i] = malloc (5318153);
- for (i = 0; i < N; i++)
+ for (size_t i = 0; i < N; i++)
{
errno = 1789;
free (ptrs[i]);
@@ -152,8 +149,7 @@ main ()
/* Now add as many mappings as we can.
Stop at 65536, in order not to crash the machine (in case the
limit has been increased by the system administrator). */
- size_t i;
- for (i = 0; i < 65536; i++)
+ for (size_t i = 0; i < 65536; i++)
if (mmap (NULL, pagesize, PROT_READ, MAP_FILE | MAP_PRIVATE, fd, 0)
== (void *)(-1))
break;
diff --git a/tests/test-frexp.c b/tests/test-frexp.c
index b5fac9fa..74bd4fae 100644
--- a/tests/test-frexp.c
+++ b/tests/test-frexp.c
@@ -1,5 +1,5 @@
/* Test of splitting a double into fraction and mantissa.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-frexp.h b/tests/test-frexp.h
index ed687387..7cf24d88 100644
--- a/tests/test-frexp.h
+++ b/tests/test-frexp.h
@@ -1,5 +1,5 @@
/* Test of splitting a double into fraction and mantissa.
- Copyright (C) 2012-2025 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
@@ -27,7 +27,6 @@ my_ldexp (DOUBLE x, int d)
static void
test_function (void)
{
- int i;
VOLATILE DOUBLE x;
{ /* NaN. */
@@ -74,100 +73,104 @@ test_function (void)
ASSERT (signbit (mantissa));
}
- for (i = 1, x = L_(1.0); i <= MAX_EXP; i++, x *= L_(2.0))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == L_(0.5));
- }
- for (i = 1, x = L_(1.0); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == L_(0.5));
- }
- for (; i >= MIN_EXP - 100 && x > L_(0.0); i--, x *= L_(0.5))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == L_(0.5));
- }
+ {
+ int i;
- for (i = 1, x = - L_(1.0); i <= MAX_EXP; i++, x *= L_(2.0))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == - L_(0.5));
- }
- for (i = 1, x = - L_(1.0); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == - L_(0.5));
- }
- for (; i >= MIN_EXP - 100 && x < L_(0.0); i--, x *= L_(0.5))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == - L_(0.5));
- }
+ for (i = 1, x = L_(1.0); i <= MAX_EXP; i++, x *= L_(2.0))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == L_(0.5));
+ }
+ for (i = 1, x = L_(1.0); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == L_(0.5));
+ }
+ for (; i >= MIN_EXP - 100 && x > L_(0.0); i--, x *= L_(0.5))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == L_(0.5));
+ }
- for (i = 1, x = L_(1.01); i <= MAX_EXP; i++, x *= L_(2.0))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == L_(0.505));
- }
- for (i = 1, x = L_(1.01); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == L_(0.505));
- }
- for (; i >= MIN_EXP - 100 && x > L_(0.0); i--, x *= L_(0.5))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa >= L_(0.5));
- ASSERT (mantissa < L_(1.0));
- ASSERT (mantissa == my_ldexp (x, - exp));
- }
+ for (i = 1, x = - L_(1.0); i <= MAX_EXP; i++, x *= L_(2.0))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == - L_(0.5));
+ }
+ for (i = 1, x = - L_(1.0); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == - L_(0.5));
+ }
+ for (; i >= MIN_EXP - 100 && x < L_(0.0); i--, x *= L_(0.5))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == - L_(0.5));
+ }
- for (i = 1, x = L_(1.73205); i <= MAX_EXP; i++, x *= L_(2.0))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == L_(0.866025));
- }
- for (i = 1, x = L_(1.73205); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == L_(0.866025));
- }
- for (; i >= MIN_EXP - 100 && x > L_(0.0); i--, x *= L_(0.5))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i || exp == i + 1);
- ASSERT (mantissa >= L_(0.5));
- ASSERT (mantissa < L_(1.0));
- ASSERT (mantissa == my_ldexp (x, - exp));
- }
+ for (i = 1, x = L_(1.01); i <= MAX_EXP; i++, x *= L_(2.0))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == L_(0.505));
+ }
+ for (i = 1, x = L_(1.01); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == L_(0.505));
+ }
+ for (; i >= MIN_EXP - 100 && x > L_(0.0); i--, x *= L_(0.5))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa >= L_(0.5));
+ ASSERT (mantissa < L_(1.0));
+ ASSERT (mantissa == my_ldexp (x, - exp));
+ }
+
+ for (i = 1, x = L_(1.73205); i <= MAX_EXP; i++, x *= L_(2.0))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == L_(0.866025));
+ }
+ for (i = 1, x = L_(1.73205); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == L_(0.866025));
+ }
+ for (; i >= MIN_EXP - 100 && x > L_(0.0); i--, x *= L_(0.5))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i || exp == i + 1);
+ ASSERT (mantissa >= L_(0.5));
+ ASSERT (mantissa < L_(1.0));
+ ASSERT (mantissa == my_ldexp (x, - exp));
+ }
+ }
/* Randomized tests. */
- for (i = 0; i < SIZEOF (RANDOM); i++)
+ for (int i = 0; i < SIZEOF (RANDOM); i++)
{
x = L_(20.0) * RANDOM[i] - L_(10.0); /* -10.0 <= x <= 10.0 */
{
diff --git a/tests/test-frexpl.c b/tests/test-frexpl.c
index 550648b6..d74dceb8 100644
--- a/tests/test-frexpl.c
+++ b/tests/test-frexpl.c
@@ -1,5 +1,5 @@
/* Test of splitting a 'long double' into fraction and mantissa.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -52,7 +52,7 @@ SIGNATURE_CHECK (frexpl, long double, (long double, int *));
/* On PowerPC machines, LDBL_MIN_EXP is -1021, but the smallest reliable
exponent for 'long double' is -968. For exponents below that, the precision
may be truncated to the precision used for 'double'. */
-#if defined __ppc || defined __ppc__ || defined __powerpc || defined __powerpc__
+#if defined _ARCH_PPC
# define MIN_NORMAL_EXP (LDBL_MIN_EXP + 53)
#else
# define MIN_NORMAL_EXP LDBL_MIN_EXP
diff --git a/tests/test-fseterr.c b/tests/test-fseterr.c
index f4dc2af1..88d3293d 100644
--- a/tests/test-fseterr.c
+++ b/tests/test-fseterr.c
@@ -1,5 +1,5 @@
/* Test setting 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 program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/test-fstat.c b/tests/test-fstat.c
index 2fda6963..74c3a5d2 100644
--- a/tests/test-fstat.c
+++ b/tests/test-fstat.c
@@ -1,5 +1,5 @@
/* Tests of fstat() function.
- 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 General Public License as published by
diff --git a/tests/test-ftruncate.c b/tests/test-ftruncate.c
index f749a65c..08b585e5 100644
--- a/tests/test-ftruncate.c
+++ b/tests/test-ftruncate.c
@@ -1,5 +1,5 @@
/* Test truncating a file.
- 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 General Public License as published by
diff --git a/tests/test-fwrite.c b/tests/test-fwrite.c
index 8cabd58c..fc29501f 100644
--- a/tests/test-fwrite.c
+++ b/tests/test-fwrite.c
@@ -1,5 +1,5 @@
/* Test of fwrite() function.
- 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 General Public License as published by
diff --git a/tests/test-getcwd-lgpl.c b/tests/test-getcwd-lgpl.c
index fc3ebc6b..8421cda9 100644
--- a/tests/test-getcwd-lgpl.c
+++ b/tests/test-getcwd-lgpl.c
@@ -1,5 +1,5 @@
/* Test of getcwd() function.
- 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 General Public License as published by
diff --git a/tests/test-getdtablesize.c b/tests/test-getdtablesize.c
index d8f083fc..85cb6182 100644
--- a/tests/test-getdtablesize.c
+++ b/tests/test-getdtablesize.c
@@ -1,5 +1,5 @@
/* Test of getdtablesize() function.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/tests/test-getprogname.c b/tests/test-getprogname.c
index e1e8cb53..57f8e2e0 100644
--- a/tests/test-getprogname.c
+++ b/tests/test-getprogname.c
@@ -1,5 +1,5 @@
/* Test the gnulib getprogname module.
- Copyright (C) 2016-2025 Free Software Foundation, Inc.
+ Copyright (C) 2016-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
diff --git a/tests/test-gettext-h.c b/tests/test-gettext-h.c
index 04e6c6df..e65733dd 100644
--- a/tests/test-gettext-h.c
+++ b/tests/test-gettext-h.c
@@ -1,5 +1,5 @@
/* Test of gettext.h convenience header.
- Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Copyright (C) 2024-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
diff --git a/tests/test-gettimeofday.c b/tests/test-gettimeofday.c
index 8b55ac00..3317b06b 100644
--- a/tests/test-gettimeofday.c
+++ b/tests/test-gettimeofday.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005, 2007, 2009-2025 Free Software Foundation, Inc.
+ * Copyright (C) 2005, 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 General Public License as published by
diff --git a/tests/test-hard-locale.c b/tests/test-hard-locale.c
index a056fe59..bc3dbb64 100644
--- a/tests/test-hard-locale.c
+++ b/tests/test-hard-locale.c
@@ -1,5 +1,5 @@
/* Test of determination whether a locale is different from the "C" locale.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-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
diff --git a/tests/test-iconv-h.c b/tests/test-iconv-h.c
index 78004e16..82a38f5e 100644
--- a/tests/test-iconv-h.c
+++ b/tests/test-iconv-h.c
@@ -1,5 +1,5 @@
/* Test of <iconv.h> substitute.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-iconv.c b/tests/test-iconv.c
index 6e084741..bf577442 100644
--- a/tests/test-iconv.c
+++ b/tests/test-iconv.c
@@ -1,5 +1,5 @@
/* Test of character set conversion.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-ignore-value.c b/tests/test-ignore-value.c
index 95bd3dfc..aa1ac341 100644
--- a/tests/test-ignore-value.c
+++ b/tests/test-ignore-value.c
@@ -1,6 +1,6 @@
/* Test the "ignore-value" module.
- 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 General Public License as published by
diff --git a/tests/test-inet_pton.c b/tests/test-inet_pton.c
index af26f97e..7a76a128 100644
--- a/tests/test-inet_pton.c
+++ b/tests/test-inet_pton.c
@@ -1,5 +1,5 @@
/* Test of inet_pton function.
- 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 General Public License as published by
diff --git a/tests/test-init.sh b/tests/test-init.sh
index cd046286..05075807 100755
--- a/tests/test-init.sh
+++ b/tests/test-init.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Unit tests for init.sh
-# Copyright (C) 2011-2025 Free Software Foundation, Inc.
+# Copyright (C) 2011-2026 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
diff --git a/tests/test-intprops.c b/tests/test-intprops.c
index cce1386e..8cbc8f9c 100644
--- a/tests/test-intprops.c
+++ b/tests/test-intprops.c
@@ -1,5 +1,5 @@
/* Test intprops.h.
- 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 General Public License as published by
diff --git a/tests/test-inttypes-h.c b/tests/test-inttypes-h.c
index 5887a2bc..6e7a22ac 100644
--- a/tests/test-inttypes-h.c
+++ b/tests/test-inttypes-h.c
@@ -1,5 +1,5 @@
/* Test of <inttypes.h> substitute.
- Copyright (C) 2006-2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2006-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 General Public License as published by
diff --git a/tests/test-ioctl.c b/tests/test-ioctl.c
index 804c1724..281dd094 100644
--- a/tests/test-ioctl.c
+++ b/tests/test-ioctl.c
@@ -1,5 +1,5 @@
/* Test of ioctl() function.
- 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 General Public License as published by
diff --git a/tests/test-isblank.c b/tests/test-isblank.c
index 6a66b917..662f704e 100644
--- a/tests/test-isblank.c
+++ b/tests/test-isblank.c
@@ -1,5 +1,5 @@
/* Test of isblank() function.
- 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 General Public License as published by
@@ -31,8 +31,6 @@ SIGNATURE_CHECK (isblank, int, (int));
int
main ()
{
- unsigned int c;
-
/* Verify the property in the "C" locale.
POSIX specifies in
<https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html>
@@ -42,7 +40,7 @@ main ()
- in the "POSIX" locale (which is usually the same as the "C" locale),
the blank characters include only the ASCII <space> and <tab>
characters. */
- for (c = 0; c <= UCHAR_MAX; c++)
+ for (unsigned int c = 0; c <= UCHAR_MAX; c++)
ASSERT (!isblank (c) == !(c == ' ' || c == '\t'));
ASSERT (!isblank (EOF));
diff --git a/tests/test-isnand-nolibm.c b/tests/test-isnand-nolibm.c
index 1fd3122a..096a2958 100644
--- a/tests/test-isnand-nolibm.c
+++ b/tests/test-isnand-nolibm.c
@@ -1,5 +1,5 @@
/* Test of isnand() substitute.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-isnand.h b/tests/test-isnand.h
index a6714f77..3024f7c8 100644
--- a/tests/test-isnand.h
+++ b/tests/test-isnand.h
@@ -1,5 +1,5 @@
/* Test of isnand() substitute.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-isnanf-nolibm.c b/tests/test-isnanf-nolibm.c
index 847bfe9a..5aaba6de 100644
--- a/tests/test-isnanf-nolibm.c
+++ b/tests/test-isnanf-nolibm.c
@@ -1,5 +1,5 @@
/* Test of isnanf() substitute.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-isnanf.h b/tests/test-isnanf.h
index 31f40976..2fd04d5d 100644
--- a/tests/test-isnanf.h
+++ b/tests/test-isnanf.h
@@ -1,5 +1,5 @@
/* Test of isnanf() substitute.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-isnanl-nolibm.c b/tests/test-isnanl-nolibm.c
index 0854f33a..79802e9b 100644
--- a/tests/test-isnanl-nolibm.c
+++ b/tests/test-isnanl-nolibm.c
@@ -1,5 +1,5 @@
/* Test of isnanl() substitute.
- 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 General Public License as published by
diff --git a/tests/test-isnanl.h b/tests/test-isnanl.h
index 3a2d997a..41a139d9 100644
--- a/tests/test-isnanl.h
+++ b/tests/test-isnanl.h
@@ -1,5 +1,5 @@
/* Test of isnanl() substitute.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-iswblank.c b/tests/test-iswblank.c
index 9489d531..501a33ca 100644
--- a/tests/test-iswblank.c
+++ b/tests/test-iswblank.c
@@ -1,5 +1,5 @@
/* Test of iswblank() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-iswdigit.c b/tests/test-iswdigit.c
index f80ffb63..38104cb1 100644
--- a/tests/test-iswdigit.c
+++ b/tests/test-iswdigit.c
@@ -1,5 +1,5 @@
/* Test of iswdigit() function.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-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
@@ -62,49 +62,45 @@ main (int argc, char *argv[])
/* Test single-byte characters.
ISO C 99 sections 7.25.2.1.5 and 5.2.1 specify that the decimal digits
include only the ASCII 0 ... 9 characters. */
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\t': case '\v': case '\f':
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set". */
- buf[0] = (unsigned char) c;
- is = for_character (buf, 1);
- switch (c)
- {
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- ASSERT (is != 0);
- break;
- default:
- ASSERT (is == 0);
- break;
- }
- break;
- }
- }
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ buf[0] = (unsigned char) c;
+ is = for_character (buf, 1);
+ switch (c)
+ {
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ ASSERT (is != 0);
+ break;
+ default:
+ ASSERT (is == 0);
+ break;
+ }
+ break;
+ }
if (argc > 1)
switch (argv[1][0])
diff --git a/tests/test-iswpunct.c b/tests/test-iswpunct.c
index 0d42c427..4fd252dd 100644
--- a/tests/test-iswpunct.c
+++ b/tests/test-iswpunct.c
@@ -1,5 +1,5 @@
/* Test of iswpunct() function.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-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
@@ -63,74 +63,70 @@ main (int argc, char *argv[])
POSIX specifies in
<https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html>
no explicit list of punctuation or symbol characters. */
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\t': case '\v': case '\f':
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set". */
- buf[0] = (unsigned char) c;
- is = for_character (buf, 1);
- switch (c)
- {
- case ' ':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z':
- /* c is an alphanumeric or space character. */
- ASSERT (is == 0);
- break;
- case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case '[': case '\\': case ']': case '^': case '_':
- case '{': case '|': case '}': case '~':
- /* These characters are usually expected to be punctuation or
- symbol characters. */
- ASSERT (is != 0);
- break;
- default:
- ASSERT (is == 0);
- break;
- }
- break;
- }
- }
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ buf[0] = (unsigned char) c;
+ is = for_character (buf, 1);
+ switch (c)
+ {
+ case ' ':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z':
+ /* c is an alphanumeric or space character. */
+ ASSERT (is == 0);
+ break;
+ case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case '[': case '\\': case ']': case '^': case '_':
+ case '{': case '|': case '}': case '~':
+ /* These characters are usually expected to be punctuation or
+ symbol characters. */
+ ASSERT (is != 0);
+ break;
+ default:
+ ASSERT (is == 0);
+ break;
+ }
+ break;
+ }
if (argc > 1)
switch (argv[1][0])
diff --git a/tests/test-iswxdigit.c b/tests/test-iswxdigit.c
index 466e3ac9..5b3d2908 100644
--- a/tests/test-iswxdigit.c
+++ b/tests/test-iswxdigit.c
@@ -1,5 +1,5 @@
/* Test of iswxdigit() function.
- Copyright (C) 2020-2025 Free Software Foundation, Inc.
+ Copyright (C) 2020-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
@@ -62,51 +62,47 @@ main (int argc, char *argv[])
/* Test single-byte characters.
ISO C 99 sections 7.25.2.1.12 and 6.4.4.1 specify that the hexadecimal
digits include only the ASCII 0 ... 9 A ... F a ... f characters. */
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\t': case '\v': case '\f':
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set". */
- buf[0] = (unsigned char) c;
- is = for_character (buf, 1);
- switch (c)
- {
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
- case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
- ASSERT (is != 0);
- break;
- default:
- ASSERT (is == 0);
- break;
- }
- break;
- }
- }
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ buf[0] = (unsigned char) c;
+ is = for_character (buf, 1);
+ switch (c)
+ {
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
+ case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
+ ASSERT (is != 0);
+ break;
+ default:
+ ASSERT (is == 0);
+ break;
+ }
+ break;
+ }
if (argc > 1)
switch (argv[1][0])
diff --git a/tests/test-largefile.c b/tests/test-largefile.c
index b20d83cb..56419285 100644
--- a/tests/test-largefile.c
+++ b/tests/test-largefile.c
@@ -1,5 +1,5 @@
/* Test of largefile module.
- Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ Copyright (C) 2023-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
diff --git a/tests/test-limits-h.c b/tests/test-limits-h.c
index 45e51822..5f9b4a0a 100644
--- a/tests/test-limits-h.c
+++ b/tests/test-limits-h.c
@@ -1,5 +1,5 @@
/* Test of <limits.h> substitute.
- Copyright 2016-2025 Free Software Foundation, Inc.
+ Copyright 2016-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
diff --git a/tests/test-listen.c b/tests/test-listen.c
index 213df7f8..96c9e073 100644
--- a/tests/test-listen.c
+++ b/tests/test-listen.c
@@ -1,5 +1,5 @@
/* Test listen() function.
- 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 General Public License as published by
diff --git a/tests/test-localcharset-w32utf8.c b/tests/test-localcharset-w32utf8.c
index 361c9e90..4a2fe815 100644
--- a/tests/test-localcharset-w32utf8.c
+++ b/tests/test-localcharset-w32utf8.c
@@ -1,6 +1,6 @@
/* Test of localcharset() function
on native Windows in the UTF-8 environment.
- Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Copyright (C) 2024-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
diff --git a/tests/test-localcharset.c b/tests/test-localcharset.c
index cb31fffe..68e943f5 100644
--- a/tests/test-localcharset.c
+++ b/tests/test-localcharset.c
@@ -1,5 +1,5 @@
/* Manual test of localcharset() function.
- 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 General Public License as published by
diff --git a/tests/test-locale-h.c b/tests/test-locale-h.c
index 201cd125..517a85bd 100644
--- a/tests/test-locale-h.c
+++ b/tests/test-locale-h.c
@@ -1,5 +1,5 @@
/* Test of <locale.h> substitute.
- 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 General Public License as published by
diff --git a/tests/test-localeconv-mt.c b/tests/test-localeconv-mt.c
index b6c28c22..0e9ecd31 100644
--- a/tests/test-localeconv-mt.c
+++ b/tests/test-localeconv-mt.c
@@ -1,6 +1,6 @@
/* Multithread-safety test for localeconv()
(in the absence of setlocale() or uselocale() calls).
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-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
diff --git a/tests/test-localeconv.c b/tests/test-localeconv.c
index c39d37d3..238ef35e 100644
--- a/tests/test-localeconv.c
+++ b/tests/test-localeconv.c
@@ -1,5 +1,5 @@
/* Test of localeconv() function.
- Copyright (C) 2012-2025 Free Software Foundation, Inc.
+ Copyright (C) 2012-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
diff --git a/tests/test-localename-w32utf8.c b/tests/test-localename-w32utf8.c
index 892769d2..52ec0798 100644
--- a/tests/test-localename-w32utf8.c
+++ b/tests/test-localename-w32utf8.c
@@ -1,6 +1,6 @@
/* Test of gl_locale_name function and its variants
on native Windows in the UTF-8 environment.
- Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Copyright (C) 2024-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
diff --git a/tests/test-localename.c b/tests/test-localename.c
index 0bbc2c76..837ff9ca 100644
--- a/tests/test-localename.c
+++ b/tests/test-localename.c
@@ -1,5 +1,5 @@
/* Test of gl_locale_name function and its variants.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -244,38 +244,32 @@ test_locale_name (void)
/* Check that gl_locale_name distinguishes different categories of the
thread locale, and that the name is the right one for each. */
- {
- unsigned int i;
-
- for (i = 0; i < SIZEOF (categories); i++)
- {
- int category_mask = categories[i].mask;
- locale_t loc = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL);
- if (loc != NULL)
- {
- locale_t locale = newlocale (category_mask, "de_DE.UTF-8", loc);
- if (locale == NULL)
- freelocale (loc);
- else
- {
- unsigned int j;
-
- uselocale (locale);
- for (j = 0; j < SIZEOF (categories); j++)
- {
- const char *name_j =
- gl_locale_name (categories[j].cat, categories[j].string);
- if (j == i)
- ASSERT (strcmp (name_j, "de_DE.UTF-8") == 0);
- else
- ASSERT (strcmp (name_j, "fr_FR.UTF-8") == 0);
- }
- uselocale (LC_GLOBAL_LOCALE);
- freelocale (locale);
- }
- }
- }
- }
+ for (unsigned int i = 0; i < SIZEOF (categories); i++)
+ {
+ int category_mask = categories[i].mask;
+ locale_t loc = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL);
+ if (loc != NULL)
+ {
+ locale_t locale = newlocale (category_mask, "de_DE.UTF-8", loc);
+ if (locale == NULL)
+ freelocale (loc);
+ else
+ {
+ uselocale (locale);
+ for (unsigned int j = 0; j < SIZEOF (categories); j++)
+ {
+ const char *name_j =
+ gl_locale_name (categories[j].cat, categories[j].string);
+ if (j == i)
+ ASSERT (strcmp (name_j, "de_DE.UTF-8") == 0);
+ else
+ ASSERT (strcmp (name_j, "fr_FR.UTF-8") == 0);
+ }
+ uselocale (LC_GLOBAL_LOCALE);
+ freelocale (locale);
+ }
+ }
+ }
#endif
}
@@ -312,39 +306,33 @@ test_locale_name_thread (void)
/* Check that gl_locale_name_thread distinguishes different categories of the
thread locale, and that the name is the right one for each. */
- {
- unsigned int i;
-
- for (i = 0; i < SIZEOF (categories); i++)
- {
- int category_mask = categories[i].mask;
- locale_t loc = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL);
- if (loc != NULL)
- {
- locale_t locale = newlocale (category_mask, "de_DE.UTF-8", loc);
- if (locale == NULL)
- freelocale (loc);
- else
- {
- unsigned int j;
-
- uselocale (locale);
- for (j = 0; j < SIZEOF (categories); j++)
- {
- const char *name_j =
- gl_locale_name_thread (categories[j].cat,
- categories[j].string);
- if (j == i)
- ASSERT (strcmp (name_j, "de_DE.UTF-8") == 0);
- else
- ASSERT (strcmp (name_j, "fr_FR.UTF-8") == 0);
- }
- uselocale (LC_GLOBAL_LOCALE);
- freelocale (locale);
- }
- }
- }
- }
+ for (unsigned int i = 0; i < SIZEOF (categories); i++)
+ {
+ int category_mask = categories[i].mask;
+ locale_t loc = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL);
+ if (loc != NULL)
+ {
+ locale_t locale = newlocale (category_mask, "de_DE.UTF-8", loc);
+ if (locale == NULL)
+ freelocale (loc);
+ else
+ {
+ uselocale (locale);
+ for (unsigned int j = 0; j < SIZEOF (categories); j++)
+ {
+ const char *name_j =
+ gl_locale_name_thread (categories[j].cat,
+ categories[j].string);
+ if (j == i)
+ ASSERT (strcmp (name_j, "de_DE.UTF-8") == 0);
+ else
+ ASSERT (strcmp (name_j, "fr_FR.UTF-8") == 0);
+ }
+ uselocale (LC_GLOBAL_LOCALE);
+ freelocale (locale);
+ }
+ }
+ }
/* Check that gl_locale_name_thread returns a string that is allocated with
indefinite extent. */
@@ -463,18 +451,15 @@ test_locale_name_thread (void)
/* Array of remembered results of gl_locale_name_thread, stored in safe
memory. */
char *saved_names[SIZEOF (choices)][SIZEOF (categories)];
- unsigned int j;
- for (j = 0; j < SIZEOF (choices); j++)
+ for (unsigned int j = 0; j < SIZEOF (choices); j++)
{
locale_t locale = newlocale (LC_ALL_MASK, choices[j], NULL);
available[j] = (locale != NULL);
if (locale != NULL)
{
- unsigned int i;
-
uselocale (locale);
- for (i = 0; i < SIZEOF (categories); i++)
+ for (unsigned int i = 0; i < SIZEOF (categories); i++)
{
unsaved_names[j][i] = gl_locale_name_thread (categories[i].cat, categories[i].string);
saved_names[j][i] = strdup (unsaved_names[j][i]);
@@ -484,27 +469,24 @@ test_locale_name_thread (void)
}
}
/* Verify the unsaved_names are still valid. */
- for (j = 0; j < SIZEOF (choices); j++)
+ for (unsigned int j = 0; j < SIZEOF (choices); j++)
if (available[j])
{
- unsigned int i;
-
- for (i = 0; i < SIZEOF (categories); i++)
+ for (unsigned int i = 0; i < SIZEOF (categories); i++)
ASSERT (strcmp (unsaved_names[j][i], saved_names[j][i]) == 0);
}
/* Allocate many locales, without freeing them. This is an attempt at
overwriting as much of the previously allocated memory as possible. */
- for (j = SIZEOF (choices); j > 0; )
+ for (unsigned int j = SIZEOF (choices); j > 0; )
{
j--;
if (available[j])
{
locale_t locale = newlocale (LC_ALL_MASK, choices[j], NULL);
- unsigned int i;
ASSERT (locale != NULL);
uselocale (locale);
- for (i = 0; i < SIZEOF (categories); i++)
+ for (unsigned int i = 0; i < SIZEOF (categories); i++)
{
const char *name = gl_locale_name_thread (categories[i].cat, categories[i].string);
ASSERT (strcmp (unsaved_names[j][i], name) == 0);
@@ -514,12 +496,10 @@ test_locale_name_thread (void)
}
}
/* Verify the unsaved_names are still valid. */
- for (j = 0; j < SIZEOF (choices); j++)
+ for (unsigned int j = 0; j < SIZEOF (choices); j++)
if (available[j])
{
- unsigned int i;
-
- for (i = 0; i < SIZEOF (categories); i++)
+ for (unsigned int i = 0; i < SIZEOF (categories); i++)
{
ASSERT (strcmp (unsaved_names[j][i], saved_names[j][i]) == 0);
free (saved_names[j][i]);
diff --git a/tests/test-lock.c b/tests/test-lock.c
index 35142031..d44c2152 100644
--- a/tests/test-lock.c
+++ b/tests/test-lock.c
@@ -1,5 +1,5 @@
/* Test of locking in multithreaded situations.
- Copyright (C) 2005, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2008-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
@@ -125,10 +125,10 @@ random_account (void)
static void
check_accounts (void)
{
- int i, sum;
+ int sum;
sum = 0;
- for (i = 0; i < ACCOUNT_COUNT; i++)
+ for (int i = 0; i < ACCOUNT_COUNT; i++)
sum += account[i];
if (sum != ACCOUNT_COUNT * 1000)
abort ();
@@ -146,9 +146,7 @@ gl_lock_define_initialized(static, my_lock)
static void *
lock_mutator_thread (_GL_UNUSED void *arg)
{
- int repeat;
-
- for (repeat = REPEAT_COUNT; repeat > 0; repeat--)
+ for (int repeat = REPEAT_COUNT; repeat > 0; repeat--)
{
int i1, i2, value;
@@ -202,23 +200,22 @@ lock_checker_thread (_GL_UNUSED void *arg)
static void
test_lock (void)
{
- int i;
gl_thread_t checkerthread;
gl_thread_t threads[THREAD_COUNT];
/* Initialization. */
- for (i = 0; i < ACCOUNT_COUNT; i++)
+ for (int i = 0; i < ACCOUNT_COUNT; i++)
account[i] = 1000;
init_atomic_int (&lock_checker_done);
set_atomic_int_value (&lock_checker_done, 0);
/* Spawn the threads. */
checkerthread = gl_thread_create (lock_checker_thread, NULL);
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
threads[i] = gl_thread_create (lock_mutator_thread, NULL);
/* Wait for the threads to terminate. */
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
gl_thread_join (threads[i], NULL);
set_atomic_int_value (&lock_checker_done, 1);
gl_thread_join (checkerthread, NULL);
@@ -237,9 +234,7 @@ gl_rwlock_define_initialized(static, my_rwlock)
static void *
rwlock_mutator_thread (_GL_UNUSED void *arg)
{
- int repeat;
-
- for (repeat = REPEAT_COUNT; repeat > 0; repeat--)
+ for (int repeat = REPEAT_COUNT; repeat > 0; repeat--)
{
int i1, i2, value;
@@ -287,27 +282,26 @@ rwlock_checker_thread (_GL_UNUSED void *arg)
static void
test_rwlock (void)
{
- int i;
gl_thread_t checkerthreads[THREAD_COUNT];
gl_thread_t threads[THREAD_COUNT];
/* Initialization. */
- for (i = 0; i < ACCOUNT_COUNT; i++)
+ for (int i = 0; i < ACCOUNT_COUNT; i++)
account[i] = 1000;
init_atomic_int (&rwlock_checker_done);
set_atomic_int_value (&rwlock_checker_done, 0);
/* Spawn the threads. */
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
checkerthreads[i] = gl_thread_create (rwlock_checker_thread, NULL);
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
threads[i] = gl_thread_create (rwlock_mutator_thread, NULL);
/* Wait for the threads to terminate. */
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
gl_thread_join (threads[i], NULL);
set_atomic_int_value (&rwlock_checker_done, 1);
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
gl_thread_join (checkerthreads[i], NULL);
check_accounts ();
}
@@ -348,9 +342,7 @@ recshuffle (void)
static void *
reclock_mutator_thread (_GL_UNUSED void *arg)
{
- int repeat;
-
- for (repeat = REPEAT_COUNT; repeat > 0; repeat--)
+ for (int repeat = REPEAT_COUNT; repeat > 0; repeat--)
{
recshuffle ();
@@ -390,23 +382,22 @@ reclock_checker_thread (_GL_UNUSED void *arg)
static void
test_recursive_lock (void)
{
- int i;
gl_thread_t checkerthread;
gl_thread_t threads[THREAD_COUNT];
/* Initialization. */
- for (i = 0; i < ACCOUNT_COUNT; i++)
+ for (int i = 0; i < ACCOUNT_COUNT; i++)
account[i] = 1000;
init_atomic_int (&reclock_checker_done);
set_atomic_int_value (&reclock_checker_done, 0);
/* Spawn the threads. */
checkerthread = gl_thread_create (reclock_checker_thread, NULL);
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
threads[i] = gl_thread_create (reclock_mutator_thread, NULL);
/* Wait for the threads to terminate. */
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
gl_thread_join (threads[i], NULL);
set_atomic_int_value (&reclock_checker_done, 1);
gl_thread_join (checkerthread, NULL);
@@ -443,9 +434,8 @@ static void *
once_contender_thread (void *arg)
{
int id = (int) (intptr_t) arg;
- int repeat;
- for (repeat = 0; repeat <= REPEAT_COUNT; repeat++)
+ for (int repeat = 0; repeat <= REPEAT_COUNT; repeat++)
{
/* Tell the main thread that we're ready. */
gl_lock_lock (ready_lock[id]);
@@ -480,17 +470,16 @@ once_contender_thread (void *arg)
static void
test_once (void)
{
- int i, repeat;
gl_thread_t threads[THREAD_COUNT];
/* Initialize all variables. */
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
{
ready[i] = 0;
gl_lock_init (ready_lock[i]);
}
#if ENABLE_LOCKING
- for (i = 0; i < REPEAT_COUNT; i++)
+ for (int i = 0; i < REPEAT_COUNT; i++)
gl_rwlock_init (fire_signal[i]);
#else
fire_signal_state = 0;
@@ -498,23 +487,23 @@ test_once (void)
#if ENABLE_LOCKING
/* Block all fire_signals. */
- for (i = REPEAT_COUNT-1; i >= 0; i--)
+ for (int i = REPEAT_COUNT-1; i >= 0; i--)
gl_rwlock_wrlock (fire_signal[i]);
#endif
/* Spawn the threads. */
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
threads[i] =
gl_thread_create (once_contender_thread, (void *) (intptr_t) i);
- for (repeat = 0; repeat <= REPEAT_COUNT; repeat++)
+ for (int repeat = 0; repeat <= REPEAT_COUNT; repeat++)
{
/* Wait until every thread is ready. */
dbgprintf ("Main thread before synchronizing for round %d\n", repeat);
for (;;)
{
int ready_count = 0;
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
{
gl_lock_lock (ready_lock[i]);
ready_count += ready[i];
@@ -544,7 +533,7 @@ test_once (void)
performed = 0;
/* Preparation for the next round: Reset the ready flags. */
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
{
gl_lock_lock (ready_lock[i]);
ready[i] = 0;
@@ -561,7 +550,7 @@ test_once (void)
}
/* Wait for the threads to terminate. */
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
gl_thread_join (threads[i], NULL);
}
diff --git a/tests/test-lstat.c b/tests/test-lstat.c
index 9fd43a58..abd1430d 100644
--- a/tests/test-lstat.c
+++ b/tests/test-lstat.c
@@ -1,5 +1,5 @@
/* Test of lstat() function.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/tests/test-lstat.h b/tests/test-lstat.h
index 899cb267..5bf14223 100644
--- a/tests/test-lstat.h
+++ b/tests/test-lstat.h
@@ -1,5 +1,5 @@
/* Test of lstat() function.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/tests/test-malloc-gnu.c b/tests/test-malloc-gnu.c
index 55cc0d34..7b243ac4 100644
--- a/tests/test-malloc-gnu.c
+++ b/tests/test-malloc-gnu.c
@@ -1,5 +1,5 @@
/* Test of malloc function.
- 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 General Public License as published by
diff --git a/tests/test-malloc-posix.c b/tests/test-malloc-posix.c
index 1d00abe2..e64dffb7 100644
--- a/tests/test-malloc-posix.c
+++ b/tests/test-malloc-posix.c
@@ -1,5 +1,5 @@
/* Test of malloc function.
- Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Copyright (C) 2024-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
diff --git a/tests/test-malloca.c b/tests/test-malloca.c
index 438106e1..9db68797 100644
--- a/tests/test-malloca.c
+++ b/tests/test-malloca.c
@@ -1,5 +1,5 @@
/* Test of safe automatic memory allocation.
- Copyright (C) 2005, 2007, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005, 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 General Public License as published by
@@ -35,13 +35,11 @@ void (*func) (int) = do_allocation;
int
main ()
{
- int i;
-
/* This slows down malloc a lot. */
unsetenv ("MALLOC_PERTURB_");
/* Repeat a lot of times, to make sure there's no memory leak. */
- for (i = 0; i < 50000; i++)
+ for (int i = 0; i < 50000; i++)
{
/* Try various values.
n = 0 gave a crash on Alpha with gcc-2.5.8.
diff --git a/tests/test-math-h.c b/tests/test-math-h.c
index 4a878bb3..24a27b98 100644
--- a/tests/test-math-h.c
+++ b/tests/test-math-h.c
@@ -1,5 +1,5 @@
/* Test of <math.h> substitute.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-mbrtoc32-w32.c b/tests/test-mbrtoc32-w32.c
index 107497d0..490df377 100644
--- a/tests/test-mbrtoc32-w32.c
+++ b/tests/test-mbrtoc32-w32.c
@@ -1,5 +1,5 @@
/* Test of conversion of multibyte character to 32-bit wide character.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -110,11 +110,10 @@ test_one_locale (const char *name, int codepage)
/* Test single-byte input. */
{
- int c;
char buf[1];
memset (&state, '\0', sizeof (mbstate_t));
- for (c = 0; c < 0x100; c++)
+ for (int c = 0; c < 0x100; c++)
switch (c)
{
case '\t': case '\v': case '\f':
@@ -719,10 +718,9 @@ main (int argc, char *argv[])
{
int codepage = atoi (argv[argc - 1]);
int result;
- int i;
result = 77;
- for (i = 1; i < argc - 1; i++)
+ for (int i = 1; i < argc - 1; i++)
{
int ret = test_one_locale (argv[i], codepage);
diff --git a/tests/test-mbrtoc32.c b/tests/test-mbrtoc32.c
index d1bf56bc..6c081c2c 100644
--- a/tests/test-mbrtoc32.c
+++ b/tests/test-mbrtoc32.c
@@ -1,5 +1,5 @@
/* Test of conversion of multibyte character to 32-bit wide character.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -67,11 +67,10 @@ main (int argc, char *argv[])
/* Test single-byte input. */
{
- int c;
char buf[1];
memset (&state, '\0', sizeof (mbstate_t));
- for (c = 0; c < 0x100; c++)
+ for (int c = 0; c < 0x100; c++)
switch (c)
{
case '\t': case '\v': case '\f':
@@ -141,11 +140,10 @@ main (int argc, char *argv[])
case '1':
/* C or POSIX locale. */
{
- int c;
char buf[1];
memset (&state, '\0', sizeof (mbstate_t));
- for (c = 0; c < 0x100; c++)
+ for (int c = 0; c < 0x100; c++)
if (c != 0)
{
/* We are testing all nonnull bytes. */
diff --git a/tests/test-mbrtowc-w32.c b/tests/test-mbrtowc-w32.c
index 4ec33f94..d71d10c7 100644
--- a/tests/test-mbrtowc-w32.c
+++ b/tests/test-mbrtowc-w32.c
@@ -1,5 +1,5 @@
/* Test of conversion of multibyte character to wide character.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -112,11 +112,10 @@ test_one_locale (const char *name, int codepage)
/* Test single-byte input. */
{
- int c;
char buf[1];
memset (&state, '\0', sizeof (mbstate_t));
- for (c = 0; c < 0x100; c++)
+ for (int c = 0; c < 0x100; c++)
switch (c)
{
case '\t': case '\v': case '\f':
@@ -703,10 +702,9 @@ main (int argc, char *argv[])
{
int codepage = atoi (argv[argc - 1]);
int result;
- int i;
result = 77;
- for (i = 1; i < argc - 1; i++)
+ for (int i = 1; i < argc - 1; i++)
{
int ret = test_one_locale (argv[i], codepage);
diff --git a/tests/test-mbrtowc-w32utf8.c b/tests/test-mbrtowc-w32utf8.c
index b2501660..5b7a2d9d 100644
--- a/tests/test-mbrtowc-w32utf8.c
+++ b/tests/test-mbrtowc-w32utf8.c
@@ -1,6 +1,6 @@
/* Test of conversion of multibyte character to wide character
on native Windows in the UTF-8 environment.
- Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Copyright (C) 2024-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
diff --git a/tests/test-mbrtowc.c b/tests/test-mbrtowc.c
index 2c288a29..e17f5b1a 100644
--- a/tests/test-mbrtowc.c
+++ b/tests/test-mbrtowc.c
@@ -1,5 +1,5 @@
/* Test of conversion of multibyte character to wide character.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -66,11 +66,10 @@ main (int argc, char *argv[])
/* Test single-byte input. */
{
- int c;
char buf[1];
memset (&state, '\0', sizeof (mbstate_t));
- for (c = 0; c < 0x100; c++)
+ for (int c = 0; c < 0x100; c++)
switch (c)
{
case '\t': case '\v': case '\f':
@@ -140,11 +139,10 @@ main (int argc, char *argv[])
case '1':
/* C or POSIX locale. */
{
- int c;
char buf[1];
memset (&state, '\0', sizeof (mbstate_t));
- for (c = 0; c < 0x100; c++)
+ for (int c = 0; c < 0x100; c++)
if (c != 0)
{
/* We are testing all nonnull bytes. */
diff --git a/tests/test-mbsinit.c b/tests/test-mbsinit.c
index cd57e9ff..f0093a7d 100644
--- a/tests/test-mbsinit.c
+++ b/tests/test-mbsinit.c
@@ -1,5 +1,5 @@
/* Test of test for initial conversion state.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/tests/test-mbsnlen.c b/tests/test-mbsnlen.c
index 233cdc4e..66a4d70a 100644
--- a/tests/test-mbsnlen.c
+++ b/tests/test-mbsnlen.c
@@ -1,5 +1,5 @@
/* Test of searching a string for a character outside a given set of characters.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-memchr.c b/tests/test-memchr.c
index 48f9b2ea..7d72dbac 100644
--- a/tests/test-memchr.c
+++ b/tests/test-memchr.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2026 Free Software Foundation, Inc.
* Written by Eric Blake and Bruno Haible
*
* This program is free software: you can redistribute it and/or modify
@@ -31,7 +31,7 @@ SIGNATURE_CHECK (memchr, void *, (void const *, int, size_t));
static void *
lib_memchr (void const *s, int c, size_t n)
{
- return memchr (s, c, n);
+ return (void *) memchr (s, c, n);
}
static void *(*volatile volatile_memchr) (void const *, int, size_t)
= lib_memchr;
@@ -41,61 +41,62 @@ static void *(*volatile volatile_memchr) (void const *, int, size_t)
int
main (void)
{
- size_t n = 0x100000;
- char *input = malloc (n);
- ASSERT (input);
-
- input[0] = 'a';
- input[1] = 'b';
- memset (input + 2, 'c', 1024);
- memset (input + 1026, 'd', n - 1028);
- input[n - 2] = 'e';
- input[n - 1] = 'a';
-
- /* Basic behavior tests. */
- ASSERT (memchr (input, 'a', n) == input);
-
- ASSERT (memchr (input, 'a', 0) == NULL);
-
{
- void *page_boundary = zerosize_ptr ();
- if (page_boundary)
- ASSERT (memchr (page_boundary, 'a', 0) == NULL);
- }
-
- ASSERT (memchr (input, 'b', n) == input + 1);
- ASSERT (memchr (input, 'c', n) == input + 2);
- ASSERT (memchr (input, 'd', n) == input + 1026);
-
- ASSERT (memchr (input + 1, 'a', n - 1) == input + n - 1);
- ASSERT (memchr (input + 1, 'e', n - 1) == input + n - 2);
- ASSERT (memchr (input + 1, 0x789abc00 | 'e', n - 1) == input + n - 2);
-
- ASSERT (memchr (input, 'f', n) == NULL);
- ASSERT (memchr (input, '\0', n) == NULL);
-
- /* Check that a very long haystack is handled quickly if the byte is
- found near the beginning. */
- {
- size_t repeat = 10000;
- for (; repeat > 0; repeat--)
- {
- ASSERT (memchr (input, 'c', n) == input + 2);
- }
- }
-
- /* Alignment tests. */
- {
- int i, j;
- for (i = 0; i < 32; i++)
+ size_t n = 0x100000;
+ char *input = malloc (n);
+ ASSERT (input);
+
+ input[0] = 'a';
+ input[1] = 'b';
+ memset (input + 2, 'c', 1024);
+ memset (input + 1026, 'd', n - 1028);
+ input[n - 2] = 'e';
+ input[n - 1] = 'a';
+
+ /* Basic behavior tests. */
+ ASSERT (memchr (input, 'a', n) == input);
+
+ ASSERT (memchr (input, 'a', 0) == NULL);
+
+ {
+ void *page_boundary = zerosize_ptr ();
+ if (page_boundary)
+ ASSERT (memchr (page_boundary, 'a', 0) == NULL);
+ }
+
+ ASSERT (memchr (input, 'b', n) == input + 1);
+ ASSERT (memchr (input, 'c', n) == input + 2);
+ ASSERT (memchr (input, 'd', n) == input + 1026);
+
+ ASSERT (memchr (input + 1, 'a', n - 1) == input + n - 1);
+ ASSERT (memchr (input + 1, 'e', n - 1) == input + n - 2);
+ ASSERT (memchr (input + 1, 0x789abc00 | 'e', n - 1) == input + n - 2);
+
+ ASSERT (memchr (input, 'f', n) == NULL);
+ ASSERT (memchr (input, '\0', n) == NULL);
+
+ /* Check that a very long haystack is handled quickly if the byte is
+ found near the beginning. */
+ {
+ size_t repeat = 10000;
+ for (; repeat > 0; repeat--)
+ {
+ ASSERT (memchr (input, 'c', n) == input + 2);
+ }
+ }
+
+ /* Alignment tests. */
+ for (int i = 0; i < 32; i++)
{
- for (j = 0; j < 256; j++)
+ for (int j = 0; j < 256; j++)
input[i + j] = j;
- for (j = 0; j < 256; j++)
+ for (int j = 0; j < 256; j++)
{
ASSERT (memchr (input + i, j, 256) == input + i + j);
}
}
+
+ free (input);
}
/* Check that memchr() does not read past the first occurrence of the
@@ -112,34 +113,27 @@ main (void)
if (page_boundary != NULL)
{
- for (n = 1; n <= limit; n++)
+ for (int n = 1; n <= limit; n++)
{
char *mem = page_boundary - n;
memset (mem, 'X', n);
ASSERT (memchr (mem, 'U', n) == NULL);
ASSERT (memchr (mem, 0, n) == NULL);
- {
- size_t i;
- size_t k;
-
- for (i = 0; i < n; i++)
- {
- mem[i] = 'U';
- for (k = i + 1; k < n + limit; k++)
- ASSERT (memchr (mem, 'U', k) == mem + i);
- mem[i] = 0;
- for (k = i + 1; k < n + limit; k++)
- ASSERT (memchr (mem, 0, k) == mem + i);
- mem[i] = 'X';
- }
- }
+ for (size_t i = 0; i < n; i++)
+ {
+ mem[i] = 'U';
+ for (size_t k = i + 1; k < n + limit; k++)
+ ASSERT (memchr (mem, 'U', k) == mem + i);
+ mem[i] = 0;
+ for (size_t k = i + 1; k < n + limit; k++)
+ ASSERT (memchr (mem, 0, k) == mem + i);
+ mem[i] = 'X';
+ }
}
}
}
- free (input);
-
/* Test zero-length operations on NULL pointers, allowed by
<https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3322.pdf>. */
ASSERT (memchr (NULL, '?', 0) == NULL);
diff --git a/tests/test-mkfifo.c b/tests/test-mkfifo.c
index c30b999f..7c93a98b 100644
--- a/tests/test-mkfifo.c
+++ b/tests/test-mkfifo.c
@@ -1,5 +1,5 @@
/* Tests of mkfifo.
- 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 General Public License as published by
diff --git a/tests/test-mkfifo.h b/tests/test-mkfifo.h
index 986d7dcf..d8c1c789 100644
--- a/tests/test-mkfifo.h
+++ b/tests/test-mkfifo.h
@@ -1,5 +1,5 @@
/* Tests of mkfifo and friends.
- 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 General Public License as published by
diff --git a/tests/test-nanosleep.c b/tests/test-nanosleep.c
index 7f51e6c8..812c7ccb 100644
--- a/tests/test-nanosleep.c
+++ b/tests/test-nanosleep.c
@@ -1,5 +1,5 @@
/* Test of nanosleep() function.
- 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 General Public License as published by
diff --git a/tests/test-netinet_in-h.c b/tests/test-netinet_in-h.c
index b5b7cd1b..45b8af49 100644
--- a/tests/test-netinet_in-h.c
+++ b/tests/test-netinet_in-h.c
@@ -1,5 +1,5 @@
/* Test of <netinet/in.h> substitute.
- 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 General Public License as published by
diff --git a/tests/test-once.c b/tests/test-once.c
index 8121e584..77bf0b41 100644
--- a/tests/test-once.c
+++ b/tests/test-once.c
@@ -1,5 +1,5 @@
/* Test of once-only execution in multithreaded situations.
- 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 General Public License as published by
diff --git a/tests/test-open.c b/tests/test-open.c
index 84df160f..5db0d812 100644
--- a/tests/test-open.c
+++ b/tests/test-open.c
@@ -1,5 +1,5 @@
/* Test of opening a file descriptor.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-open.h b/tests/test-open.h
index 1a80af45..6a0a8b3e 100644
--- a/tests/test-open.h
+++ b/tests/test-open.h
@@ -1,5 +1,5 @@
/* Test of opening a file descriptor.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -32,8 +32,9 @@
# define ALWAYS_INLINE
#endif
-/* This file is designed to test both open(n,buf[,mode]) and
- openat(AT_FDCWD,n,buf[,mode]). FUNC is the function to test.
+/* This file is designed to test open(n,buf[,mode]),
+ openat(dfd,n,buf[,mode]), and openat2(dfd,n,how,size).
+ FUNC is the function to test; for openat and openat2 it is a wrapper.
Assumes that BASE and ASSERT are already defined, and that
appropriate headers are already included. If PRINT, warn before
skipping symlink tests with status 77. */
@@ -144,9 +145,7 @@ test_open (int (*func) (char const *, int, ...), bool print)
{
/* Since the O_CLOEXEC handling goes through a special code path at its
first invocation, test it twice. */
- int i;
-
- for (i = 0; i < 2; i++)
+ for (int i = 0; i < 2; i++)
{
int flags;
diff --git a/tests/test-pathmax.c b/tests/test-pathmax.c
index f47ae9c2..50ee0be7 100644
--- a/tests/test-pathmax.c
+++ b/tests/test-pathmax.c
@@ -1,5 +1,5 @@
/* Test of "pathmax.h".
- 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 General Public License as published by
diff --git a/tests/test-perror.c b/tests/test-perror.c
index 92779bd9..0efc1a94 100644
--- a/tests/test-perror.c
+++ b/tests/test-perror.c
@@ -1,5 +1,5 @@
/* Test of perror() function.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/tests/test-perror2.c b/tests/test-perror2.c
index a0c87b23..92dd7357 100644
--- a/tests/test-perror2.c
+++ b/tests/test-perror2.c
@@ -1,5 +1,5 @@
/* Test of perror() function.
- 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 General Public License as published by
@@ -95,8 +95,7 @@ main (void)
/* Test that perror uses the same message as strerror. */
{
int errs[] = { EACCES, 0, -3, };
- int i;
- for (i = 0; i < SIZEOF (errs); i++)
+ for (int i = 0; i < SIZEOF (errs); i++)
{
char buf[256];
const char *err = strerror (errs[i]);
diff --git a/tests/test-pipe.c b/tests/test-pipe.c
index afe91989..4b3eca28 100644
--- a/tests/test-pipe.c
+++ b/tests/test-pipe.c
@@ -1,5 +1,5 @@
/* Test of pipe.
- 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 General Public License as published by
diff --git a/tests/test-printf-frexp.c b/tests/test-printf-frexp.c
index b3736b84..ece2ffc5 100644
--- a/tests/test-printf-frexp.c
+++ b/tests/test-printf-frexp.c
@@ -1,5 +1,5 @@
/* Test of splitting a double into fraction and mantissa.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-printf-frexpl.c b/tests/test-printf-frexpl.c
index f64f16d5..3e63de7f 100644
--- a/tests/test-printf-frexpl.c
+++ b/tests/test-printf-frexpl.c
@@ -1,5 +1,5 @@
/* Test of splitting a 'long double' into fraction and mantissa.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -28,7 +28,7 @@
/* On PowerPC machines, LDBL_MIN_EXP is -1021, but the smallest reliable
exponent for 'long double' is -968. For exponents below that, the precision
may be truncated to the precision used for 'double'. */
-#if defined __ppc || defined __ppc__ || defined __powerpc || defined __powerpc__
+#if defined _ARCH_PPC
# define MIN_NORMAL_EXP (LDBL_MIN_EXP + 53)
# define MIN_SUBNORMAL_EXP MIN_NORMAL_EXP
#else
diff --git a/tests/test-pselect.c b/tests/test-pselect.c
index eef7a0f5..f324e674 100644
--- a/tests/test-pselect.c
+++ b/tests/test-pselect.c
@@ -1,5 +1,5 @@
/* Test of pselect() substitute.
- 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 General Public License as published by
diff --git a/tests/test-pthread-cond.c b/tests/test-pthread-cond.c
index 9a46b018..1aff912a 100644
--- a/tests/test-pthread-cond.c
+++ b/tests/test-pthread-cond.c
@@ -1,5 +1,5 @@
/* Test of condition variables in multithreaded situations.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -204,11 +204,11 @@ test_pthread_cond_timedwait (void)
pthread_cond_timedwait_routine, &skipped)
== 0);
- /* Sleep for 2 seconds. */
+ /* Sleep for 3 seconds. */
{
struct timespec remaining;
- remaining.tv_sec = 2;
+ remaining.tv_sec = 3;
remaining.tv_nsec = 0;
do
diff --git a/tests/test-pthread-mutex-type.c b/tests/test-pthread-mutex-type.c
index e23b9adf..ba14ba32 100644
--- a/tests/test-pthread-mutex-type.c
+++ b/tests/test-pthread-mutex-type.c
@@ -1,5 +1,5 @@
/* Test of locking in multithreaded situations.
- Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Copyright (C) 2024-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
diff --git a/tests/test-pthread-mutex.c b/tests/test-pthread-mutex.c
index 5671263e..a82ae8c3 100644
--- a/tests/test-pthread-mutex.c
+++ b/tests/test-pthread-mutex.c
@@ -1,5 +1,5 @@
/* Test of locking in multithreaded situations.
- Copyright (C) 2005, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2008-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
@@ -99,10 +99,10 @@ random_account (void)
static void
check_accounts (void)
{
- int i, sum;
+ int sum;
sum = 0;
- for (i = 0; i < ACCOUNT_COUNT; i++)
+ for (int i = 0; i < ACCOUNT_COUNT; i++)
sum += account[i];
if (sum != ACCOUNT_COUNT * 1000)
abort ();
@@ -120,9 +120,7 @@ static pthread_mutex_t my_lock;
static void *
lock_mutator_thread (void *arg)
{
- int repeat;
-
- for (repeat = REPEAT_COUNT; repeat > 0; repeat--)
+ for (int repeat = REPEAT_COUNT; repeat > 0; repeat--)
{
int i1, i2, value;
@@ -176,12 +174,11 @@ lock_checker_thread (void *arg)
static void
test_pthread_mutex_normal (void)
{
- int i;
pthread_t checkerthread;
pthread_t threads[THREAD_COUNT];
/* Initialization. */
- for (i = 0; i < ACCOUNT_COUNT; i++)
+ for (int i = 0; i < ACCOUNT_COUNT; i++)
account[i] = 1000;
init_atomic_int (&lock_checker_done);
set_atomic_int_value (&lock_checker_done, 0);
@@ -189,11 +186,11 @@ test_pthread_mutex_normal (void)
/* Spawn the threads. */
ASSERT (pthread_create (&checkerthread, NULL, lock_checker_thread, NULL)
== 0);
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
ASSERT (pthread_create (&threads[i], NULL, lock_mutator_thread, NULL) == 0);
/* Wait for the threads to terminate. */
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
ASSERT (pthread_join (threads[i], NULL) == 0);
set_atomic_int_value (&lock_checker_done, 1);
ASSERT (pthread_join (checkerthread, NULL) == 0);
@@ -236,9 +233,7 @@ recshuffle (void)
static void *
reclock_mutator_thread (void *arg)
{
- int repeat;
-
- for (repeat = REPEAT_COUNT; repeat > 0; repeat--)
+ for (int repeat = REPEAT_COUNT; repeat > 0; repeat--)
{
recshuffle ();
@@ -278,12 +273,11 @@ reclock_checker_thread (void *arg)
static void
test_pthread_mutex_recursive (void)
{
- int i;
pthread_t checkerthread;
pthread_t threads[THREAD_COUNT];
/* Initialization. */
- for (i = 0; i < ACCOUNT_COUNT; i++)
+ for (int i = 0; i < ACCOUNT_COUNT; i++)
account[i] = 1000;
init_atomic_int (&reclock_checker_done);
set_atomic_int_value (&reclock_checker_done, 0);
@@ -291,12 +285,12 @@ test_pthread_mutex_recursive (void)
/* Spawn the threads. */
ASSERT (pthread_create (&checkerthread, NULL, reclock_checker_thread, NULL)
== 0);
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
ASSERT (pthread_create (&threads[i], NULL, reclock_mutator_thread, NULL)
== 0);
/* Wait for the threads to terminate. */
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
ASSERT (pthread_join (threads[i], NULL) == 0);
set_atomic_int_value (&reclock_checker_done, 1);
ASSERT (pthread_join (checkerthread, NULL) == 0);
diff --git a/tests/test-pthread-once1.c b/tests/test-pthread-once1.c
index 825380d1..572bc312 100644
--- a/tests/test-pthread-once1.c
+++ b/tests/test-pthread-once1.c
@@ -1,5 +1,5 @@
/* Test of once-only execution in multithreaded situations.
- 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 General Public License as published by
diff --git a/tests/test-pthread-once2.c b/tests/test-pthread-once2.c
index 4df7b350..c199307b 100644
--- a/tests/test-pthread-once2.c
+++ b/tests/test-pthread-once2.c
@@ -1,5 +1,5 @@
/* Test of once-only execution in multithreaded situations.
- Copyright (C) 2005, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2008-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
@@ -109,9 +109,8 @@ static void *
once_contender_thread (void *arg)
{
int id = (int) (intptr_t) arg;
- int repeat;
- for (repeat = 0; repeat <= REPEAT_COUNT; repeat++)
+ for (int repeat = 0; repeat <= REPEAT_COUNT; repeat++)
{
/* Tell the main thread that we're ready. */
ASSERT (pthread_mutex_lock (&ready_lock[id]) == 0);
@@ -146,11 +145,10 @@ once_contender_thread (void *arg)
static void
test_once (void)
{
- int i, repeat;
pthread_t threads[THREAD_COUNT];
/* Initialize all variables. */
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
{
pthread_mutexattr_t attr;
@@ -161,7 +159,7 @@ test_once (void)
ASSERT (pthread_mutexattr_destroy (&attr) == 0);
}
#if ENABLE_LOCKING
- for (i = 0; i < REPEAT_COUNT; i++)
+ for (int i = 0; i < REPEAT_COUNT; i++)
ASSERT (pthread_rwlock_init (&fire_signal[i], NULL) == 0);
#else
fire_signal_state = 0;
@@ -169,24 +167,24 @@ test_once (void)
#if ENABLE_LOCKING
/* Block all fire_signals. */
- for (i = REPEAT_COUNT-1; i >= 0; i--)
+ for (int i = REPEAT_COUNT-1; i >= 0; i--)
ASSERT (pthread_rwlock_wrlock (&fire_signal[i]) == 0);
#endif
/* Spawn the threads. */
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
ASSERT (pthread_create (&threads[i], NULL,
once_contender_thread, (void *) (intptr_t) i)
== 0);
- for (repeat = 0; repeat <= REPEAT_COUNT; repeat++)
+ for (int repeat = 0; repeat <= REPEAT_COUNT; repeat++)
{
/* Wait until every thread is ready. */
dbgprintf ("Main thread before synchronizing for round %d\n", repeat);
for (;;)
{
int ready_count = 0;
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
{
ASSERT (pthread_mutex_lock (&ready_lock[i]) == 0);
ready_count += ready[i];
@@ -216,7 +214,7 @@ test_once (void)
performed = 0;
/* Preparation for the next round: Reset the ready flags. */
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
{
ASSERT (pthread_mutex_lock (&ready_lock[i]) == 0);
ready[i] = 0;
@@ -233,7 +231,7 @@ test_once (void)
}
/* Wait for the threads to terminate. */
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
ASSERT (pthread_join (threads[i], NULL) == 0);
}
diff --git a/tests/test-pthread-rwlock.c b/tests/test-pthread-rwlock.c
index 8a4ab93b..0edd669c 100644
--- a/tests/test-pthread-rwlock.c
+++ b/tests/test-pthread-rwlock.c
@@ -1,5 +1,5 @@
/* Test of read-write locks in multithreaded situations.
- Copyright (C) 2005, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2008-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
@@ -102,10 +102,10 @@ random_account (void)
static void
check_accounts (void)
{
- int i, sum;
+ int sum;
sum = 0;
- for (i = 0; i < ACCOUNT_COUNT; i++)
+ for (int i = 0; i < ACCOUNT_COUNT; i++)
sum += account[i];
if (sum != ACCOUNT_COUNT * 1000)
abort ();
@@ -123,9 +123,7 @@ static pthread_rwlock_t my_rwlock = PTHREAD_RWLOCK_INITIALIZER;
static void *
rwlock_mutator_thread (void *arg)
{
- int repeat;
-
- for (repeat = REPEAT_COUNT; repeat > 0; repeat--)
+ for (int repeat = REPEAT_COUNT; repeat > 0; repeat--)
{
int i1, i2, value;
@@ -173,30 +171,29 @@ rwlock_checker_thread (void *arg)
static void
test_rwlock (void)
{
- int i;
pthread_t checkerthreads[THREAD_COUNT];
pthread_t threads[THREAD_COUNT];
/* Initialization. */
- for (i = 0; i < ACCOUNT_COUNT; i++)
+ for (int i = 0; i < ACCOUNT_COUNT; i++)
account[i] = 1000;
init_atomic_int (&rwlock_checker_done);
set_atomic_int_value (&rwlock_checker_done, 0);
/* Spawn the threads. */
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
ASSERT (pthread_create (&checkerthreads[i], NULL,
rwlock_checker_thread, NULL)
== 0);
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
ASSERT (pthread_create (&threads[i], NULL, rwlock_mutator_thread, NULL)
== 0);
/* Wait for the threads to terminate. */
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
ASSERT (pthread_join (threads[i], NULL) == 0);
set_atomic_int_value (&rwlock_checker_done, 1);
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
ASSERT (pthread_join (checkerthreads[i], NULL) == 0);
check_accounts ();
}
diff --git a/tests/test-pthread-thread.c b/tests/test-pthread-thread.c
index 12bb062f..c74553fa 100644
--- a/tests/test-pthread-thread.c
+++ b/tests/test-pthread-thread.c
@@ -1,5 +1,5 @@
/* Test of pthread_create () function.
- 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 General Public License as published by
diff --git a/tests/test-pthread.c b/tests/test-pthread.c
index 911da82b..776bd9c8 100644
--- a/tests/test-pthread.c
+++ b/tests/test-pthread.c
@@ -1,5 +1,5 @@
/* Test of <pthread.h> substitute.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-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
diff --git a/tests/test-pthread_sigmask1.c b/tests/test-pthread_sigmask1.c
index 82105729..d97e75d2 100644
--- a/tests/test-pthread_sigmask1.c
+++ b/tests/test-pthread_sigmask1.c
@@ -1,5 +1,5 @@
/* Test of pthread_sigmask in a single-threaded program.
- 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 General Public License as published by
diff --git a/tests/test-pthread_sigmask2.c b/tests/test-pthread_sigmask2.c
index c6f99cb1..13a9c8a0 100644
--- a/tests/test-pthread_sigmask2.c
+++ b/tests/test-pthread_sigmask2.c
@@ -1,5 +1,5 @@
/* Test of pthread_sigmask in a multi-threaded program.
- 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 General Public License as published by
diff --git a/tests/test-putenv.c b/tests/test-putenv.c
index f13bfad4..9ea08b0a 100644
--- a/tests/test-putenv.c
+++ b/tests/test-putenv.c
@@ -1,5 +1,5 @@
/* Test the putenv function.
- 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 General Public License as published
diff --git a/tests/test-raise.c b/tests/test-raise.c
index 893909b0..11f501cb 100644
--- a/tests/test-raise.c
+++ b/tests/test-raise.c
@@ -1,5 +1,5 @@
/* Test raising a signal.
- 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 General Public License as published by
diff --git a/tests/test-random-mt.c b/tests/test-random-mt.c
index c438c881..04c4a7cf 100644
--- a/tests/test-random-mt.c
+++ b/tests/test-random-mt.c
@@ -1,5 +1,5 @@
/* Multithread-safety test for random().
- Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ Copyright (C) 2023-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
@@ -62,9 +62,8 @@ static void *
random_invocator_thread (void *arg)
{
long *storage = (long *) arg;
- int repeat;
- for (repeat = 0; repeat < REPEAT_COUNT; repeat++)
+ for (int repeat = 0; repeat < REPEAT_COUNT; repeat++)
{
storage[repeat] = random ();
yield ();
@@ -81,46 +80,35 @@ main ()
/* First, get the expected sequence of random() results. */
srandom (seed);
long *expected = XNMALLOC (REPEAT_COUNT, long);
- {
- int repeat;
- for (repeat = 0; repeat < REPEAT_COUNT; repeat++)
- expected[repeat] = random ();
- }
+ for (int repeat = 0; repeat < REPEAT_COUNT; repeat++)
+ expected[repeat] = random ();
/* Then, run REPEAT_COUNT invocations of random() each, in THREAD_COUNT
separate threads. */
gl_thread_t threads[THREAD_COUNT];
long *thread_results[THREAD_COUNT];
srandom (seed);
- {
- int i;
- for (i = 0; i < THREAD_COUNT; i++)
- thread_results[i] = XNMALLOC (REPEAT_COUNT, long);
- for (i = 0; i < THREAD_COUNT; i++)
- threads[i] =
- gl_thread_create (random_invocator_thread, thread_results[i]);
- }
+ for (int i = 0; i < THREAD_COUNT; i++)
+ thread_results[i] = XNMALLOC (REPEAT_COUNT, long);
+ for (int i = 0; i < THREAD_COUNT; i++)
+ threads[i] = gl_thread_create (random_invocator_thread, thread_results[i]);
/* Wait for the threads to terminate. */
- {
- int i;
- for (i = 0; i < THREAD_COUNT; i++)
- gl_thread_join (threads[i], NULL);
- }
+ for (int i = 0; i < THREAD_COUNT; i++)
+ gl_thread_join (threads[i], NULL);
/* Finally, determine whether the threads produced the same sequence of
random() results. */
{
- int expected_index;
int result_index[THREAD_COUNT];
- int i;
- for (i = 0; i < THREAD_COUNT; i++)
+ for (int i = 0; i < THREAD_COUNT; i++)
result_index[i] = 0;
- for (expected_index = 0; expected_index < REPEAT_COUNT; expected_index++)
+ for (int expected_index = 0; expected_index < REPEAT_COUNT; expected_index++)
{
long expected_value = expected[expected_index];
+ int i;
for (i = 0; i < THREAD_COUNT; i++)
{
diff --git a/tests/test-random.c b/tests/test-random.c
index 4a4e0af9..ecc873dc 100644
--- a/tests/test-random.c
+++ b/tests/test-random.c
@@ -1,5 +1,5 @@
/* Test random.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -32,11 +32,10 @@ int
main ()
{
char buf[128];
- unsigned int i;
unsigned int n_big = 0;
initstate (time (NULL), buf, sizeof buf);
- for (i = 0; i < 1000; i++)
+ for (unsigned int i = 0; i < 1000; i++)
{
long r = random ();
ASSERT (0 <= r);
diff --git a/tests/test-random_r.c b/tests/test-random_r.c
index d86252e2..8c8562e8 100644
--- a/tests/test-random_r.c
+++ b/tests/test-random_r.c
@@ -1,5 +1,5 @@
/* Test random_r.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -31,7 +31,7 @@ SIGNATURE_CHECK (random_r, int, (struct random_data *, int32_t *));
#include "macros.h"
-/* Note: This test crashes on glibc/SPARC systems.
+/* Note: This test crashes on glibc/SPARC systems with glibc < 2.41.
Reported at <https://sourceware.org/PR30584>. */
static int
@@ -39,14 +39,13 @@ test_failed (int alignment)
{
struct random_data rand_state;
char buf[128 + sizeof (int32_t)];
- unsigned int i;
unsigned int n_big = 0;
rand_state.state = NULL;
if (initstate_r (time (NULL), buf + alignment, sizeof buf - alignment,
&rand_state))
return 1;
- for (i = 0; i < 1000; i++)
+ for (unsigned int i = 0; i < 1000; i++)
{
int32_t r;
ASSERT (random_r (&rand_state, &r) == 0);
@@ -62,8 +61,7 @@ test_failed (int alignment)
int
main ()
{
- int alignment;
- for (alignment = 0; alignment < sizeof (int32_t); alignment++)
+ for (int alignment = 0; alignment < sizeof (int32_t); alignment++)
if (test_failed (alignment))
return 1;
return test_exit_status;
diff --git a/tests/test-realloc-posix.c b/tests/test-realloc-posix.c
index d50f8603..0782b2b6 100644
--- a/tests/test-realloc-posix.c
+++ b/tests/test-realloc-posix.c
@@ -1,5 +1,5 @@
/* Test of realloc function.
- 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 General Public License as published by
diff --git a/tests/test-reallocarray.c b/tests/test-reallocarray.c
index 5b96bca7..ec7fbceb 100644
--- a/tests/test-reallocarray.c
+++ b/tests/test-reallocarray.c
@@ -1,5 +1,5 @@
/* Test of reallocarray function.
- 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 General Public License as published by
diff --git a/tests/test-rwlock1.c b/tests/test-rwlock1.c
index bc4a64be..d715fb8d 100644
--- a/tests/test-rwlock1.c
+++ b/tests/test-rwlock1.c
@@ -1,5 +1,5 @@
/* Test of glthread_rwlock_rdlock function.
- Copyright (C) 2017-2025 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
diff --git a/tests/test-sched-h.c b/tests/test-sched-h.c
index 1fad89b9..e9041512 100644
--- a/tests/test-sched-h.c
+++ b/tests/test-sched-h.c
@@ -1,5 +1,5 @@
/* Test of <sched.h> substitute.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/tests/test-select-fd.c b/tests/test-select-fd.c
index 232a4f16..f223d5aa 100644
--- a/tests/test-select-fd.c
+++ b/tests/test-select-fd.c
@@ -1,5 +1,5 @@
/* Test of select() substitute, reading or writing from a given file descriptor.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/tests/test-select-stdin.c b/tests/test-select-stdin.c
index 4e03b329..87b7e0e4 100644
--- a/tests/test-select-stdin.c
+++ b/tests/test-select-stdin.c
@@ -1,5 +1,5 @@
/* Test of select() substitute, reading from stdin.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/tests/test-select.c b/tests/test-select.c
index df9d8a12..0c47cfc6 100644
--- a/tests/test-select.c
+++ b/tests/test-select.c
@@ -1,5 +1,5 @@
/* Test of select() substitute.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/tests/test-select.h b/tests/test-select.h
index 7123ef6b..89f9c0f5 100644
--- a/tests/test-select.h
+++ b/tests/test-select.h
@@ -1,5 +1,5 @@
/* Test of select() substitute.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/tests/test-setenv.c b/tests/test-setenv.c
index 0b08f528..361910f3 100644
--- a/tests/test-setenv.c
+++ b/tests/test-setenv.c
@@ -1,5 +1,5 @@
/* Tests of setenv.
- 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 General Public License as published by
diff --git a/tests/test-setlocale-w32.c b/tests/test-setlocale-w32.c
index 254cf523..a96985e9 100644
--- a/tests/test-setlocale-w32.c
+++ b/tests/test-setlocale-w32.c
@@ -1,5 +1,5 @@
/* Test of setting the current locale.
- Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Copyright (C) 2024-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
diff --git a/tests/test-setlocale-w32utf8.c b/tests/test-setlocale-w32utf8.c
index 51828db1..4e17203e 100644
--- a/tests/test-setlocale-w32utf8.c
+++ b/tests/test-setlocale-w32utf8.c
@@ -1,6 +1,6 @@
/* Test of setting the current locale
on native Windows in the UTF-8 environment.
- Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Copyright (C) 2024-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
diff --git a/tests/test-setlocale1.c b/tests/test-setlocale1.c
index 894c6cd0..a3abdacb 100644
--- a/tests/test-setlocale1.c
+++ b/tests/test-setlocale1.c
@@ -1,5 +1,5 @@
/* Test of setting the current locale.
- 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 General Public License as published by
diff --git a/tests/test-setlocale2.c b/tests/test-setlocale2.c
index 6d0cb6aa..6c330729 100644
--- a/tests/test-setlocale2.c
+++ b/tests/test-setlocale2.c
@@ -1,5 +1,5 @@
/* Test of setting the current locale.
- 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 General Public License as published by
diff --git a/tests/test-setlocale_null-mt-all.c b/tests/test-setlocale_null-mt-all.c
index 44efcba8..adf7cb91 100644
--- a/tests/test-setlocale_null-mt-all.c
+++ b/tests/test-setlocale_null-mt-all.c
@@ -1,5 +1,5 @@
/* Multithread-safety test for setlocale_null_r (LC_ALL, ...).
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-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
diff --git a/tests/test-setlocale_null-mt-one.c b/tests/test-setlocale_null-mt-one.c
index e09f88e0..64248b3a 100644
--- a/tests/test-setlocale_null-mt-one.c
+++ b/tests/test-setlocale_null-mt-one.c
@@ -1,5 +1,5 @@
/* Multithread-safety test for setlocale_null_r (LC_xxx, ...).
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-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
diff --git a/tests/test-setlocale_null-unlocked.c b/tests/test-setlocale_null-unlocked.c
index a62d1874..e6a0aed8 100644
--- a/tests/test-setlocale_null-unlocked.c
+++ b/tests/test-setlocale_null-unlocked.c
@@ -1,5 +1,5 @@
/* Test of setlocale_null_r_unlocked function.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-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
diff --git a/tests/test-setlocale_null.c b/tests/test-setlocale_null.c
index 061fbbb2..bb317df3 100644
--- a/tests/test-setlocale_null.c
+++ b/tests/test-setlocale_null.c
@@ -1,5 +1,5 @@
/* Test of setlocale_null_r function.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-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
diff --git a/tests/test-setsockopt.c b/tests/test-setsockopt.c
index b5d0c945..f5ff0a84 100644
--- a/tests/test-setsockopt.c
+++ b/tests/test-setsockopt.c
@@ -1,5 +1,5 @@
/* Test setsockopt() function.
- 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 General Public License as published by
diff --git a/tests/test-signal-h.c b/tests/test-signal-h.c
index 8bec53e6..014dc88d 100644
--- a/tests/test-signal-h.c
+++ b/tests/test-signal-h.c
@@ -1,5 +1,5 @@
/* Test of <signal.h> substitute.
- 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 General Public License as published by
diff --git a/tests/test-signbit.c b/tests/test-signbit.c
index 025687f4..2adf7745 100644
--- a/tests/test-signbit.c
+++ b/tests/test-signbit.c
@@ -1,5 +1,5 @@
/* Test of signbit() substitute.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-sigprocmask.c b/tests/test-sigprocmask.c
index 74eafbad..f419c2c1 100644
--- a/tests/test-sigprocmask.c
+++ b/tests/test-sigprocmask.c
@@ -1,5 +1,5 @@
/* Test of sigprocmask.
- 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 General Public License as published by
diff --git a/tests/test-sleep.c b/tests/test-sleep.c
index b02c78cf..5aba44b4 100644
--- a/tests/test-sleep.c
+++ b/tests/test-sleep.c
@@ -1,5 +1,5 @@
/* Test of sleep() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-sockets.c b/tests/test-sockets.c
index 3577ddc3..d9b25ad1 100644
--- a/tests/test-sockets.c
+++ b/tests/test-sockets.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2026 Free Software Foundation, Inc.
* Written by Simon Josefsson.
*
* This program is free software: you can redistribute it and/or modify
diff --git a/tests/test-stat-time.c b/tests/test-stat-time.c
index 19ecc838..7c6e5955 100644
--- a/tests/test-stat-time.c
+++ b/tests/test-stat-time.c
@@ -1,5 +1,5 @@
/* Test of <stat-time.h>.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -107,8 +107,6 @@ do_stat (const char *filename, struct stat *p)
static void
prepare_test (struct stat *statinfo, struct timespec *modtimes)
{
- int i;
-
create_file (filename_stamp1);
nap ();
create_file (filename_testfile);
@@ -125,7 +123,7 @@ prepare_test (struct stat *statinfo, struct timespec *modtimes)
do_stat (filename_stamp3, &statinfo[3]);
/* Now use our access functions. */
- for (i = 0; i < NFILES; ++i)
+ for (int i = 0; i < NFILES; ++i)
{
modtimes[i] = get_stat_mtime (&statinfo[i]);
}
@@ -134,8 +132,6 @@ prepare_test (struct stat *statinfo, struct timespec *modtimes)
static void
test_mtime (const struct stat *statinfo, struct timespec *modtimes)
{
- int i;
-
/* Use the struct stat fields directly. */
/* mtime(stamp1) < mtime(stamp2) */
ASSERT (statinfo[0].st_mtime < statinfo[2].st_mtime
@@ -159,7 +155,7 @@ test_mtime (const struct stat *statinfo, struct timespec *modtimes)
&& modtimes[2].tv_nsec < modtimes[3].tv_nsec));
/* verify equivalence */
- for (i = 0; i < NFILES; ++i)
+ for (int i = 0; i < NFILES; ++i)
{
struct timespec ts;
ts = get_stat_mtime (&statinfo[i]);
@@ -195,10 +191,8 @@ test_birthtime (const struct stat *statinfo,
const struct timespec *modtimes,
struct timespec *birthtimes)
{
- int i;
-
/* Collect the birth times. */
- for (i = 0; i < NFILES; ++i)
+ for (int i = 0; i < NFILES; ++i)
{
birthtimes[i] = get_stat_birthtime (&statinfo[i]);
if (birthtimes[i].tv_nsec < 0)
diff --git a/tests/test-stat.c b/tests/test-stat.c
index 66747658..ce529918 100644
--- a/tests/test-stat.c
+++ b/tests/test-stat.c
@@ -1,5 +1,5 @@
/* Tests of stat.
- 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 General Public License as published by
diff --git a/tests/test-stat.h b/tests/test-stat.h
index d055522f..4d44dea6 100644
--- a/tests/test-stat.h
+++ b/tests/test-stat.h
@@ -1,5 +1,5 @@
/* Tests of stat.
- 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 General Public License as published by
diff --git a/tests/test-stdckdint-h.c b/tests/test-stdckdint-h.c
index 332b1b0a..6fe84f7c 100644
--- a/tests/test-stdckdint-h.c
+++ b/tests/test-stdckdint-h.c
@@ -1,5 +1,5 @@
/* Test <stdckdint.h>.
- 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 General Public License as published by
diff --git a/tests/test-stddef-h.c b/tests/test-stddef-h.c
index b80df4d4..2057c80a 100644
--- a/tests/test-stddef-h.c
+++ b/tests/test-stddef-h.c
@@ -1,5 +1,5 @@
/* Test of <stddef.h> substitute.
- 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 General Public License as published by
diff --git a/tests/test-stdint-h.c b/tests/test-stdint-h.c
index 4f55370a..6572251e 100644
--- a/tests/test-stdint-h.c
+++ b/tests/test-stdint-h.c
@@ -1,5 +1,5 @@
/* Test of <stdint.h> substitute.
- 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
diff --git a/tests/test-stdio-h.c b/tests/test-stdio-h.c
index 855ac8e6..4a1be4ac 100644
--- a/tests/test-stdio-h.c
+++ b/tests/test-stdio-h.c
@@ -1,5 +1,5 @@
/* Test of <stdio.h> substitute.
- 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 General Public License as published by
diff --git a/tests/test-stdlib-h.c b/tests/test-stdlib-h.c
index ea3da1bf..ed817b90 100644
--- a/tests/test-stdlib-h.c
+++ b/tests/test-stdlib-h.c
@@ -1,5 +1,5 @@
/* Test of <stdlib.h> substitute.
- 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 General Public License as published by
diff --git a/tests/test-str_endswith.c b/tests/test-str_endswith.c
index fc1ec0ab..9ded498f 100644
--- a/tests/test-str_endswith.c
+++ b/tests/test-str_endswith.c
@@ -1,5 +1,5 @@
/* Test of str_endswith() function.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-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
diff --git a/tests/test-str_startswith.c b/tests/test-str_startswith.c
index 5dd741ae..754dccd2 100644
--- a/tests/test-str_startswith.c
+++ b/tests/test-str_startswith.c
@@ -1,5 +1,5 @@
/* Test of str_startswith() function.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-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
diff --git a/tests/test-strerror.c b/tests/test-strerror.c
index 7a1e85f8..0b0fd8a8 100644
--- a/tests/test-strerror.c
+++ b/tests/test-strerror.c
@@ -1,5 +1,5 @@
/* Test of strerror() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-strerror_r.c b/tests/test-strerror_r.c
index ec5a71a8..63a0623a 100644
--- a/tests/test-strerror_r.c
+++ b/tests/test-strerror_r.c
@@ -1,5 +1,5 @@
/* Test of strerror_r() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -88,21 +88,19 @@ main (void)
that no out-of-bounds writes occur. */
{
int errs[] = { EACCES, 0, -3, };
- int j;
buf[sizeof buf - 1] = '\0';
- for (j = 0; j < SIZEOF (errs); j++)
+ for (int j = 0; j < SIZEOF (errs); j++)
{
int err = errs[j];
char buf2[sizeof buf] = "";
size_t len;
- size_t i;
strerror_r (err, buf2, sizeof buf2);
len = strlen (buf2);
ASSERT (len < sizeof buf);
- for (i = 0; i <= len; i++)
+ for (size_t i = 0; i <= len; i++)
{
memset (buf, '^', sizeof buf - 1);
errno = 0;
diff --git a/tests/test-striconveh.c b/tests/test-striconveh.c
index fac29457..c5d06b43 100644
--- a/tests/test-striconveh.c
+++ b/tests/test-striconveh.c
@@ -1,5 +1,5 @@
/* Test of character set conversion with error handling.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -52,10 +52,6 @@ main ()
iconveh_replacement_character,
iconveh_escape_sequence
};
- size_t indirect;
- size_t h;
- size_t o;
- size_t i;
/* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
ISO-8859-2, UTF-8, and with libiconv or glibc also GB18030. */
@@ -147,14 +143,14 @@ main ()
/* ------------------------ Test mem_cd_iconveh() ------------------------ */
/* Test conversion from ISO-8859-2 to ISO-8859-1 with no errors. */
- for (indirect = 0; indirect <= 1; indirect++)
+ for (size_t indirect = 0; indirect <= 1; indirect++)
{
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -171,7 +167,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 37; i++)
+ for (size_t i = 0; i < 37; i++)
ASSERT (offsets[i] == i);
ASSERT (offsets[37] == MAGIC);
free (offsets);
@@ -182,13 +178,13 @@ main ()
}
/* Test conversion from ASCII to ISO-8859-1 with invalid input (EILSEQ). */
- for (indirect = 0; indirect <= 1; indirect++)
+ for (size_t indirect = 0; indirect <= 1; indirect++)
{
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\263 Maszkowski"; /* Rafa? Maszkowski */
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -218,7 +214,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == i);
ASSERT (offsets[16] == MAGIC);
free (offsets);
@@ -232,13 +228,13 @@ main ()
}
/* Test conversion from ISO-8859-2 to ISO-8859-1 with EILSEQ. */
- for (indirect = 0; indirect <= 1; indirect++)
+ for (size_t indirect = 0; indirect <= 1; indirect++)
{
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -267,7 +263,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == i);
ASSERT (offsets[16] == MAGIC);
free (offsets);
@@ -283,7 +279,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == (i < 5 ? i :
i + 5));
ASSERT (offsets[16] == MAGIC);
@@ -298,12 +294,12 @@ main ()
}
/* Test conversion from ISO-8859-1 to UTF-8 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
static const char expected[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -318,7 +314,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 37; i++)
+ for (size_t i = 0; i < 37; i++)
ASSERT (offsets[i] == (i < 1 ? i :
i < 12 ? i + 1 :
i < 18 ? i + 2 :
@@ -332,12 +328,12 @@ main ()
# if (defined _LIBICONV_VERSION && !(_LIBICONV_VERSION == 0x10b && defined __APPLE__)) || (defined __GLIBC__ && !defined __UCLIBC__)
/* Test conversion from ISO-8859-1 to GB18030 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
static const char expected[] = "\2010\2072rger mit b\2010\2132sen B\250\271bchen ohne Augenma\2010\2118";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -352,7 +348,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 37; i++)
+ for (size_t i = 0; i < 37; i++)
ASSERT (offsets[i] == (i < 1 ? i :
i < 12 ? i + 3 :
i < 18 ? i + 6 :
@@ -366,12 +362,12 @@ main ()
# endif
/* Test conversion from UTF-8 to ISO-8859-1 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -386,7 +382,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 41; i++)
+ for (size_t i = 0; i < 41; i++)
ASSERT (offsets[i] == (i < 1 ? i :
i == 1 ? (size_t)(-1) :
i < 13 ? i - 1 :
@@ -403,11 +399,11 @@ main ()
}
/* Test conversion from ASCII to UTF-8 with invalid input (EILSEQ). */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\263 Maszkowski"; /* Rafa? Maszkowski */
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -434,7 +430,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == i);
ASSERT (offsets[16] == MAGIC);
free (offsets);
@@ -450,7 +446,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == (i < 5 ? i : i + 2));
ASSERT (offsets[16] == MAGIC);
free (offsets);
@@ -466,11 +462,11 @@ main ()
/* Test conversion from ASCII to GB18030 with invalid input (EILSEQ).
Note: glibc's GB18030 converter was buggy in glibc-2.15; fixed by
Andreas Schwab on 2012-02-06. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\263 Maszkowski"; /* Rafa? Maszkowski */
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -497,7 +493,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == i);
ASSERT (offsets[16] == MAGIC);
free (offsets);
@@ -513,7 +509,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == (i < 5 ? i : i + 3));
ASSERT (offsets[16] == MAGIC);
free (offsets);
@@ -527,11 +523,11 @@ main ()
# endif
/* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\305\202 Maszkowski"; /* Rafał Maszkowski */
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -558,7 +554,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 17; i++)
+ for (size_t i = 0; i < 17; i++)
ASSERT (offsets[i] == (i < 5 ? i :
i == 5 ? (size_t)(-1) :
i - 1));
@@ -576,7 +572,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 17; i++)
+ for (size_t i = 0; i < 17; i++)
ASSERT (offsets[i] == (i < 5 ? i :
i == 5 ? (size_t)(-1) :
i + 4));
@@ -591,11 +587,11 @@ main ()
}
/* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\342";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -623,7 +619,7 @@ main ()
-1 / EILSEQ when converting the 7th byte of the input "+VDLYP9hA". */
# if !(defined __sun && !defined _LIBICONV_VERSION)
/* Test conversion from UTF-7 to UTF-8 with EINVAL. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
/* This is base64 encoded 0x54 0x32 0xD8 0x3F 0xD8 0x40. It would
@@ -650,7 +646,7 @@ main ()
# if (defined _LIBICONV_VERSION && !(_LIBICONV_VERSION == 0x10b && defined __APPLE__)) || (defined __GLIBC__ && !defined __UCLIBC__)
/* Test conversion from UTF-7 to GB18030 with EINVAL. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
/* This is base64 encoded 0x54 0x32 0xD8 0x3F 0xD8 0x40. It would
@@ -680,7 +676,7 @@ main ()
the input "+2D/YQNhB" to U+1FED8 U+3FD8 U+40D8. */
# if !(defined __NetBSD__ && !defined _LIBICONV_VERSION)
/* Test conversion from UTF-7 to UTF-8 with EILSEQ. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
/* This is base64 encoded 0xD8 0x3F 0xD8 0x40 0xD8 0x41. It would
@@ -752,7 +748,7 @@ main ()
/* Test conversion from UTF-7 to GB18030 with EILSEQ.
Note: glibc's GB18030 converter was buggy in glibc-2.15; fixed by
Andreas Schwab on 2012-02-06. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
/* This is base64 encoded 0xD8 0x3F 0xD8 0x40 0xD8 0x41. It would
@@ -825,9 +821,9 @@ main ()
/* ------------------------ Test str_cd_iconveh() ------------------------ */
/* Test conversion from ISO-8859-2 to ISO-8859-1 with no errors. */
- for (indirect = 0; indirect <= 1; indirect++)
+ for (size_t indirect = 0; indirect <= 1; indirect++)
{
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
@@ -844,9 +840,9 @@ main ()
}
/* Test conversion from ASCII to ISO-8859-1 with invalid input (EILSEQ). */
- for (indirect = 0; indirect <= 1; indirect++)
+ for (size_t indirect = 0; indirect <= 1; indirect++)
{
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\263 Maszkowski"; /* Rafa? Maszkowski */
@@ -875,9 +871,9 @@ main ()
}
/* Test conversion from ISO-8859-2 to ISO-8859-1 with EILSEQ. */
- for (indirect = 0; indirect <= 1; indirect++)
+ for (size_t indirect = 0; indirect <= 1; indirect++)
{
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
@@ -913,7 +909,7 @@ main ()
}
/* Test conversion from ISO-8859-1 to UTF-8 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
@@ -928,7 +924,7 @@ main ()
# if (defined _LIBICONV_VERSION && !(_LIBICONV_VERSION == 0x10b && defined __APPLE__)) || (defined __GLIBC__ && !defined __UCLIBC__)
/* Test conversion from ISO-8859-1 to GB18030 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
@@ -943,7 +939,7 @@ main ()
# endif
/* Test conversion from UTF-8 to ISO-8859-1 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
@@ -957,7 +953,7 @@ main ()
}
/* Test conversion from ASCII to UTF-8 with invalid input (EILSEQ). */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\263 Maszkowski"; /* Rafa? Maszkowski */
@@ -993,7 +989,7 @@ main ()
/* Test conversion from ASCII to GB18030 with invalid input (EILSEQ).
Note: glibc's GB18030 converter was buggy in glibc-2.15; fixed by
Andreas Schwab on 2012-02-06. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\263 Maszkowski"; /* Rafa? Maszkowski */
@@ -1027,7 +1023,7 @@ main ()
# endif
/* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Costs: 27 \342\202\254"; /* EURO SIGN */
@@ -1060,7 +1056,7 @@ main ()
}
/* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\342";
@@ -1084,12 +1080,12 @@ main ()
/* ------------------------- Test mem_iconveh() ------------------------- */
/* Test conversion from ISO-8859-2 to ISO-8859-1 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -1104,7 +1100,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 37; i++)
+ for (size_t i = 0; i < 37; i++)
ASSERT (offsets[i] == i);
ASSERT (offsets[37] == MAGIC);
free (offsets);
@@ -1114,11 +1110,11 @@ main ()
}
/* Test conversion from ISO-8859-2 to ISO-8859-1 with EILSEQ. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -1145,7 +1141,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == i);
ASSERT (offsets[16] == MAGIC);
free (offsets);
@@ -1161,7 +1157,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == (i < 5 ? i :
i + 5));
ASSERT (offsets[16] == MAGIC);
@@ -1175,12 +1171,12 @@ main ()
}
/* Test conversion from ISO-8859-1 to UTF-8 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
static const char expected[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -1195,7 +1191,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 37; i++)
+ for (size_t i = 0; i < 37; i++)
ASSERT (offsets[i] == (i < 1 ? i :
i < 12 ? i + 1 :
i < 18 ? i + 2 :
@@ -1209,12 +1205,12 @@ main ()
# if (defined _LIBICONV_VERSION && !(_LIBICONV_VERSION == 0x10b && defined __APPLE__)) || (defined __GLIBC__ && !defined __UCLIBC__)
/* Test conversion from ISO-8859-1 to GB18030 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
static const char expected[] = "\2010\2072rger mit b\2010\2132sen B\250\271bchen ohne Augenma\2010\2118";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -1229,7 +1225,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 37; i++)
+ for (size_t i = 0; i < 37; i++)
ASSERT (offsets[i] == (i < 1 ? i :
i < 12 ? i + 3 :
i < 18 ? i + 6 :
@@ -1243,12 +1239,12 @@ main ()
# endif
/* Test conversion from UTF-8 to ISO-8859-1 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -1263,7 +1259,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 41; i++)
+ for (size_t i = 0; i < 41; i++)
ASSERT (offsets[i] == (i < 1 ? i :
i == 1 ? (size_t)(-1) :
i < 13 ? i - 1 :
@@ -1280,11 +1276,11 @@ main ()
}
/* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\305\202 Maszkowski"; /* Rafał Maszkowski */
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -1311,7 +1307,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 17; i++)
+ for (size_t i = 0; i < 17; i++)
ASSERT (offsets[i] == (i < 5 ? i :
i == 5 ? (size_t)(-1) :
i - 1));
@@ -1329,7 +1325,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 17; i++)
+ for (size_t i = 0; i < 17; i++)
ASSERT (offsets[i] == (i < 5 ? i :
i == 5 ? (size_t)(-1) :
i + 4));
@@ -1344,11 +1340,11 @@ main ()
}
/* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\342";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -1373,7 +1369,7 @@ main ()
/* ------------------------- Test str_iconveh() ------------------------- */
/* Test conversion from ISO-8859-2 to ISO-8859-1 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
@@ -1385,7 +1381,7 @@ main ()
}
/* Test conversion from ISO-8859-2 to ISO-8859-1 with EILSEQ. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
@@ -1416,7 +1412,7 @@ main ()
}
/* Test conversion from ISO-8859-1 to UTF-8 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
@@ -1429,7 +1425,7 @@ main ()
# if (defined _LIBICONV_VERSION && !(_LIBICONV_VERSION == 0x10b && defined __APPLE__)) || (defined __GLIBC__ && !defined __UCLIBC__)
/* Test conversion from ISO-8859-1 to GB18030 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
@@ -1442,7 +1438,7 @@ main ()
# endif
/* Test conversion from UTF-8 to ISO-8859-1 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
@@ -1454,7 +1450,7 @@ main ()
}
/* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Costs: 27 \342\202\254"; /* EURO SIGN */
@@ -1485,7 +1481,7 @@ main ()
}
/* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\342";
diff --git a/tests/test-striconveha.c b/tests/test-striconveha.c
index 803a312d..c2453955 100644
--- a/tests/test-striconveha.c
+++ b/tests/test-striconveha.c
@@ -1,5 +1,5 @@
/* Test of character set conversion with error handling and autodetection.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -48,9 +48,6 @@ main ()
#if HAVE_ICONV
static enum iconv_ilseq_handler handlers[] =
{ iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
- size_t h;
- size_t o;
- size_t i;
/* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
ISO-8859-2, and UTF-8. */
@@ -58,12 +55,12 @@ main ()
/* ------------------------- Test mem_iconveha() ------------------------- */
/* Test conversion from ISO-8859-2 to ISO-8859-1 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -78,7 +75,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 37; i++)
+ for (size_t i = 0; i < 37; i++)
ASSERT (offsets[i] == i);
ASSERT (offsets[37] == MAGIC);
free (offsets);
@@ -88,11 +85,11 @@ main ()
}
/* Test conversion from ISO-8859-2 to ISO-8859-1 with EILSEQ. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -118,7 +115,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == i);
ASSERT (offsets[16] == MAGIC);
free (offsets);
@@ -134,7 +131,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == (i < 5 ? i :
i + 5));
ASSERT (offsets[16] == MAGIC);
@@ -148,12 +145,12 @@ main ()
}
/* Test conversion from ISO-8859-1 to UTF-8 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
static const char expected[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -168,7 +165,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 37; i++)
+ for (size_t i = 0; i < 37; i++)
ASSERT (offsets[i] == (i < 1 ? i :
i < 12 ? i + 1 :
i < 18 ? i + 2 :
@@ -181,12 +178,12 @@ main ()
}
/* Test conversion from UTF-8 to ISO-8859-1 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -201,7 +198,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 41; i++)
+ for (size_t i = 0; i < 41; i++)
ASSERT (offsets[i] == (i < 1 ? i :
i == 1 ? (size_t)(-1) :
i < 13 ? i - 1 :
@@ -218,11 +215,11 @@ main ()
}
/* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\305\202 Maszkowski"; /* Rafał Maszkowski */
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -248,7 +245,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 17; i++)
+ for (size_t i = 0; i < 17; i++)
ASSERT (offsets[i] == (i < 5 ? i :
i == 5 ? (size_t)(-1) :
i - 1));
@@ -266,7 +263,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 17; i++)
+ for (size_t i = 0; i < 17; i++)
ASSERT (offsets[i] == (i < 5 ? i :
i == 5 ? (size_t)(-1) :
i + 4));
@@ -281,11 +278,11 @@ main ()
}
/* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\342";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -313,12 +310,12 @@ main ()
if (iconv_supports_encoding ("ISO-2022-JP-2"))
{
/* Test conversions from autodetect_jp to UTF-8. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\244\263\244\363\244\313\244\301\244\317"; /* こんにちは in EUC-JP */
static const char expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257"; /* こんにちは */
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -333,7 +330,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 10; i++)
+ for (size_t i = 0; i < 10; i++)
ASSERT (offsets[i] == ((i % 2) == 0 ? (i / 2) * 3 : (size_t)(-1)));
ASSERT (offsets[10] == MAGIC);
free (offsets);
@@ -341,12 +338,12 @@ main ()
free (result);
}
}
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\202\261\202\361\202\311\202\277\202\315"; /* こんにちは in Shift_JIS */
static const char expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257"; /* こんにちは */
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -361,7 +358,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 10; i++)
+ for (size_t i = 0; i < 10; i++)
ASSERT (offsets[i] == ((i % 2) == 0 ? (i / 2) * 3 : (size_t)(-1)));
ASSERT (offsets[10] == MAGIC);
free (offsets);
@@ -369,12 +366,12 @@ main ()
free (result);
}
}
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\033$B$3$s$K$A$O\033(B"; /* こんにちは in ISO-2022-JP-2 */
static const char expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257"; /* こんにちは */
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -389,7 +386,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == (i == 0 ? 0 :
i == 5 ? 3 :
i == 7 ? 6 :
@@ -408,12 +405,12 @@ main ()
# if (((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2) && !defined __UCLIBC__) || (_LIBICONV_VERSION >= 0x0105 && !(_LIBICONV_VERSION == 0x10b && defined __APPLE__))
/* Test conversion from UTF-8 to ISO-8859-1 with transliteration. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Costs: 27 \342\202\254"; /* EURO SIGN */
static const char expected[] = "Costs: 27 EUR";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
char *result = NULL;
@@ -428,7 +425,7 @@ main ()
ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 13; i++)
+ for (size_t i = 0; i < 13; i++)
ASSERT (offsets[i] == (i < 11 ? i : (size_t)(-1)));
ASSERT (offsets[13] == MAGIC);
free (offsets);
@@ -441,7 +438,7 @@ main ()
/* ------------------------- Test str_iconveha() ------------------------- */
/* Test conversion from ISO-8859-2 to ISO-8859-1 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
@@ -453,7 +450,7 @@ main ()
}
/* Test conversion from ISO-8859-2 to ISO-8859-1 with EILSEQ. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
@@ -483,7 +480,7 @@ main ()
}
/* Test conversion from ISO-8859-1 to UTF-8 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
@@ -495,7 +492,7 @@ main ()
}
/* Test conversion from UTF-8 to ISO-8859-1 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
@@ -507,7 +504,7 @@ main ()
}
/* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Costs: 27 \342\202\254"; /* EURO SIGN */
@@ -537,7 +534,7 @@ main ()
}
/* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\342";
@@ -553,7 +550,7 @@ main ()
if (iconv_supports_encoding ("ISO-2022-JP-2"))
{
/* Test conversions from autodetect_jp to UTF-8. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\244\263\244\363\244\313\244\301\244\317"; /* こんにちは in EUC-JP */
@@ -563,7 +560,7 @@ main ()
ASSERT (strcmp (result, expected) == 0);
free (result);
}
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\202\261\202\361\202\311\202\277\202\315"; /* こんにちは in Shift_JIS */
@@ -573,7 +570,7 @@ main ()
ASSERT (strcmp (result, expected) == 0);
free (result);
}
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\033$B$3$s$K$A$O\033(B"; /* こんにちは in ISO-2022-JP-2 */
@@ -588,7 +585,7 @@ main ()
# if (((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2) && !defined __UCLIBC__) || (_LIBICONV_VERSION >= 0x0105 && !(_LIBICONV_VERSION == 0x10b && defined __APPLE__))
/* Test conversion from UTF-8 to ISO-8859-1 with transliteration. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Costs: 27 \342\202\254"; /* EURO SIGN */
diff --git a/tests/test-string-h.c b/tests/test-string-h.c
index 6834b0b8..3c607302 100644
--- a/tests/test-string-h.c
+++ b/tests/test-string-h.c
@@ -1,5 +1,5 @@
/* Test of <string.h> substitute.
- 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 General Public License as published by
diff --git a/tests/test-strncat.c b/tests/test-strncat.c
index 7b2e682a..ccf65197 100644
--- a/tests/test-strncat.c
+++ b/tests/test-strncat.c
@@ -1,5 +1,5 @@
/* Test of strncat() function.
- 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 General Public License as published by
diff --git a/tests/test-strncpy.c b/tests/test-strncpy.c
new file mode 100644
index 00000000..847e55f8
--- /dev/null
+++ b/tests/test-strncpy.c
@@ -0,0 +1,122 @@
+/* Test of strncpy() function.
+ 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 General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include <string.h>
+
+#include <stddef.h>
+
+#include "zerosize-ptr.h"
+#include "macros.h"
+
+/* Test the library, not the compiler+library. */
+static char *
+lib_strncpy (char *s1, char const *s2, size_t n)
+{
+ return strncpy (s1, s2, n);
+}
+static char *(*volatile volatile_strncpy) (char *, char const *, size_t)
+ = lib_strncpy;
+#undef strncpy
+#define strncpy volatile_strncpy
+
+#define MAGIC (char)0xBA
+
+static void
+check_single (const char *input, size_t length, size_t n)
+{
+ char *dest;
+ char *result;
+
+ dest = (char *) malloc (1 + n + 1);
+ ASSERT (dest != NULL);
+
+ for (size_t i = 0; i < 1 + n + 1; i++)
+ dest[i] = MAGIC;
+
+ result = strncpy (dest + 1, input, n);
+ ASSERT (result == dest + 1);
+
+ ASSERT (dest[0] == MAGIC);
+ {
+ size_t i;
+ for (i = 0; i < (n <= length ? n : length + 1); i++)
+ ASSERT (dest[1 + i] == input[i]);
+ for (; i < n; i++)
+ ASSERT (dest[1 + i] == 0);
+ }
+ ASSERT (dest[1 + n] == MAGIC);
+
+ free (dest);
+}
+
+static void
+check (const char *input, size_t input_length)
+{
+ size_t length;
+
+ ASSERT (input_length > 0);
+ ASSERT (input[input_length - 1] == 0);
+ length = input_length - 1; /* = strlen (input) */
+
+ for (size_t n = 0; n <= 2 * length + 2; n++)
+ check_single (input, length, n);
+
+ /* Check that strncpy (D, S, N) does not look at more than
+ MIN (strlen (S) + 1, N) units. */
+ {
+ char *page_boundary = (char *) zerosize_ptr ();
+
+ if (page_boundary != NULL)
+ {
+ for (size_t n = 0; n <= 2 * length + 2; n++)
+ {
+ size_t n_to_copy = (n <= length ? n : length + 1);
+ char *copy;
+
+ copy = (char *) page_boundary - n_to_copy;
+ for (size_t i = 0; i < n_to_copy; i++)
+ copy[i] = input[i];
+
+ check_single (copy, length, n);
+ }
+ }
+ }
+}
+
+int
+main (void)
+{
+ /* Simple string. */
+ { /* "Grüß Gott." */
+ static const char input[] = "Gr\303\274\303\237 Gott.";
+ check (input, SIZEOF (input));
+ }
+
+ /* Test zero-length operations on NULL pointers, allowed by
+ <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3322.pdf>. */
+
+ ASSERT (strncpy (NULL, "x", 0) == NULL);
+
+ {
+ char y[1];
+ ASSERT (strncpy (y, NULL, 0) == y);
+ }
+
+ return test_exit_status;
+}
diff --git a/tests/test-strstr.c b/tests/test-strstr.c
index db29076c..47656b93 100644
--- a/tests/test-strstr.c
+++ b/tests/test-strstr.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2007-2025 Free Software Foundation, Inc.
+ * Copyright (C) 2004, 2007-2026 Free Software Foundation, Inc.
* Written by Bruno Haible and Eric Blake
*
* This program is free software: you can redistribute it and/or modify
@@ -261,9 +261,8 @@ main (int argc, char *argv[])
"with_multilib_list\n";
size_t h_len = strlen (h);
char *haystack = malloc (h_len + 1);
- size_t i;
ASSERT (haystack);
- for (i = 0; i < h_len - strlen (needle); i++)
+ for (size_t i = 0; i < h_len - strlen (needle); i++)
{
const char *p;
memcpy (haystack, h, h_len + 1);
diff --git a/tests/test-symlink.c b/tests/test-symlink.c
index 0dd33b85..26b9d7de 100644
--- a/tests/test-symlink.c
+++ b/tests/test-symlink.c
@@ -1,5 +1,5 @@
/* Tests of symlink.
- 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 General Public License as published by
diff --git a/tests/test-symlink.h b/tests/test-symlink.h
index 00199c58..d54cb62b 100644
--- a/tests/test-symlink.h
+++ b/tests/test-symlink.h
@@ -1,5 +1,5 @@
/* Tests of symlink.
- 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 General Public License as published by
diff --git a/tests/test-sys_ioctl-h.c b/tests/test-sys_ioctl-h.c
index 28d3e1af..5313b3e9 100644
--- a/tests/test-sys_ioctl-h.c
+++ b/tests/test-sys_ioctl-h.c
@@ -1,5 +1,5 @@
/* Test of <sys/ioctl.h> substitute.
- 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 General Public License as published by
diff --git a/tests/test-sys_select-h.c b/tests/test-sys_select-h.c
index 08aa83e0..b5258deb 100644
--- a/tests/test-sys_select-h.c
+++ b/tests/test-sys_select-h.c
@@ -1,5 +1,5 @@
/* Test of <sys/select.h> substitute.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-sys_socket-h.c b/tests/test-sys_socket-h.c
index fffd44ec..af449f65 100644
--- a/tests/test-sys_socket-h.c
+++ b/tests/test-sys_socket-h.c
@@ -1,5 +1,5 @@
/* Test of <sys/socket.h> substitute.
- 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 General Public License as published by
diff --git a/tests/test-sys_stat-h.c b/tests/test-sys_stat-h.c
index 6936cc7a..f41c4dfb 100644
--- a/tests/test-sys_stat-h.c
+++ b/tests/test-sys_stat-h.c
@@ -1,5 +1,5 @@
/* Test of <sys/stat.h> substitute.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -339,14 +339,15 @@ struct timespec st;
static_assert (TYPE_SIGNED (off_t));
/* POSIX requires that blksize_t is a signed integer type. */
-#if !(defined __ANDROID__ \
+#if !(defined __ANDROID__ || defined __QNX__ \
|| (defined __FreeBSD_kernel__ && !defined __FreeBSD__) \
- || defined __GLIBC__ && defined __alpha)
+ || (defined __GLIBC__ && defined __alpha))
static_assert (TYPE_SIGNED (blksize_t));
#endif
/* POSIX requires that blkcnt_t is a signed integer type. */
-#if !(defined __ANDROID__ || defined __GLIBC__ && defined __alpha)
+#if !(defined __ANDROID__ || defined __QNX__ \
+ || (defined __GLIBC__ && defined __alpha))
static_assert (TYPE_SIGNED (blkcnt_t));
#endif
diff --git a/tests/test-sys_time-h.c b/tests/test-sys_time-h.c
index 53132709..4ff2ceca 100644
--- a/tests/test-sys_time-h.c
+++ b/tests/test-sys_time-h.c
@@ -1,5 +1,5 @@
/* Test of <sys/time.h> substitute.
- 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 General Public License as published by
diff --git a/tests/test-sys_types-h.c b/tests/test-sys_types-h.c
index b3d6abec..4d47328c 100644
--- a/tests/test-sys_types-h.c
+++ b/tests/test-sys_types-h.c
@@ -1,5 +1,5 @@
/* Test of <sys/types.h> substitute.
- 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 General Public License as published by
@@ -46,14 +46,15 @@ static_assert (TYPE_SIGNED (off_t));
static_assert (TYPE_SIGNED (off64_t));
/* POSIX requires that blksize_t is a signed integer type. */
-#if !(defined __ANDROID__ \
+#if !(defined __ANDROID__ || defined __QNX__ \
|| (defined __FreeBSD_kernel__ && !defined __FreeBSD__) \
- || defined __GLIBC__ && defined __alpha)
+ || (defined __GLIBC__ && defined __alpha))
static_assert (TYPE_SIGNED (blksize_t));
#endif
/* POSIX requires that blkcnt_t is a signed integer type. */
-#if !(defined __ANDROID__ || defined __GLIBC__ && defined __alpha)
+#if !(defined __ANDROID__ || defined __QNX__ \
+ || (defined __GLIBC__ && defined __alpha))
static_assert (TYPE_SIGNED (blkcnt_t));
#endif
diff --git a/tests/test-sys_uio-h.c b/tests/test-sys_uio-h.c
index 97238cb4..cbabdf63 100644
--- a/tests/test-sys_uio-h.c
+++ b/tests/test-sys_uio-h.c
@@ -1,5 +1,5 @@
/* Test of <sys/uio.h> substitute.
- 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 General Public License as published by
diff --git a/tests/test-sys_wait-h.h b/tests/test-sys_wait-h.h
index cb160d8d..dbcd1fa4 100644
--- a/tests/test-sys_wait-h.h
+++ b/tests/test-sys_wait-h.h
@@ -1,5 +1,5 @@
/* Test of macros shared between <sys/wait.h> and <stdlib.h>.
- 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 General Public License as published by
diff --git a/tests/test-thread_create.c b/tests/test-thread_create.c
index 3b024f53..44bfd7aa 100644
--- a/tests/test-thread_create.c
+++ b/tests/test-thread_create.c
@@ -1,5 +1,5 @@
/* Test of gl_thread_create () macro.
- 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 General Public License as published by
diff --git a/tests/test-thread_self.c b/tests/test-thread_self.c
index eaeb2f28..98043357 100644
--- a/tests/test-thread_self.c
+++ b/tests/test-thread_self.c
@@ -1,5 +1,5 @@
/* Test of gl_thread_self () macro.
- 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 General Public License as published by
diff --git a/tests/test-time-h.c b/tests/test-time-h.c
index 34eb10e4..28c3c49a 100644
--- a/tests/test-time-h.c
+++ b/tests/test-time-h.c
@@ -1,5 +1,5 @@
/* Test of <time.h> substitute.
- 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 General Public License as published by
diff --git a/tests/test-time.c b/tests/test-time.c
index 1f373ef5..2f472357 100644
--- a/tests/test-time.c
+++ b/tests/test-time.c
@@ -1,5 +1,5 @@
/* Test of time() function.
- Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ Copyright (C) 2023-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
diff --git a/tests/test-uchar-h.c b/tests/test-uchar-h.c
index 614a5431..e59bfdb8 100644
--- a/tests/test-uchar-h.c
+++ b/tests/test-uchar-h.c
@@ -1,5 +1,5 @@
/* Test of <uchar.h> substitute.
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
+ Copyright (C) 2019-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
diff --git a/tests/test-unistd-h.c b/tests/test-unistd-h.c
index fa869695..aa9565ff 100644
--- a/tests/test-unistd-h.c
+++ b/tests/test-unistd-h.c
@@ -1,5 +1,5 @@
/* Test of <unistd.h> substitute.
- 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 General Public License as published by
diff --git a/tests/test-unsetenv.c b/tests/test-unsetenv.c
index 95d7d0a7..242d17e7 100644
--- a/tests/test-unsetenv.c
+++ b/tests/test-unsetenv.c
@@ -1,5 +1,5 @@
/* Tests of unsetenv.
- 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 General Public License as published by
diff --git a/tests/test-usleep.c b/tests/test-usleep.c
index 751390d3..88ad6c68 100644
--- a/tests/test-usleep.c
+++ b/tests/test-usleep.c
@@ -1,5 +1,5 @@
/* Test of usleep() function.
- 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 General Public License as published by
diff --git a/tests/test-verify-try.c b/tests/test-verify-try.c
index 41fb30cb..326de82f 100644
--- a/tests/test-verify-try.c
+++ b/tests/test-verify-try.c
@@ -1,6 +1,6 @@
/* Test the "verify" module.
- Copyright (C) 2017-2025 Free Software Foundation, Inc.
+ Copyright (C) 2017-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
diff --git a/tests/test-verify.c b/tests/test-verify.c
index e19bfa81..1051e7eb 100644
--- a/tests/test-verify.c
+++ b/tests/test-verify.c
@@ -1,6 +1,6 @@
/* Test the "verify" module.
- Copyright (C) 2005, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2005, 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 General Public License as published by
diff --git a/tests/test-wchar-h.c b/tests/test-wchar-h.c
index 965ee11a..5b4dd246 100644
--- a/tests/test-wchar-h.c
+++ b/tests/test-wchar-h.c
@@ -1,5 +1,5 @@
/* Test of <wchar.h> substitute.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-wcrtomb-w32.c b/tests/test-wcrtomb-w32.c
index 843e4952..505ffeab 100644
--- a/tests/test-wcrtomb-w32.c
+++ b/tests/test-wcrtomb-w32.c
@@ -1,5 +1,5 @@
/* Test of conversion of wide character to multibyte character.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -97,40 +97,36 @@ test_one_locale (const char *name, int codepage)
}
/* Test single bytes. */
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\t': case '\v': case '\f':
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set". */
- ret = wcrtomb (buf, btowc (c), NULL);
- ASSERT (ret == 1);
- ASSERT (buf[0] == (char) c);
- break;
- }
- }
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ ret = wcrtomb (buf, btowc (c), NULL);
+ ASSERT (ret == 1);
+ ASSERT (buf[0] == (char) c);
+ break;
+ }
/* Test special calling convention, passing a NULL pointer. */
{
@@ -306,10 +302,9 @@ main (int argc, char *argv[])
{
int codepage = atoi (argv[argc - 1]);
int result;
- int i;
result = 77;
- for (i = 1; i < argc - 1; i++)
+ for (int i = 1; i < argc - 1; i++)
{
int ret = test_one_locale (argv[i], codepage);
diff --git a/tests/test-wcrtomb.c b/tests/test-wcrtomb.c
index 26320419..bf6c8a59 100644
--- a/tests/test-wcrtomb.c
+++ b/tests/test-wcrtomb.c
@@ -1,5 +1,5 @@
/* Test of conversion of wide character to multibyte character.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -70,40 +70,36 @@ main (int argc, char *argv[])
}
/* Test single bytes. */
- {
- int c;
-
- for (c = 0; c < 0x100; c++)
- switch (c)
- {
- case '\t': case '\v': case '\f':
- case ' ': case '!': case '"': case '#': case '%':
- case '&': case '\'': case '(': case ')': case '*':
- case '+': case ',': case '-': case '.': case '/':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- case ':': case ';': case '<': case '=': case '>':
- case '?':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '[': case '\\': case ']': case '^': case '_':
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z': case '{': case '|': case '}': case '~':
- /* c is in the ISO C "basic character set". */
- ret = wcrtomb (buf, btowc (c), NULL);
- ASSERT (ret == 1);
- ASSERT (buf[0] == (char) c);
- break;
- }
- }
+ for (int c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ ret = wcrtomb (buf, btowc (c), NULL);
+ ASSERT (ret == 1);
+ ASSERT (buf[0] == (char) c);
+ break;
+ }
/* Test special calling convention, passing a NULL pointer. */
{
diff --git a/tests/test-wctype-h.c b/tests/test-wctype-h.c
index c41ce49f..0fed6c17 100644
--- a/tests/test-wctype-h.c
+++ b/tests/test-wctype-h.c
@@ -1,5 +1,5 @@
/* Test of <wctype.h> substitute.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/test-wcwidth.c b/tests/test-wcwidth.c
index 82888f59..2793b2ed 100644
--- a/tests/test-wcwidth.c
+++ b/tests/test-wcwidth.c
@@ -1,5 +1,5 @@
/* Test of wcwidth() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -33,12 +33,10 @@ SIGNATURE_CHECK (wcwidth, int, (wchar_t));
int
main ()
{
- wchar_t wc;
-
#if !GNULIB_WCHAR_SINGLE_LOCALE
# ifdef C_CTYPE_ASCII
/* Test width of ASCII characters. */
- for (wc = 0x20; wc < 0x7F; wc++)
+ for (wchar_t wc = 0x20; wc < 0x7F; wc++)
ASSERT (wcwidth (wc) == 1);
# endif
#endif
@@ -53,7 +51,7 @@ main ()
&& strcmp (locale_charset (), "UTF-8") == 0)
{
/* Test width of ASCII characters. */
- for (wc = 0x20; wc < 0x7F; wc++)
+ for (wchar_t wc = 0x20; wc < 0x7F; wc++)
ASSERT (wcwidth (wc) == 1);
/* Test width of some non-spacing characters. */
diff --git a/tests/test-windows-mutex-type.c b/tests/test-windows-mutex-type.c
index fe5d9f39..4aced0b1 100644
--- a/tests/test-windows-mutex-type.c
+++ b/tests/test-windows-mutex-type.c
@@ -1,5 +1,5 @@
/* Test of locking in multithreaded situations.
- Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Copyright (C) 2024-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
diff --git a/tests/test-windows-recmutex-type.c b/tests/test-windows-recmutex-type.c
index 83dd234d..3047257e 100644
--- a/tests/test-windows-recmutex-type.c
+++ b/tests/test-windows-recmutex-type.c
@@ -1,5 +1,5 @@
/* Test of locking in multithreaded situations.
- Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Copyright (C) 2024-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
diff --git a/tests/test-windows-timedmutex-type.c b/tests/test-windows-timedmutex-type.c
index ce916cf4..ca79ea19 100644
--- a/tests/test-windows-timedmutex-type.c
+++ b/tests/test-windows-timedmutex-type.c
@@ -1,5 +1,5 @@
/* Test of locking in multithreaded situations.
- Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Copyright (C) 2024-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
diff --git a/tests/test-windows-timedrecmutex-type.c b/tests/test-windows-timedrecmutex-type.c
index 081dcd76..fd50597c 100644
--- a/tests/test-windows-timedrecmutex-type.c
+++ b/tests/test-windows-timedrecmutex-type.c
@@ -1,5 +1,5 @@
/* Test of locking in multithreaded situations.
- Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ Copyright (C) 2024-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
diff --git a/tests/test-xalloc-die.c b/tests/test-xalloc-die.c
index d47ae5e8..64701af1 100644
--- a/tests/test-xalloc-die.c
+++ b/tests/test-xalloc-die.c
@@ -1,5 +1,5 @@
/* Test of xalloc_die() function.
- 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 General Public License as published by
diff --git a/tests/test-xalloc-die.sh b/tests/test-xalloc-die.sh
index 9985670f..f132b8cc 100755
--- a/tests/test-xalloc-die.sh
+++ b/tests/test-xalloc-die.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Test suite for xalloc_die.
-# Copyright (C) 2009-2025 Free Software Foundation, Inc.
+# Copyright (C) 2009-2026 Free Software Foundation, Inc.
# This file is part of the GNUlib Library.
#
# This program is free software: you can redistribute it and/or modify
diff --git a/tests/time.c b/tests/time.c
index 1d35c5d4..f5b67fc1 100644
--- a/tests/time.c
+++ b/tests/time.c
@@ -1,5 +1,5 @@
/* Provide time() for systems for which it's broken.
- 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
@@ -28,11 +28,9 @@ time_t
time (time_t *tp)
{
struct timeval tv;
- time_t tt;
-
if (gettimeofday (&tv, NULL) < 0)
abort ();
- tt = tv.tv_sec;
+ time_t tt = tv.tv_sec;
if (tp)
*tp = tt;
diff --git a/tests/unicase/test-casecmp.h b/tests/unicase/test-casecmp.h
index b79a0aac..9fa52f24 100644
--- a/tests/unicase/test-casecmp.h
+++ b/tests/unicase/test-casecmp.h
@@ -1,5 +1,5 @@
/* Test of case and normalization insensitive comparison of Unicode strings.
- 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 General Public License as published by
diff --git a/tests/unicase/test-is-cased.h b/tests/unicase/test-is-cased.h
index 3c1e1513..cade4347 100644
--- a/tests/unicase/test-is-cased.h
+++ b/tests/unicase/test-is-cased.h
@@ -1,5 +1,5 @@
/* Test of test whether case matters for a Unicode string.
- 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 General Public License as published by
diff --git a/tests/unicase/test-is-casefolded.h b/tests/unicase/test-is-casefolded.h
index 102eca60..9d322ce1 100644
--- a/tests/unicase/test-is-casefolded.h
+++ b/tests/unicase/test-is-casefolded.h
@@ -1,5 +1,5 @@
/* Test of test whether a Unicode string is already case-folded.
- 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 General Public License as published by
diff --git a/tests/unicase/test-is-lowercase.h b/tests/unicase/test-is-lowercase.h
index 7475f082..d7e578d5 100644
--- a/tests/unicase/test-is-lowercase.h
+++ b/tests/unicase/test-is-lowercase.h
@@ -1,5 +1,5 @@
/* Test of test whether a Unicode string is entirely lower case.
- 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 General Public License as published by
diff --git a/tests/unicase/test-is-titlecase.h b/tests/unicase/test-is-titlecase.h
index f67d798d..f7b8a001 100644
--- a/tests/unicase/test-is-titlecase.h
+++ b/tests/unicase/test-is-titlecase.h
@@ -1,5 +1,5 @@
/* Test of test whether a Unicode string is entirely title case.
- 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 General Public License as published by
diff --git a/tests/unicase/test-is-uppercase.h b/tests/unicase/test-is-uppercase.h
index bd15c81b..50fa02ab 100644
--- a/tests/unicase/test-is-uppercase.h
+++ b/tests/unicase/test-is-uppercase.h
@@ -1,5 +1,5 @@
/* Test of test whether a Unicode string is entirely upper case.
- 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 General Public License as published by
diff --git a/tests/unicase/test-locale-language.c b/tests/unicase/test-locale-language.c
index e35fab89..f1bba399 100644
--- a/tests/unicase/test-locale-language.c
+++ b/tests/unicase/test-locale-language.c
@@ -1,5 +1,5 @@
/* Test of language code determination.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unicase/test-mapping-part1.h b/tests/unicase/test-mapping-part1.h
index d64bb32f..71171bdc 100644
--- a/tests/unicase/test-mapping-part1.h
+++ b/tests/unicase/test-mapping-part1.h
@@ -1,5 +1,5 @@
/* Test of single character case mapping functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unicase/test-mapping-part2.h b/tests/unicase/test-mapping-part2.h
index aa143845..f0828d4a 100644
--- a/tests/unicase/test-mapping-part2.h
+++ b/tests/unicase/test-mapping-part2.h
@@ -1,5 +1,5 @@
/* Test of single character case mapping functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -20,10 +20,9 @@ int
main ()
{
unsigned int c;
- size_t i;
c = 0;
- for (i = 0; i < SIZEOF (mapping); i++)
+ for (size_t i = 0; i < SIZEOF (mapping); i++)
{
for (; c < mapping[i].ch; c++)
ASSERT (MAP (c) == c);
diff --git a/tests/unicase/test-predicate-part1.h b/tests/unicase/test-predicate-part1.h
index 3e4c620d..51299e3f 100644
--- a/tests/unicase/test-predicate-part1.h
+++ b/tests/unicase/test-predicate-part1.h
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unicase/test-predicate-part2.h b/tests/unicase/test-predicate-part2.h
index 7ad81db2..1ca36c1a 100644
--- a/tests/unicase/test-predicate-part2.h
+++ b/tests/unicase/test-predicate-part2.h
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- 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 General Public License as published by
@@ -20,10 +20,9 @@ int
main ()
{
unsigned int c;
- size_t i;
c = 0;
- for (i = 0; i < SIZEOF (set); i++)
+ for (size_t i = 0; i < SIZEOF (set); i++)
{
for (; c < set[i].start; c++)
ASSERT (!PREDICATE (c));
diff --git a/tests/unicase/test-u16-casecmp.c b/tests/unicase/test-u16-casecmp.c
index c2a244d0..1643543e 100644
--- a/tests/unicase/test-u16-casecmp.c
+++ b/tests/unicase/test-u16-casecmp.c
@@ -1,5 +1,5 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u16-casecoll.c b/tests/unicase/test-u16-casecoll.c
index 3397b300..e9347048 100644
--- a/tests/unicase/test-u16-casecoll.c
+++ b/tests/unicase/test-u16-casecoll.c
@@ -1,6 +1,6 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u16-casefold.c b/tests/unicase/test-u16-casefold.c
index 85de6eb3..50a990bb 100644
--- a/tests/unicase/test-u16-casefold.c
+++ b/tests/unicase/test-u16-casefold.c
@@ -1,5 +1,5 @@
/* Test of casefolding mapping for UTF-16 strings.
- 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 General Public License as published by
diff --git a/tests/unicase/test-u16-is-cased.c b/tests/unicase/test-u16-is-cased.c
index c1584259..5fd0673f 100644
--- a/tests/unicase/test-u16-is-cased.c
+++ b/tests/unicase/test-u16-is-cased.c
@@ -1,5 +1,5 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u16-is-casefolded.c b/tests/unicase/test-u16-is-casefolded.c
index 8cea10ed..6e7c577d 100644
--- a/tests/unicase/test-u16-is-casefolded.c
+++ b/tests/unicase/test-u16-is-casefolded.c
@@ -1,5 +1,5 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u16-is-lowercase.c b/tests/unicase/test-u16-is-lowercase.c
index 5341b666..64888af2 100644
--- a/tests/unicase/test-u16-is-lowercase.c
+++ b/tests/unicase/test-u16-is-lowercase.c
@@ -1,5 +1,5 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u16-is-titlecase.c b/tests/unicase/test-u16-is-titlecase.c
index 390e8af9..7f7e7865 100644
--- a/tests/unicase/test-u16-is-titlecase.c
+++ b/tests/unicase/test-u16-is-titlecase.c
@@ -1,5 +1,5 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u16-is-uppercase.c b/tests/unicase/test-u16-is-uppercase.c
index 190b2a92..174f25e4 100644
--- a/tests/unicase/test-u16-is-uppercase.c
+++ b/tests/unicase/test-u16-is-uppercase.c
@@ -1,5 +1,5 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u16-tolower.c b/tests/unicase/test-u16-tolower.c
index ee30c47d..ed6d0a9b 100644
--- a/tests/unicase/test-u16-tolower.c
+++ b/tests/unicase/test-u16-tolower.c
@@ -1,5 +1,5 @@
/* Test of lowercase mapping for UTF-16 strings.
- 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 General Public License as published by
diff --git a/tests/unicase/test-u16-totitle.c b/tests/unicase/test-u16-totitle.c
index 53fe9787..dec7b317 100644
--- a/tests/unicase/test-u16-totitle.c
+++ b/tests/unicase/test-u16-totitle.c
@@ -1,5 +1,5 @@
/* Test of titlecase mapping for UTF-16 strings.
- 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 General Public License as published by
diff --git a/tests/unicase/test-u16-toupper.c b/tests/unicase/test-u16-toupper.c
index 19f3c0ce..ccb84994 100644
--- a/tests/unicase/test-u16-toupper.c
+++ b/tests/unicase/test-u16-toupper.c
@@ -1,5 +1,5 @@
/* Test of uppercase mapping for UTF-16 strings.
- 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 General Public License as published by
diff --git a/tests/unicase/test-u32-casecmp.c b/tests/unicase/test-u32-casecmp.c
index 8ec7ff0a..1a44f139 100644
--- a/tests/unicase/test-u32-casecmp.c
+++ b/tests/unicase/test-u32-casecmp.c
@@ -1,5 +1,5 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u32-casecoll.c b/tests/unicase/test-u32-casecoll.c
index f58e99f9..89df9646 100644
--- a/tests/unicase/test-u32-casecoll.c
+++ b/tests/unicase/test-u32-casecoll.c
@@ -1,6 +1,6 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u32-casefold.c b/tests/unicase/test-u32-casefold.c
index 0b722b60..aae99d2d 100644
--- a/tests/unicase/test-u32-casefold.c
+++ b/tests/unicase/test-u32-casefold.c
@@ -1,5 +1,5 @@
/* Test of casefolding mapping for UTF-32 strings.
- 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 General Public License as published by
diff --git a/tests/unicase/test-u32-is-cased.c b/tests/unicase/test-u32-is-cased.c
index 3875fd5c..297584ab 100644
--- a/tests/unicase/test-u32-is-cased.c
+++ b/tests/unicase/test-u32-is-cased.c
@@ -1,5 +1,5 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u32-is-casefolded.c b/tests/unicase/test-u32-is-casefolded.c
index 0b135fd3..d29495b9 100644
--- a/tests/unicase/test-u32-is-casefolded.c
+++ b/tests/unicase/test-u32-is-casefolded.c
@@ -1,5 +1,5 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u32-is-lowercase.c b/tests/unicase/test-u32-is-lowercase.c
index a9062aa5..b36210ad 100644
--- a/tests/unicase/test-u32-is-lowercase.c
+++ b/tests/unicase/test-u32-is-lowercase.c
@@ -1,5 +1,5 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u32-is-titlecase.c b/tests/unicase/test-u32-is-titlecase.c
index cd6e011f..e51b1489 100644
--- a/tests/unicase/test-u32-is-titlecase.c
+++ b/tests/unicase/test-u32-is-titlecase.c
@@ -1,5 +1,5 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u32-is-uppercase.c b/tests/unicase/test-u32-is-uppercase.c
index 5df2920f..ae431bdd 100644
--- a/tests/unicase/test-u32-is-uppercase.c
+++ b/tests/unicase/test-u32-is-uppercase.c
@@ -1,5 +1,5 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u32-tolower.c b/tests/unicase/test-u32-tolower.c
index 343a0ac2..eda53f2e 100644
--- a/tests/unicase/test-u32-tolower.c
+++ b/tests/unicase/test-u32-tolower.c
@@ -1,5 +1,5 @@
/* Test of lowercase mapping for UTF-32 strings.
- 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 General Public License as published by
diff --git a/tests/unicase/test-u32-totitle.c b/tests/unicase/test-u32-totitle.c
index 3e6d4f68..a9141300 100644
--- a/tests/unicase/test-u32-totitle.c
+++ b/tests/unicase/test-u32-totitle.c
@@ -1,5 +1,5 @@
/* Test of titlecase mapping for UTF-32 strings.
- 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 General Public License as published by
diff --git a/tests/unicase/test-u32-toupper.c b/tests/unicase/test-u32-toupper.c
index 7a490f08..4f23ea3a 100644
--- a/tests/unicase/test-u32-toupper.c
+++ b/tests/unicase/test-u32-toupper.c
@@ -1,5 +1,5 @@
/* Test of uppercase mapping for UTF-32 strings.
- 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 General Public License as published by
diff --git a/tests/unicase/test-u8-casecmp.c b/tests/unicase/test-u8-casecmp.c
index 80f6cc8a..67fff4e8 100644
--- a/tests/unicase/test-u8-casecmp.c
+++ b/tests/unicase/test-u8-casecmp.c
@@ -1,5 +1,5 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u8-casecoll.c b/tests/unicase/test-u8-casecoll.c
index f06e07de..e9075a14 100644
--- a/tests/unicase/test-u8-casecoll.c
+++ b/tests/unicase/test-u8-casecoll.c
@@ -1,6 +1,6 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u8-casefold.c b/tests/unicase/test-u8-casefold.c
index 9f236a35..f66b4222 100644
--- a/tests/unicase/test-u8-casefold.c
+++ b/tests/unicase/test-u8-casefold.c
@@ -1,5 +1,5 @@
/* Test of casefolding mapping for UTF-8 strings.
- 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 General Public License as published by
diff --git a/tests/unicase/test-u8-is-cased.c b/tests/unicase/test-u8-is-cased.c
index 0e7b5351..28a6ff74 100644
--- a/tests/unicase/test-u8-is-cased.c
+++ b/tests/unicase/test-u8-is-cased.c
@@ -1,5 +1,5 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u8-is-casefolded.c b/tests/unicase/test-u8-is-casefolded.c
index c5bcc89c..9ec726f8 100644
--- a/tests/unicase/test-u8-is-casefolded.c
+++ b/tests/unicase/test-u8-is-casefolded.c
@@ -1,5 +1,5 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u8-is-lowercase.c b/tests/unicase/test-u8-is-lowercase.c
index 52c2d731..06426e14 100644
--- a/tests/unicase/test-u8-is-lowercase.c
+++ b/tests/unicase/test-u8-is-lowercase.c
@@ -1,5 +1,5 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u8-is-titlecase.c b/tests/unicase/test-u8-is-titlecase.c
index ed54d3da..eb4b8368 100644
--- a/tests/unicase/test-u8-is-titlecase.c
+++ b/tests/unicase/test-u8-is-titlecase.c
@@ -1,5 +1,5 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u8-is-uppercase.c b/tests/unicase/test-u8-is-uppercase.c
index 54deced0..1b368b15 100644
--- a/tests/unicase/test-u8-is-uppercase.c
+++ b/tests/unicase/test-u8-is-uppercase.c
@@ -1,5 +1,5 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-u8-tolower.c b/tests/unicase/test-u8-tolower.c
index 1a475a3c..e74749b9 100644
--- a/tests/unicase/test-u8-tolower.c
+++ b/tests/unicase/test-u8-tolower.c
@@ -1,5 +1,5 @@
/* Test of lowercase mapping for UTF-8 strings.
- 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 General Public License as published by
diff --git a/tests/unicase/test-u8-totitle.c b/tests/unicase/test-u8-totitle.c
index 438b0384..23443e9e 100644
--- a/tests/unicase/test-u8-totitle.c
+++ b/tests/unicase/test-u8-totitle.c
@@ -1,5 +1,5 @@
/* Test of titlecase mapping for UTF-8 strings.
- 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 General Public License as published by
diff --git a/tests/unicase/test-u8-toupper.c b/tests/unicase/test-u8-toupper.c
index 272c46a9..a99fcaad 100644
--- a/tests/unicase/test-u8-toupper.c
+++ b/tests/unicase/test-u8-toupper.c
@@ -1,5 +1,5 @@
/* Test of uppercase mapping for UTF-8 strings.
- 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 General Public License as published by
diff --git a/tests/unicase/test-ulc-casecmp.c b/tests/unicase/test-ulc-casecmp.c
index 9d139759..570e0f1f 100644
--- a/tests/unicase/test-ulc-casecmp.c
+++ b/tests/unicase/test-ulc-casecmp.c
@@ -1,5 +1,5 @@
/* Test of case and normalization insensitive comparison of strings.
- 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 General Public License as published by
diff --git a/tests/unicase/test-ulc-casecoll.c b/tests/unicase/test-ulc-casecoll.c
index dff17bd6..f40331aa 100644
--- a/tests/unicase/test-ulc-casecoll.c
+++ b/tests/unicase/test-ulc-casecoll.c
@@ -1,6 +1,6 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/unicase/test-unicase-h.c b/tests/unicase/test-unicase-h.c
index b09e0f05..f656d7be 100644
--- a/tests/unicase/test-unicase-h.c
+++ b/tests/unicase/test-unicase-h.c
@@ -1,5 +1,5 @@
/* Test of <unicase.h>.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-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
diff --git a/tests/uniconv/test-u16-conv-from-enc.c b/tests/uniconv/test-u16-conv-from-enc.c
index 6dffc71e..4ff51a26 100644
--- a/tests/uniconv/test-u16-conv-from-enc.c
+++ b/tests/uniconv/test-u16-conv-from-enc.c
@@ -1,5 +1,5 @@
/* Test of conversion to UTF-16 from legacy encodings.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -44,15 +44,12 @@ main ()
#if HAVE_ICONV
static enum iconv_ilseq_handler handlers[] =
{ iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
- size_t h;
- size_t o;
- size_t i;
/* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
ISO-8859-2, and UTF-8. */
/* Test conversion from ISO-8859-1 to UTF-16 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
@@ -62,7 +59,7 @@ main ()
'e', 'n', ' ', 'B', 0xFC, 'b', 'c', 'h', 'e', 'n', ' ', 'o', 'h',
'n', 'e', ' ', 'A', 'u', 'g', 'e', 'n', 'm', 'a', 0xDF
};
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
size_t length;
@@ -75,7 +72,7 @@ main ()
ASSERT (u16_cmp (result, expected, SIZEOF (expected)) == 0);
if (o)
{
- for (i = 0; i < 37; i++)
+ for (size_t i = 0; i < 37; i++)
ASSERT (offsets[i] == i);
ASSERT (offsets[37] == MAGIC);
free (offsets);
@@ -85,7 +82,7 @@ main ()
}
/* Test conversion from ISO-8859-2 to UTF-16 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
@@ -94,7 +91,7 @@ main ()
'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
's', 'k', 'i'
};
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
size_t length;
@@ -107,7 +104,7 @@ main ()
ASSERT (u16_cmp (result, expected, SIZEOF (expected)) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == i);
ASSERT (offsets[16] == MAGIC);
free (offsets);
@@ -122,7 +119,7 @@ main ()
if (iconv_supports_encoding ("ISO-2022-JP-2"))
{
/* Test conversions from autodetect_jp to UTF-16. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\244\263\244\363\244\313\244\301\244\317"; /* こんにちは in EUC-JP */
@@ -130,7 +127,7 @@ main ()
{
0x3053, 0x3093, 0x306B, 0x3061, 0x306F
};
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
size_t length;
@@ -143,7 +140,7 @@ main ()
ASSERT (u16_cmp (result, expected, SIZEOF (expected)) == 0);
if (o)
{
- for (i = 0; i < 10; i++)
+ for (size_t i = 0; i < 10; i++)
ASSERT (offsets[i] == ((i % 2) == 0 ? i / 2 : (size_t)(-1)));
ASSERT (offsets[10] == MAGIC);
free (offsets);
@@ -151,7 +148,7 @@ main ()
free (result);
}
}
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\202\261\202\361\202\311\202\277\202\315"; /* こんにちは in Shift_JIS */
@@ -159,7 +156,7 @@ main ()
{
0x3053, 0x3093, 0x306B, 0x3061, 0x306F
};
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
size_t length;
@@ -172,7 +169,7 @@ main ()
ASSERT (u16_cmp (result, expected, SIZEOF (expected)) == 0);
if (o)
{
- for (i = 0; i < 10; i++)
+ for (size_t i = 0; i < 10; i++)
ASSERT (offsets[i] == ((i % 2) == 0 ? i / 2 : (size_t)(-1)));
ASSERT (offsets[10] == MAGIC);
free (offsets);
@@ -180,7 +177,7 @@ main ()
free (result);
}
}
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\033$B$3$s$K$A$O\033(B"; /* こんにちは in ISO-2022-JP-2 */
@@ -188,7 +185,7 @@ main ()
{
0x3053, 0x3093, 0x306B, 0x3061, 0x306F
};
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
size_t length;
@@ -201,7 +198,7 @@ main ()
ASSERT (u16_cmp (result, expected, SIZEOF (expected)) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == (i == 0 ? 0 :
i == 5 ? 1 :
i == 7 ? 2 :
diff --git a/tests/uniconv/test-u16-conv-to-enc.c b/tests/uniconv/test-u16-conv-to-enc.c
index 2d12c1d1..6464b56e 100644
--- a/tests/uniconv/test-u16-conv-to-enc.c
+++ b/tests/uniconv/test-u16-conv-to-enc.c
@@ -1,5 +1,5 @@
/* Test of conversion from UTF-16 to legacy encodings.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -43,15 +43,12 @@ main ()
#if HAVE_ICONV
static enum iconv_ilseq_handler handlers[] =
{ iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
- size_t h;
- size_t o;
- size_t i;
/* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
ISO-8859-2, and UTF-8. */
/* Test conversion from UTF-16 to ISO-8859-1 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const uint16_t input[] = /* Ärger mit bösen Bübchen ohne Augenmaß */
@@ -61,7 +58,7 @@ main ()
'n', 'e', ' ', 'A', 'u', 'g', 'e', 'n', 'm', 'a', 0xDF
};
static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (SIZEOF (input)) : NULL);
size_t length;
@@ -74,7 +71,7 @@ main ()
ASSERT (memcmp (result, expected, length) == 0);
if (o)
{
- for (i = 0; i < 37; i++)
+ for (size_t i = 0; i < 37; i++)
ASSERT (offsets[i] == i);
ASSERT (offsets[37] == MAGIC);
free (offsets);
@@ -84,7 +81,7 @@ main ()
}
/* Test conversion from UTF-16 to ISO-8859-1 with EILSEQ. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const uint16_t input[] = /* Rafał Maszkowski */
@@ -92,7 +89,7 @@ main ()
'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
's', 'k', 'i'
};
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (SIZEOF (input)) : NULL);
size_t length = 0xdead;
@@ -119,7 +116,7 @@ main ()
|| memcmp (result, expected_translit, length) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == i);
ASSERT (offsets[16] == MAGIC);
free (offsets);
@@ -135,7 +132,7 @@ main ()
ASSERT (memcmp (result, expected, length) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == (i < 5 ? i : i + 5));
ASSERT (offsets[16] == MAGIC);
free (offsets);
@@ -148,11 +145,11 @@ main ()
}
/* Test conversion from UTF-16 to ISO-8859-1 with EINVAL. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const uint16_t input[] = { 0xD845 };
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (SIZEOF (input)) : NULL);
size_t length;
diff --git a/tests/uniconv/test-u16-strconv-from-enc.c b/tests/uniconv/test-u16-strconv-from-enc.c
index 93ebead6..af321276 100644
--- a/tests/uniconv/test-u16-strconv-from-enc.c
+++ b/tests/uniconv/test-u16-strconv-from-enc.c
@@ -1,5 +1,5 @@
/* Test of conversion to UTF-16 from legacy encodings.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -32,13 +32,12 @@ main ()
#if HAVE_ICONV
static enum iconv_ilseq_handler handlers[] =
{ iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
- size_t h;
/* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
ISO-8859-2, and UTF-8. */
/* Test conversion from ISO-8859-1 to UTF-16 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
@@ -55,7 +54,7 @@ main ()
}
/* Test conversion from ISO-8859-2 to UTF-16 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
@@ -76,7 +75,7 @@ main ()
if (iconv_supports_encoding ("ISO-2022-JP-2"))
{
/* Test conversions from autodetect_jp to UTF-16. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\244\263\244\363\244\313\244\301\244\317"; /* こんにちは in EUC-JP */
@@ -89,7 +88,7 @@ main ()
ASSERT (u16_strcmp (result, expected) == 0);
free (result);
}
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\202\261\202\361\202\311\202\277\202\315"; /* こんにちは in Shift_JIS */
@@ -102,7 +101,7 @@ main ()
ASSERT (u16_strcmp (result, expected) == 0);
free (result);
}
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\033$B$3$s$K$A$O\033(B"; /* こんにちは in ISO-2022-JP-2 */
diff --git a/tests/uniconv/test-u16-strconv-to-enc.c b/tests/uniconv/test-u16-strconv-to-enc.c
index 9378c647..6dfc9460 100644
--- a/tests/uniconv/test-u16-strconv-to-enc.c
+++ b/tests/uniconv/test-u16-strconv-to-enc.c
@@ -1,5 +1,5 @@
/* Test of conversion from UTF-16 to legacy encodings.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -32,13 +32,12 @@ main ()
#if HAVE_ICONV
static enum iconv_ilseq_handler handlers[] =
{ iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
- size_t h;
/* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
ISO-8859-2, and UTF-8. */
/* Test conversion from UTF-16 to ISO-8859-1 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const uint16_t input[] = /* Ärger mit bösen Bübchen ohne Augenmaß */
@@ -55,7 +54,7 @@ main ()
}
/* Test conversion from UTF-16 to ISO-8859-1 with EILSEQ. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const uint16_t input[] = /* Rafał Maszkowski */
@@ -92,7 +91,7 @@ main ()
# if 0
/* Test conversion from UTF-16 to ISO-8859-1 with EINVAL. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const uint16_t input[] = { 0xD845, 0 };
diff --git a/tests/uniconv/test-u32-conv-from-enc.c b/tests/uniconv/test-u32-conv-from-enc.c
index 677c11fc..8cd013f9 100644
--- a/tests/uniconv/test-u32-conv-from-enc.c
+++ b/tests/uniconv/test-u32-conv-from-enc.c
@@ -1,5 +1,5 @@
/* Test of conversion to UTF-32 from legacy encodings.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -44,15 +44,12 @@ main ()
#if HAVE_ICONV
static enum iconv_ilseq_handler handlers[] =
{ iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
- size_t h;
- size_t o;
- size_t i;
/* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
ISO-8859-2, and UTF-8. */
/* Test conversion from ISO-8859-1 to UTF-16 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
@@ -62,7 +59,7 @@ main ()
'e', 'n', ' ', 'B', 0xFC, 'b', 'c', 'h', 'e', 'n', ' ', 'o', 'h',
'n', 'e', ' ', 'A', 'u', 'g', 'e', 'n', 'm', 'a', 0xDF
};
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
size_t length;
@@ -75,7 +72,7 @@ main ()
ASSERT (u32_cmp (result, expected, SIZEOF (expected)) == 0);
if (o)
{
- for (i = 0; i < 37; i++)
+ for (size_t i = 0; i < 37; i++)
ASSERT (offsets[i] == i);
ASSERT (offsets[37] == MAGIC);
free (offsets);
@@ -85,7 +82,7 @@ main ()
}
/* Test conversion from ISO-8859-2 to UTF-16 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
@@ -94,7 +91,7 @@ main ()
'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
's', 'k', 'i'
};
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
size_t length;
@@ -107,7 +104,7 @@ main ()
ASSERT (u32_cmp (result, expected, SIZEOF (expected)) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == i);
ASSERT (offsets[16] == MAGIC);
free (offsets);
@@ -122,7 +119,7 @@ main ()
if (iconv_supports_encoding ("ISO-2022-JP-2"))
{
/* Test conversions from autodetect_jp to UTF-16. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\244\263\244\363\244\313\244\301\244\317"; /* こんにちは in EUC-JP */
@@ -130,7 +127,7 @@ main ()
{
0x3053, 0x3093, 0x306B, 0x3061, 0x306F
};
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
size_t length;
@@ -143,7 +140,7 @@ main ()
ASSERT (u32_cmp (result, expected, SIZEOF (expected)) == 0);
if (o)
{
- for (i = 0; i < 10; i++)
+ for (size_t i = 0; i < 10; i++)
ASSERT (offsets[i] == ((i % 2) == 0 ? i / 2 : (size_t)(-1)));
ASSERT (offsets[10] == MAGIC);
free (offsets);
@@ -151,7 +148,7 @@ main ()
free (result);
}
}
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\202\261\202\361\202\311\202\277\202\315"; /* こんにちは in Shift_JIS */
@@ -159,7 +156,7 @@ main ()
{
0x3053, 0x3093, 0x306B, 0x3061, 0x306F
};
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
size_t length;
@@ -172,7 +169,7 @@ main ()
ASSERT (u32_cmp (result, expected, SIZEOF (expected)) == 0);
if (o)
{
- for (i = 0; i < 10; i++)
+ for (size_t i = 0; i < 10; i++)
ASSERT (offsets[i] == ((i % 2) == 0 ? i / 2 : (size_t)(-1)));
ASSERT (offsets[10] == MAGIC);
free (offsets);
@@ -180,7 +177,7 @@ main ()
free (result);
}
}
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\033$B$3$s$K$A$O\033(B"; /* こんにちは in ISO-2022-JP-2 */
@@ -188,7 +185,7 @@ main ()
{
0x3053, 0x3093, 0x306B, 0x3061, 0x306F
};
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
size_t length;
@@ -201,7 +198,7 @@ main ()
ASSERT (u32_cmp (result, expected, SIZEOF (expected)) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == (i == 0 ? 0 :
i == 5 ? 1 :
i == 7 ? 2 :
diff --git a/tests/uniconv/test-u32-conv-to-enc.c b/tests/uniconv/test-u32-conv-to-enc.c
index cdb9c363..e23e2867 100644
--- a/tests/uniconv/test-u32-conv-to-enc.c
+++ b/tests/uniconv/test-u32-conv-to-enc.c
@@ -1,5 +1,5 @@
/* Test of conversion from UTF-32 to legacy encodings.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -43,15 +43,12 @@ main ()
#if HAVE_ICONV
static enum iconv_ilseq_handler handlers[] =
{ iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
- size_t h;
- size_t o;
- size_t i;
/* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
ISO-8859-2, and UTF-8. */
/* Test conversion from UTF-32 to ISO-8859-1 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const uint32_t input[] = /* Ärger mit bösen Bübchen ohne Augenmaß */
@@ -61,7 +58,7 @@ main ()
'n', 'e', ' ', 'A', 'u', 'g', 'e', 'n', 'm', 'a', 0xDF
};
static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (SIZEOF (input)) : NULL);
size_t length;
@@ -74,7 +71,7 @@ main ()
ASSERT (memcmp (result, expected, length) == 0);
if (o)
{
- for (i = 0; i < 37; i++)
+ for (size_t i = 0; i < 37; i++)
ASSERT (offsets[i] == i);
ASSERT (offsets[37] == MAGIC);
free (offsets);
@@ -84,7 +81,7 @@ main ()
}
/* Test conversion from UTF-32 to ISO-8859-1 with EILSEQ. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const uint32_t input[] = /* Rafał Maszkowski */
@@ -92,7 +89,7 @@ main ()
'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
's', 'k', 'i'
};
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (SIZEOF (input)) : NULL);
size_t length = 0xdead;
@@ -119,7 +116,7 @@ main ()
|| memcmp (result, expected_translit, length) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == i);
ASSERT (offsets[16] == MAGIC);
free (offsets);
@@ -135,7 +132,7 @@ main ()
ASSERT (memcmp (result, expected, length) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == (i < 5 ? i : i + 5));
ASSERT (offsets[16] == MAGIC);
free (offsets);
diff --git a/tests/uniconv/test-u32-strconv-from-enc.c b/tests/uniconv/test-u32-strconv-from-enc.c
index 9d7d7349..b2040d44 100644
--- a/tests/uniconv/test-u32-strconv-from-enc.c
+++ b/tests/uniconv/test-u32-strconv-from-enc.c
@@ -1,5 +1,5 @@
/* Test of conversion to UTF-32 from legacy encodings.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -32,13 +32,12 @@ main ()
#if HAVE_ICONV
static enum iconv_ilseq_handler handlers[] =
{ iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
- size_t h;
/* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
ISO-8859-2, and UTF-8. */
/* Test conversion from ISO-8859-1 to UTF-16 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
@@ -55,7 +54,7 @@ main ()
}
/* Test conversion from ISO-8859-2 to UTF-16 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
@@ -76,7 +75,7 @@ main ()
if (iconv_supports_encoding ("ISO-2022-JP-2"))
{
/* Test conversions from autodetect_jp to UTF-16. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\244\263\244\363\244\313\244\301\244\317"; /* こんにちは in EUC-JP */
@@ -89,7 +88,7 @@ main ()
ASSERT (u32_strcmp (result, expected) == 0);
free (result);
}
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\202\261\202\361\202\311\202\277\202\315"; /* こんにちは in Shift_JIS */
@@ -102,7 +101,7 @@ main ()
ASSERT (u32_strcmp (result, expected) == 0);
free (result);
}
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\033$B$3$s$K$A$O\033(B"; /* こんにちは in ISO-2022-JP-2 */
diff --git a/tests/uniconv/test-u32-strconv-to-enc.c b/tests/uniconv/test-u32-strconv-to-enc.c
index 8ff053e5..7b4d80b4 100644
--- a/tests/uniconv/test-u32-strconv-to-enc.c
+++ b/tests/uniconv/test-u32-strconv-to-enc.c
@@ -1,5 +1,5 @@
/* Test of conversion from UTF-32 to legacy encodings.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -31,13 +31,12 @@ main ()
#if HAVE_ICONV
static enum iconv_ilseq_handler handlers[] =
{ iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
- size_t h;
/* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
ISO-8859-2, and UTF-8. */
/* Test conversion from UTF-32 to ISO-8859-1 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const uint32_t input[] = /* Ärger mit bösen Bübchen ohne Augenmaß */
@@ -54,7 +53,7 @@ main ()
}
/* Test conversion from UTF-32 to ISO-8859-1 with EILSEQ. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const uint32_t input[] = /* Rafał Maszkowski */
diff --git a/tests/uniconv/test-u8-conv-from-enc.c b/tests/uniconv/test-u8-conv-from-enc.c
index f0bc956e..9fda9959 100644
--- a/tests/uniconv/test-u8-conv-from-enc.c
+++ b/tests/uniconv/test-u8-conv-from-enc.c
@@ -1,5 +1,5 @@
/* Test of conversion to UTF-8 from legacy encodings.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -44,20 +44,17 @@ main ()
#if HAVE_ICONV
static enum iconv_ilseq_handler handlers[] =
{ iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
- size_t h;
- size_t o;
- size_t i;
/* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
ISO-8859-2, and UTF-8. */
/* Test conversion from ISO-8859-1 to UTF-8 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
static const uint8_t expected[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
size_t length;
@@ -70,7 +67,7 @@ main ()
ASSERT (u8_cmp (result, expected, u8_strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 37; i++)
+ for (size_t i = 0; i < 37; i++)
ASSERT (offsets[i] == (i < 1 ? i :
i < 12 ? i + 1 :
i < 18 ? i + 2 :
@@ -83,12 +80,12 @@ main ()
}
/* Test conversion from ISO-8859-2 to UTF-8 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
static const uint8_t expected[] = "Rafa\305\202 Maszkowski";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
size_t length;
@@ -101,7 +98,7 @@ main ()
ASSERT (u8_cmp (result, expected, u8_strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == (i < 5 ? i :
i + 1));
ASSERT (offsets[16] == MAGIC);
@@ -117,12 +114,12 @@ main ()
if (iconv_supports_encoding ("ISO-2022-JP-2"))
{
/* Test conversions from autodetect_jp to UTF-8. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\244\263\244\363\244\313\244\301\244\317"; /* こんにちは in EUC-JP */
static const uint8_t expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257"; /* こんにちは */
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
size_t length;
@@ -135,7 +132,7 @@ main ()
ASSERT (u8_cmp (result, expected, u8_strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 10; i++)
+ for (size_t i = 0; i < 10; i++)
ASSERT (offsets[i] == ((i % 2) == 0 ? (i / 2) * 3 : (size_t)(-1)));
ASSERT (offsets[10] == MAGIC);
free (offsets);
@@ -143,12 +140,12 @@ main ()
free (result);
}
}
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\202\261\202\361\202\311\202\277\202\315"; /* こんにちは in Shift_JIS */
static const uint8_t expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257"; /* こんにちは */
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
size_t length;
@@ -161,7 +158,7 @@ main ()
ASSERT (u8_cmp (result, expected, u8_strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 10; i++)
+ for (size_t i = 0; i < 10; i++)
ASSERT (offsets[i] == ((i % 2) == 0 ? (i / 2) * 3 : (size_t)(-1)));
ASSERT (offsets[10] == MAGIC);
free (offsets);
@@ -169,12 +166,12 @@ main ()
free (result);
}
}
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\033$B$3$s$K$A$O\033(B"; /* こんにちは in ISO-2022-JP-2 */
static const uint8_t expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257"; /* こんにちは */
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
size_t length;
@@ -187,7 +184,7 @@ main ()
ASSERT (u8_cmp (result, expected, u8_strlen (expected)) == 0);
if (o)
{
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
ASSERT (offsets[i] == (i == 0 ? 0 :
i == 5 ? 3 :
i == 7 ? 6 :
diff --git a/tests/uniconv/test-u8-conv-to-enc.c b/tests/uniconv/test-u8-conv-to-enc.c
index 1f1b5c7b..4953d521 100644
--- a/tests/uniconv/test-u8-conv-to-enc.c
+++ b/tests/uniconv/test-u8-conv-to-enc.c
@@ -1,5 +1,5 @@
/* Test of conversion from UTF-8 to legacy encodings.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -44,20 +44,17 @@ main ()
#if HAVE_ICONV
static enum iconv_ilseq_handler handlers[] =
{ iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
- size_t h;
- size_t o;
- size_t i;
/* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
ISO-8859-2, and UTF-8. */
/* Test conversion from UTF-8 to ISO-8859-1 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const uint8_t input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (u8_strlen (input)) : NULL);
size_t length;
@@ -70,7 +67,7 @@ main ()
ASSERT (memcmp (result, expected, length) == 0);
if (o)
{
- for (i = 0; i < 41; i++)
+ for (size_t i = 0; i < 41; i++)
ASSERT (offsets[i] == (i < 1 ? i :
i == 1 ? (size_t)(-1) :
i < 13 ? i - 1 :
@@ -88,11 +85,11 @@ main ()
}
/* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const uint8_t input[] = "Rafa\305\202 Maszkowski"; /* Rafał Maszkowski */
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (u8_strlen (input)) : NULL);
size_t length = 0xdead;
@@ -119,7 +116,7 @@ main ()
|| memcmp (result, expected_translit, length) == 0);
if (o)
{
- for (i = 0; i < 17; i++)
+ for (size_t i = 0; i < 17; i++)
ASSERT (offsets[i] == (i < 5 ? i :
i == 5 ? (size_t)(-1) :
i - 1));
@@ -137,7 +134,7 @@ main ()
ASSERT (memcmp (result, expected, length) == 0);
if (o)
{
- for (i = 0; i < 17; i++)
+ for (size_t i = 0; i < 17; i++)
ASSERT (offsets[i] == (i < 5 ? i :
i == 5 ? (size_t)(-1) :
i + 4));
@@ -152,11 +149,11 @@ main ()
}
/* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const uint8_t input[] = "\342";
- for (o = 0; o < 2; o++)
+ for (size_t o = 0; o < 2; o++)
{
size_t *offsets = (o ? new_offsets (u8_strlen (input)) : NULL);
size_t length;
diff --git a/tests/uniconv/test-u8-strconv-from-enc.c b/tests/uniconv/test-u8-strconv-from-enc.c
index 0211aa34..9ff66383 100644
--- a/tests/uniconv/test-u8-strconv-from-enc.c
+++ b/tests/uniconv/test-u8-strconv-from-enc.c
@@ -1,5 +1,5 @@
/* Test of conversion to UTF-8 from legacy encodings.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -32,13 +32,12 @@ main ()
#if HAVE_ICONV
static enum iconv_ilseq_handler handlers[] =
{ iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
- size_t h;
/* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
ISO-8859-2, and UTF-8. */
/* Test conversion from ISO-8859-1 to UTF-8 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
@@ -50,7 +49,7 @@ main ()
}
/* Test conversion from ISO-8859-2 to UTF-8 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
@@ -67,7 +66,7 @@ main ()
if (iconv_supports_encoding ("ISO-2022-JP-2"))
{
/* Test conversions from autodetect_jp to UTF-8. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\244\263\244\363\244\313\244\301\244\317"; /* こんにちは in EUC-JP */
@@ -77,7 +76,7 @@ main ()
ASSERT (u8_strcmp (result, expected) == 0);
free (result);
}
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\202\261\202\361\202\311\202\277\202\315"; /* こんにちは in Shift_JIS */
@@ -87,7 +86,7 @@ main ()
ASSERT (u8_strcmp (result, expected) == 0);
free (result);
}
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const char input[] = "\033$B$3$s$K$A$O\033(B"; /* こんにちは in ISO-2022-JP-2 */
diff --git a/tests/uniconv/test-u8-strconv-to-enc.c b/tests/uniconv/test-u8-strconv-to-enc.c
index 48e5d075..09521487 100644
--- a/tests/uniconv/test-u8-strconv-to-enc.c
+++ b/tests/uniconv/test-u8-strconv-to-enc.c
@@ -1,5 +1,5 @@
/* Test of conversion from UTF-8 to legacy encodings.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -32,13 +32,12 @@ main ()
#if HAVE_ICONV
static enum iconv_ilseq_handler handlers[] =
{ iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
- size_t h;
/* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
ISO-8859-2, and UTF-8. */
/* Test conversion from UTF-8 to ISO-8859-1 with no errors. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const uint8_t input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
@@ -50,7 +49,7 @@ main ()
}
/* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const uint8_t input[] = "Rafa\305\202 Maszkowski"; /* Rafał Maszkowski */
@@ -83,7 +82,7 @@ main ()
# if 0
/* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */
- for (h = 0; h < SIZEOF (handlers); h++)
+ for (size_t h = 0; h < SIZEOF (handlers); h++)
{
enum iconv_ilseq_handler handler = handlers[h];
static const uint8_t input[] = "\342";
diff --git a/tests/uniconv/test-uniconv-h.c b/tests/uniconv/test-uniconv-h.c
index 150cbe73..cfb16aa4 100644
--- a/tests/uniconv/test-uniconv-h.c
+++ b/tests/uniconv/test-uniconv-h.c
@@ -1,5 +1,5 @@
/* Test of <uniconv.h>.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-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
diff --git a/tests/unictype/test-bidi_byname.c b/tests/unictype/test-bidi_byname.c
index f1d50b12..5fc3d4b9 100644
--- a/tests/unictype/test-bidi_byname.c
+++ b/tests/unictype/test-bidi_byname.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unictype/test-bidi_longname.c b/tests/unictype/test-bidi_longname.c
index 365a065e..2b5173ec 100644
--- a/tests/unictype/test-bidi_longname.c
+++ b/tests/unictype/test-bidi_longname.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- 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 General Public License as published by
diff --git a/tests/unictype/test-bidi_name.c b/tests/unictype/test-bidi_name.c
index fac5f27a..a679b503 100644
--- a/tests/unictype/test-bidi_name.c
+++ b/tests/unictype/test-bidi_name.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unictype/test-bidi_of.c b/tests/unictype/test-bidi_of.c
index 8715ba92..06822a5f 100644
--- a/tests/unictype/test-bidi_of.c
+++ b/tests/unictype/test-bidi_of.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unictype/test-bidi_test.c b/tests/unictype/test-bidi_test.c
index 2cdb4dc2..86b2bfd0 100644
--- a/tests/unictype/test-bidi_test.c
+++ b/tests/unictype/test-bidi_test.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -37,12 +37,8 @@ main ()
ASSERT (!uc_is_bidi_class ('7', UC_BIDI_L));
ASSERT (!uc_is_bidi_class ('7', UC_BIDI_R));
- {
- unsigned int c;
-
- for (c = 0; c < 0x110000; c++)
- ASSERT (uc_is_bidi_class (c, uc_bidi_class (c)));
- }
+ for (unsigned int c = 0; c < 0x110000; c++)
+ ASSERT (uc_is_bidi_class (c, uc_bidi_class (c)));
return test_exit_status;
}
diff --git a/tests/unictype/test-block_list.c b/tests/unictype/test-block_list.c
index a026c4b6..4105e19f 100644
--- a/tests/unictype/test-block_list.c
+++ b/tests/unictype/test-block_list.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -33,9 +33,8 @@ main ()
{
const uc_block_t *latin_block = NULL;
const uc_block_t *hebrew_block = NULL;
- size_t i;
- for (i = 0; i < nblocks; i++)
+ for (size_t i = 0; i < nblocks; i++)
{
if (strcmp (blocks[i].name, "Latin") == 0)
latin_block = &blocks[i];
diff --git a/tests/unictype/test-block_of.c b/tests/unictype/test-block_of.c
index 28ca1b27..7aceef09 100644
--- a/tests/unictype/test-block_of.c
+++ b/tests/unictype/test-block_of.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -28,24 +28,19 @@ main ()
ASSERT (strcmp (uc_block ('x')->name, "Basic Latin") == 0);
ASSERT (strcmp (uc_block (0x20AC)->name, "Currency Symbols") == 0);
- {
- unsigned int c;
-
- for (c = 0; c < 0x110000; c++)
- {
- const uc_block_t *block = uc_block (c);
- ASSERT (block == NULL || uc_is_block (c, block));
- }
- }
+ for (unsigned int c = 0; c < 0x110000; c++)
+ {
+ const uc_block_t *block = uc_block (c);
+ ASSERT (block == NULL || uc_is_block (c, block));
+ }
{
const uc_block_t *blocks;
size_t nblocks;
- size_t i;
uc_all_blocks (&blocks, &nblocks);
- for (i = 0; i < nblocks; i++)
+ for (size_t i = 0; i < nblocks; i++)
{
if (strcmp (blocks[i].name, "Hebrew") == 0)
{
@@ -54,11 +49,9 @@ main ()
}
}
- for (i = 0; i < nblocks; i++)
+ for (size_t i = 0; i < nblocks; i++)
{
- unsigned int c;
-
- for (c = blocks[i].start; c <= blocks[i].end; c++)
+ for (unsigned int c = blocks[i].start; c <= blocks[i].end; c++)
ASSERT (uc_block (c) == &blocks[i]);
}
}
diff --git a/tests/unictype/test-block_test.c b/tests/unictype/test-block_test.c
index 9139ea71..6499a47c 100644
--- a/tests/unictype/test-block_test.c
+++ b/tests/unictype/test-block_test.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unictype/test-categ_and.c b/tests/unictype/test-categ_and.c
index eb620d05..9f5be0bf 100644
--- a/tests/unictype/test-categ_and.c
+++ b/tests/unictype/test-categ_and.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unictype/test-categ_and_not.c b/tests/unictype/test-categ_and_not.c
index d09d6859..0f90c1d9 100644
--- a/tests/unictype/test-categ_and_not.c
+++ b/tests/unictype/test-categ_and_not.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unictype/test-categ_byname.c b/tests/unictype/test-categ_byname.c
index d7f4924d..5fe54499 100644
--- a/tests/unictype/test-categ_byname.c
+++ b/tests/unictype/test-categ_byname.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -208,19 +208,17 @@ main ()
{
uc_general_category_t ct = uc_general_category_byname ("Nd");
- unsigned int c;
- for (c = 0x30; c <= 0x39; c++)
+ for (unsigned int c = 0x30; c <= 0x39; c++)
ASSERT (uc_is_general_category (c, ct));
- for (c = 0x40; c < 0x80; c++)
+ for (unsigned int c = 0x40; c < 0x80; c++)
ASSERT (!uc_is_general_category (c, ct));
}
{
uc_general_category_t ct = uc_general_category_byname ("Nl");
- unsigned int c;
- for (c = 0x2160; c < 0x2180; c++)
+ for (unsigned int c = 0x2160; c < 0x2180; c++)
ASSERT (uc_is_general_category (c, ct));
ASSERT (!uc_is_general_category (0x0BF1, ct));
ASSERT (!uc_is_general_category (0x0D71, ct));
@@ -228,9 +226,8 @@ main ()
{
uc_general_category_t ct = uc_general_category_byname ("Foo");
- unsigned int c;
- for (c = 0; c < 0x110000; c++)
+ for (unsigned int c = 0; c < 0x110000; c++)
ASSERT (!uc_is_general_category (c, ct));
}
diff --git a/tests/unictype/test-categ_longname.c b/tests/unictype/test-categ_longname.c
index 45426b5b..72827bd7 100644
--- a/tests/unictype/test-categ_longname.c
+++ b/tests/unictype/test-categ_longname.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unictype/test-categ_name.c b/tests/unictype/test-categ_name.c
index 26435ea0..f75b625e 100644
--- a/tests/unictype/test-categ_name.c
+++ b/tests/unictype/test-categ_name.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unictype/test-categ_none.c b/tests/unictype/test-categ_none.c
index 9cd80044..3c68f643 100644
--- a/tests/unictype/test-categ_none.c
+++ b/tests/unictype/test-categ_none.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -31,9 +31,8 @@ main ()
#if !defined _MSC_VER
uc_general_category_t ct = _UC_CATEGORY_NONE;
- unsigned int c;
- for (c = 0; c < 0x110000; c++)
+ for (unsigned int c = 0; c < 0x110000; c++)
ASSERT (!uc_is_general_category (c, ct));
#endif
diff --git a/tests/unictype/test-categ_of.c b/tests/unictype/test-categ_of.c
index 007e0c40..5b2c8742 100644
--- a/tests/unictype/test-categ_of.c
+++ b/tests/unictype/test-categ_of.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -25,29 +25,24 @@
int
main ()
{
- {
- unsigned int c;
- for (c = 0; c < 0x110000; c++)
- ASSERT (uc_is_general_category (c, uc_general_category (c)));
- }
+ for (unsigned int c = 0; c < 0x110000; c++)
+ ASSERT (uc_is_general_category (c, uc_general_category (c)));
{
uc_general_category_t decimal_digits = uc_general_category ('7');
- unsigned int c;
- for (c = 0x30; c <= 0x39; c++)
+ for (unsigned int c = 0x30; c <= 0x39; c++)
ASSERT (uc_is_general_category (c, decimal_digits));
- for (c = 0x40; c < 0x80; c++)
+ for (unsigned int c = 0x40; c < 0x80; c++)
ASSERT (!uc_is_general_category (c, decimal_digits));
}
{
uc_general_category_t lowercase_letters = uc_general_category ('x');
- unsigned int c;
- for (c = 0x41; c <= 0x5A; c++)
+ for (unsigned int c = 0x41; c <= 0x5A; c++)
ASSERT (!uc_is_general_category (c, lowercase_letters));
- for (c = 0x61; c <= 0x7A; c++)
+ for (unsigned int c = 0x61; c <= 0x7A; c++)
ASSERT (uc_is_general_category (c, lowercase_letters));
}
diff --git a/tests/unictype/test-categ_or.c b/tests/unictype/test-categ_or.c
index fbef5cf3..89687e31 100644
--- a/tests/unictype/test-categ_or.c
+++ b/tests/unictype/test-categ_or.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unictype/test-categ_test_withtable.c b/tests/unictype/test-categ_test_withtable.c
index 7e796fb6..c724ec4e 100644
--- a/tests/unictype/test-categ_test_withtable.c
+++ b/tests/unictype/test-categ_test_withtable.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unictype/test-combiningclass.c b/tests/unictype/test-combiningclass.c
index ba6645cb..4d1911a9 100644
--- a/tests/unictype/test-combiningclass.c
+++ b/tests/unictype/test-combiningclass.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unictype/test-combiningclass_byname.c b/tests/unictype/test-combiningclass_byname.c
index 98f4fbad..731442fb 100644
--- a/tests/unictype/test-combiningclass_byname.c
+++ b/tests/unictype/test-combiningclass_byname.c
@@ -1,5 +1,5 @@
/* Test the Unicode character Arabic joining group functions.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify it
diff --git a/tests/unictype/test-combiningclass_longname.c b/tests/unictype/test-combiningclass_longname.c
index 2ee2520a..469e0a66 100644
--- a/tests/unictype/test-combiningclass_longname.c
+++ b/tests/unictype/test-combiningclass_longname.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- 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 General Public License as published by
diff --git a/tests/unictype/test-combiningclass_name.c b/tests/unictype/test-combiningclass_name.c
index 1f06d08c..728707c3 100644
--- a/tests/unictype/test-combiningclass_name.c
+++ b/tests/unictype/test-combiningclass_name.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- 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 General Public License as published by
diff --git a/tests/unictype/test-decdigit.c b/tests/unictype/test-decdigit.c
index 1e860f05..632f1c8d 100644
--- a/tests/unictype/test-decdigit.c
+++ b/tests/unictype/test-decdigit.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -31,10 +31,9 @@ int
main ()
{
unsigned int c;
- size_t i;
c = 0;
- for (i = 0; i < SIZEOF (mapping); i++)
+ for (size_t i = 0; i < SIZEOF (mapping); i++)
{
for (; c < mapping[i].ch; c++)
ASSERT (uc_decimal_value (c) == -1);
diff --git a/tests/unictype/test-digit.c b/tests/unictype/test-digit.c
index a9cd6518..2a0663c1 100644
--- a/tests/unictype/test-digit.c
+++ b/tests/unictype/test-digit.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -31,10 +31,9 @@ int
main ()
{
unsigned int c;
- size_t i;
c = 0;
- for (i = 0; i < SIZEOF (mapping); i++)
+ for (size_t i = 0; i < SIZEOF (mapping); i++)
{
for (; c < mapping[i].ch; c++)
ASSERT (uc_digit_value (c) == -1);
diff --git a/tests/unictype/test-incb_byname.c b/tests/unictype/test-incb_byname.c
index a7ab1730..747d7275 100644
--- a/tests/unictype/test-incb_byname.c
+++ b/tests/unictype/test-incb_byname.c
@@ -1,5 +1,5 @@
/* Test the Indic_Conjunct_Break value functions.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2024.
This program is free software: you can redistribute it and/or modify it
diff --git a/tests/unictype/test-incb_name.c b/tests/unictype/test-incb_name.c
index bf46adc0..c486fc60 100644
--- a/tests/unictype/test-incb_name.c
+++ b/tests/unictype/test-incb_name.c
@@ -1,5 +1,5 @@
/* Test the Indic_Conjunct_Break value functions.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2024.
This program is free software: you can redistribute it and/or modify it
diff --git a/tests/unictype/test-incb_of.c b/tests/unictype/test-incb_of.c
index c4d8cd71..3c08a0ef 100644
--- a/tests/unictype/test-incb_of.c
+++ b/tests/unictype/test-incb_of.c
@@ -1,5 +1,5 @@
/* Test the Unicode character Indic_Conjunct_Break attribute functions.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2024.
This program is free software: you can redistribute it and/or modify it
@@ -35,10 +35,9 @@ int
main ()
{
unsigned int c;
- size_t i;
c = 0;
- for (i = 0; i < SIZEOF (mapping); i++)
+ for (size_t i = 0; i < SIZEOF (mapping); i++)
{
for (; c < mapping[i].ch; c++)
ASSERT (uc_indic_conjunct_break (c) == UC_INDIC_CONJUNCT_BREAK_NONE);
diff --git a/tests/unictype/test-joininggroup_byname.c b/tests/unictype/test-joininggroup_byname.c
index fdd96801..b960a829 100644
--- a/tests/unictype/test-joininggroup_byname.c
+++ b/tests/unictype/test-joininggroup_byname.c
@@ -1,5 +1,5 @@
/* Test the Unicode character Arabic joining group functions.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify it
diff --git a/tests/unictype/test-joininggroup_name.c b/tests/unictype/test-joininggroup_name.c
index 9196014b..f3cce59d 100644
--- a/tests/unictype/test-joininggroup_name.c
+++ b/tests/unictype/test-joininggroup_name.c
@@ -1,5 +1,5 @@
/* Test the Unicode character Arabic joining group functions.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify it
diff --git a/tests/unictype/test-joininggroup_of.c b/tests/unictype/test-joininggroup_of.c
index 8ff37325..20d40788 100644
--- a/tests/unictype/test-joininggroup_of.c
+++ b/tests/unictype/test-joininggroup_of.c
@@ -1,5 +1,5 @@
/* Test the Unicode character Arabic joining group functions.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify it
@@ -35,10 +35,9 @@ int
main ()
{
unsigned int c;
- size_t i;
c = 0;
- for (i = 0; i < SIZEOF (mapping); i++)
+ for (size_t i = 0; i < SIZEOF (mapping); i++)
{
for (; c < mapping[i].ch; c++)
ASSERT (uc_joining_group (c) == UC_JOINING_GROUP_NONE);
diff --git a/tests/unictype/test-joiningtype_byname.c b/tests/unictype/test-joiningtype_byname.c
index 81798156..b794584a 100644
--- a/tests/unictype/test-joiningtype_byname.c
+++ b/tests/unictype/test-joiningtype_byname.c
@@ -1,5 +1,5 @@
/* Test the Unicode character Arabic joining type functions.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify it
diff --git a/tests/unictype/test-joiningtype_longname.c b/tests/unictype/test-joiningtype_longname.c
index 1c347eb1..e1970150 100644
--- a/tests/unictype/test-joiningtype_longname.c
+++ b/tests/unictype/test-joiningtype_longname.c
@@ -1,5 +1,5 @@
/* Test the Unicode character Arabic joining type functions.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify it
diff --git a/tests/unictype/test-joiningtype_name.c b/tests/unictype/test-joiningtype_name.c
index 9f93f5f2..1bb8edcd 100644
--- a/tests/unictype/test-joiningtype_name.c
+++ b/tests/unictype/test-joiningtype_name.c
@@ -1,5 +1,5 @@
/* Test the Unicode character Arabic joining type functions.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify it
diff --git a/tests/unictype/test-joiningtype_of.c b/tests/unictype/test-joiningtype_of.c
index f04695a9..c67ff87a 100644
--- a/tests/unictype/test-joiningtype_of.c
+++ b/tests/unictype/test-joiningtype_of.c
@@ -1,5 +1,5 @@
/* Test the Unicode character Arabic joining type functions.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify it
@@ -35,10 +35,9 @@ int
main ()
{
unsigned int c;
- size_t i;
c = 0;
- for (i = 0; i < SIZEOF (mapping); i++)
+ for (size_t i = 0; i < SIZEOF (mapping); i++)
{
for (; c < mapping[i].ch; c++)
ASSERT (uc_joining_type (c) == UC_JOINING_TYPE_U
diff --git a/tests/unictype/test-mirror.c b/tests/unictype/test-mirror.c
index 70b8fae8..de7dc2b0 100644
--- a/tests/unictype/test-mirror.c
+++ b/tests/unictype/test-mirror.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unictype/test-numeric.c b/tests/unictype/test-numeric.c
index 824db1a2..7b230dcd 100644
--- a/tests/unictype/test-numeric.c
+++ b/tests/unictype/test-numeric.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -33,10 +33,9 @@ main ()
{
unsigned int c;
uc_fraction_t value;
- size_t i;
c = 0;
- for (i = 0; i < SIZEOF (mapping); i++)
+ for (size_t i = 0; i < SIZEOF (mapping); i++)
{
for (; c < mapping[i].ch; c++)
{
diff --git a/tests/unictype/test-pr_byname.c b/tests/unictype/test-pr_byname.c
index fc0908c7..788889b9 100644
--- a/tests/unictype/test-pr_byname.c
+++ b/tests/unictype/test-pr_byname.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -27,9 +27,8 @@ main ()
{
{
uc_property_t pr = uc_property_byname ("composite");
- unsigned int c;
- for (c = 0; c < 0x110000; c++)
+ for (unsigned int c = 0; c < 0x110000; c++)
ASSERT (uc_is_property (c, pr) == uc_is_property_composite (c));
}
diff --git a/tests/unictype/test-pr_test.c b/tests/unictype/test-pr_test.c
index c8b52328..5a1f4820 100644
--- a/tests/unictype/test-pr_test.c
+++ b/tests/unictype/test-pr_test.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -26,9 +26,8 @@ int
main ()
{
uc_property_t pr = UC_PROPERTY_COMPOSITE;
- unsigned int c;
- for (c = 0; c < 0x110000; c++)
+ for (unsigned int c = 0; c < 0x110000; c++)
ASSERT (uc_is_property (c, pr) == uc_is_property_composite (c));
return test_exit_status;
diff --git a/tests/unictype/test-predicate-part1.h b/tests/unictype/test-predicate-part1.h
index caf2dc2f..207e465b 100644
--- a/tests/unictype/test-predicate-part1.h
+++ b/tests/unictype/test-predicate-part1.h
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unictype/test-predicate-part2.h b/tests/unictype/test-predicate-part2.h
index b4eef82e..83cf7e89 100644
--- a/tests/unictype/test-predicate-part2.h
+++ b/tests/unictype/test-predicate-part2.h
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -20,10 +20,9 @@ int
main ()
{
unsigned int c;
- size_t i;
c = 0;
- for (i = 0; i < SIZEOF (set); i++)
+ for (size_t i = 0; i < SIZEOF (set); i++)
{
for (; c < set[i].start; c++)
ASSERT (!PREDICATE (c));
diff --git a/tests/unictype/test-scripts.c b/tests/unictype/test-scripts.c
index 54699b31..86841c63 100644
--- a/tests/unictype/test-scripts.c
+++ b/tests/unictype/test-scripts.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -40,28 +40,23 @@ main ()
ASSERT (!uc_is_script (0x05DA, uc_script_byname ("Latin")));
ASSERT (uc_is_script (0x05DA, uc_script_byname ("Hebrew")));
- {
- unsigned int c;
-
- for (c = 0; c < 0x110000; c++)
- {
- const uc_script_t *script = uc_script (c);
- if (script != NULL)
- ASSERT (uc_is_script (c, script));
- }
- }
+ for (unsigned int c = 0; c < 0x110000; c++)
+ {
+ const uc_script_t *script = uc_script (c);
+ if (script != NULL)
+ ASSERT (uc_is_script (c, script));
+ }
/* Test the uc_all_scripts function. */
{
const uc_script_t *scripts;
size_t nscripts;
- size_t i;
bool found;
uc_all_scripts (&scripts, &nscripts);
found = false;
- for (i = 0; i < nscripts; i++)
+ for (size_t i = 0; i < nscripts; i++)
{
ASSERT (scripts[i].name != NULL);
if (strcmp (scripts[i].name, "Hebrew") == 0)
diff --git a/tests/unictype/test-sy_c_ident.c b/tests/unictype/test-sy_c_ident.c
index db42c4af..b23da71d 100644
--- a/tests/unictype/test-sy_c_ident.c
+++ b/tests/unictype/test-sy_c_ident.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unictype/test-sy_java_ident.c b/tests/unictype/test-sy_java_ident.c
index 0030ec2f..e3ea67bd 100644
--- a/tests/unictype/test-sy_java_ident.c
+++ b/tests/unictype/test-sy_java_ident.c
@@ -1,5 +1,5 @@
/* Test the Unicode character type functions.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unictype/test-unictype-h.c b/tests/unictype/test-unictype-h.c
index b1f07c99..53032ebf 100644
--- a/tests/unictype/test-unictype-h.c
+++ b/tests/unictype/test-unictype-h.c
@@ -1,5 +1,5 @@
/* Test of <unictype.h>.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-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
diff --git a/tests/unigbrk/test-u16-grapheme-breaks.c b/tests/unigbrk/test-u16-grapheme-breaks.c
index f4af9984..634ec4dc 100644
--- a/tests/unigbrk/test-u16-grapheme-breaks.c
+++ b/tests/unigbrk/test-u16-grapheme-breaks.c
@@ -1,5 +1,5 @@
/* Grapheme cluster breaks test.
- 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
@@ -35,14 +35,13 @@ test_u16_grapheme_breaks (const char *expected, ...)
uint16_t s[16];
va_list args;
char breaks[16];
- size_t i;
ASSERT (n <= 16);
memset (breaks, 0xcc, n);
va_start (args, expected);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
{
int unit = va_arg (args, int);
ASSERT (unit >= 0);
@@ -52,25 +51,23 @@ test_u16_grapheme_breaks (const char *expected, ...)
va_end (args);
u16_grapheme_breaks (s, n, breaks);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
if (breaks[i] != (expected[i] == '#'))
{
- size_t j;
-
fprintf (stderr, "wrong grapheme breaks:\n");
fprintf (stderr, " input:");
- for (j = 0; j < n; j++)
+ for (size_t j = 0; j < n; j++)
fprintf (stderr, " %04X", s[j]);
putc ('\n', stderr);
fprintf (stderr, "expected:");
- for (j = 0; j < n; j++)
+ for (size_t j = 0; j < n; j++)
fprintf (stderr, " %d", expected[j] == '#');
putc ('\n', stderr);
fprintf (stderr, " actual:");
- for (j = 0; j < n; j++)
+ for (size_t j = 0; j < n; j++)
fprintf (stderr, " %d", breaks[j]);
putc ('\n', stderr);
diff --git a/tests/unigbrk/test-u16-grapheme-next.c b/tests/unigbrk/test-u16-grapheme-next.c
index eb68b7bd..542b4ba9 100644
--- a/tests/unigbrk/test-u16-grapheme-next.c
+++ b/tests/unigbrk/test-u16-grapheme-next.c
@@ -1,5 +1,5 @@
/* Next grapheme cluster length test.
- 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
@@ -52,14 +52,12 @@ test_u16_grapheme_next (size_t len, ...)
next = u16_grapheme_next (s, s + n);
if (next != s + len)
{
- size_t i;
-
if (next == NULL)
fputs ("u16_grapheme_next returned NULL", stderr);
else
fprintf (stderr, "u16_grapheme_next skipped %tu units", next - s);
fprintf (stderr, ", expected %zu:\n", len);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
fprintf (stderr, " %04x", s[i]);
putc ('\n', stderr);
fflush (stderr);
diff --git a/tests/unigbrk/test-u16-grapheme-prev.c b/tests/unigbrk/test-u16-grapheme-prev.c
index 8c17bdac..a0f4f1ae 100644
--- a/tests/unigbrk/test-u16-grapheme-prev.c
+++ b/tests/unigbrk/test-u16-grapheme-prev.c
@@ -1,5 +1,5 @@
/* Previous grapheme cluster test.
- 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
@@ -54,14 +54,12 @@ test_u16_grapheme_prev (size_t len, ...)
prev = u16_grapheme_prev (end, s);
if (prev != end - len)
{
- size_t i;
-
if (prev == NULL)
fputs ("u16_grapheme_prev returned NULL", stderr);
else
fprintf (stderr, "u16_grapheme_prev skipped %tu units", end - prev);
fprintf (stderr, ", expected %zu:\n", len);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
fprintf (stderr, " %04x", s[i]);
putc ('\n', stderr);
fflush (stderr);
diff --git a/tests/unigbrk/test-u32-grapheme-breaks.c b/tests/unigbrk/test-u32-grapheme-breaks.c
index 9f4267eb..7094da05 100644
--- a/tests/unigbrk/test-u32-grapheme-breaks.c
+++ b/tests/unigbrk/test-u32-grapheme-breaks.c
@@ -1,5 +1,5 @@
/* Grapheme cluster breaks test.
- 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
@@ -35,14 +35,13 @@ test_u32_grapheme_breaks (const char *expected, ...)
uint32_t s[16];
va_list args;
char breaks[16];
- size_t i;
ASSERT (n <= 16);
memset (breaks, 0xcc, n);
va_start (args, expected);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
{
int unit = va_arg (args, int);
ASSERT (unit >= 0);
@@ -52,25 +51,23 @@ test_u32_grapheme_breaks (const char *expected, ...)
va_end (args);
u32_grapheme_breaks (s, n, breaks);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
if (breaks[i] != (expected[i] == '#'))
{
- size_t j;
-
fprintf (stderr, "wrong grapheme breaks:\n");
fprintf (stderr, " input:");
- for (j = 0; j < n; j++)
+ for (size_t j = 0; j < n; j++)
fprintf (stderr, " %04X", s[j]);
putc ('\n', stderr);
fprintf (stderr, "expected:");
- for (j = 0; j < n; j++)
+ for (size_t j = 0; j < n; j++)
fprintf (stderr, " %d", expected[j] == '#');
putc ('\n', stderr);
fprintf (stderr, " actual:");
- for (j = 0; j < n; j++)
+ for (size_t j = 0; j < n; j++)
fprintf (stderr, " %d", breaks[j]);
putc ('\n', stderr);
diff --git a/tests/unigbrk/test-u32-grapheme-next.c b/tests/unigbrk/test-u32-grapheme-next.c
index eee9bafd..c5ba5a54 100644
--- a/tests/unigbrk/test-u32-grapheme-next.c
+++ b/tests/unigbrk/test-u32-grapheme-next.c
@@ -1,5 +1,5 @@
/* Next grapheme cluster length test.
- 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
@@ -52,14 +52,12 @@ test_u32_grapheme_next (size_t len, ...)
next = u32_grapheme_next (s, s + n);
if (next != s + len)
{
- size_t i;
-
if (next == NULL)
fputs ("u32_grapheme_next returned NULL", stderr);
else
fprintf (stderr, "u32_grapheme_next skipped %tu units", next - s);
fprintf (stderr, ", expected %zu:\n", len);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
fprintf (stderr, " %04x", s[i]);
putc ('\n', stderr);
fflush (stderr);
diff --git a/tests/unigbrk/test-u32-grapheme-prev.c b/tests/unigbrk/test-u32-grapheme-prev.c
index ab50a630..9543f939 100644
--- a/tests/unigbrk/test-u32-grapheme-prev.c
+++ b/tests/unigbrk/test-u32-grapheme-prev.c
@@ -1,5 +1,5 @@
/* Previous grapheme cluster test.
- 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
@@ -54,14 +54,12 @@ test_u32_grapheme_prev (size_t len, ...)
prev = u32_grapheme_prev (end, s);
if (prev != end - len)
{
- size_t i;
-
if (prev == NULL)
fputs ("u32_grapheme_prev returned NULL", stderr);
else
fprintf (stderr, "u32_grapheme_prev skipped %tu units", end - prev);
fprintf (stderr, ", expected %zu:\n", len);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
fprintf (stderr, " %04x", s[i]);
putc ('\n', stderr);
fflush (stderr);
diff --git a/tests/unigbrk/test-u8-grapheme-breaks.c b/tests/unigbrk/test-u8-grapheme-breaks.c
index 3549186c..9966a9e7 100644
--- a/tests/unigbrk/test-u8-grapheme-breaks.c
+++ b/tests/unigbrk/test-u8-grapheme-breaks.c
@@ -1,5 +1,5 @@
/* Grapheme cluster breaks test.
- 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
@@ -33,7 +33,6 @@ test_u8_grapheme_breaks (const char *input, const char *expected)
const uint8_t *s = (const uint8_t *) input;
size_t n = strlen (expected);
char *breaks;
- size_t i;
breaks = malloc (n);
if (!breaks)
@@ -41,25 +40,23 @@ test_u8_grapheme_breaks (const char *input, const char *expected)
memset (breaks, 0xcc, n);
u8_grapheme_breaks (s, n, breaks);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
if (breaks[i] != (expected[i] == '#'))
{
- size_t j;
-
fprintf (stderr, "wrong grapheme breaks:\n");
fprintf (stderr, " input:");
- for (j = 0; j < n; j++)
+ for (size_t j = 0; j < n; j++)
fprintf (stderr, " %02X", s[j]);
putc ('\n', stderr);
fprintf (stderr, "expected:");
- for (j = 0; j < n; j++)
+ for (size_t j = 0; j < n; j++)
fprintf (stderr, " %d", expected[j] == '#');
putc ('\n', stderr);
fprintf (stderr, " actual:");
- for (j = 0; j < n; j++)
+ for (size_t j = 0; j < n; j++)
fprintf (stderr, " %d", breaks[j]);
putc ('\n', stderr);
diff --git a/tests/unigbrk/test-u8-grapheme-next.c b/tests/unigbrk/test-u8-grapheme-next.c
index 8929814f..da0fc807 100644
--- a/tests/unigbrk/test-u8-grapheme-next.c
+++ b/tests/unigbrk/test-u8-grapheme-next.c
@@ -1,5 +1,5 @@
/* Next grapheme cluster length test.
- 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
@@ -33,14 +33,12 @@ test_u8_grapheme_next (const char *input, size_t n, size_t len)
const uint8_t *next = u8_grapheme_next (s, s + n);
if (next != s + len)
{
- size_t i;
-
if (next == NULL)
fputs ("u8_grapheme_next returned NULL", stderr);
else
fprintf (stderr, "u8_grapheme_next skipped %tu bytes", next - s);
fprintf (stderr, ", expected %zu:\n", len);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
fprintf (stderr, " %02x", s[i]);
putc ('\n', stderr);
fflush (stderr);
diff --git a/tests/unigbrk/test-u8-grapheme-prev.c b/tests/unigbrk/test-u8-grapheme-prev.c
index 9d635100..0612836d 100644
--- a/tests/unigbrk/test-u8-grapheme-prev.c
+++ b/tests/unigbrk/test-u8-grapheme-prev.c
@@ -1,5 +1,5 @@
/* Previous grapheme cluster test.
- 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
@@ -34,14 +34,12 @@ test_u8_grapheme_prev (const char *input, size_t n, size_t len)
const uint8_t *prev = u8_grapheme_prev (end, s);
if (prev != end - len)
{
- size_t i;
-
if (prev == NULL)
fputs ("u8_grapheme_prev returned NULL", stderr);
else
fprintf (stderr, "u8_grapheme_prev skipped %tu bytes", end - prev);
fprintf (stderr, ", expected %zu:\n", len);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
fprintf (stderr, " %02x", s[i]);
putc ('\n', stderr);
fflush (stderr);
diff --git a/tests/unigbrk/test-uc-gbrk-prop.c b/tests/unigbrk/test-uc-gbrk-prop.c
index 23dc7c89..18d982b9 100644
--- a/tests/unigbrk/test-uc-gbrk-prop.c
+++ b/tests/unigbrk/test-uc-gbrk-prop.c
@@ -1,5 +1,5 @@
/* Test the Unicode grapheme break property function.
- 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 General Public License as published by
@@ -63,11 +63,10 @@ graphemebreakproperty_to_string (int gbp)
int
main (void)
{
- const struct uc_gbrk_prop_range *r;
ucs4_t uc;
uc = 0;
- for (r = set; r < set + SIZEOF (set); r++)
+ for (const struct uc_gbrk_prop_range *r = set; r < set + SIZEOF (set); r++)
{
for (; uc < r->end; uc++)
{
diff --git a/tests/unigbrk/test-uc-grapheme-breaks.c b/tests/unigbrk/test-uc-grapheme-breaks.c
index 860751c4..3de349e7 100644
--- a/tests/unigbrk/test-uc-grapheme-breaks.c
+++ b/tests/unigbrk/test-uc-grapheme-breaks.c
@@ -1,5 +1,5 @@
/* Grapheme cluster break function test.
- 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
@@ -61,30 +61,27 @@ test_uc_grapheme_breaks (const char *expected, ucs4_t *s, size_t n,
const char *filename, int lineno)
{
char breaks[16];
- size_t i;
ASSERT (n <= 16);
uc_grapheme_breaks (s, n, breaks);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
if (breaks[i] != (expected[i] == '#'))
{
- size_t j;
-
fprintf (stderr, "wrong grapheme breaks:\n");
fprintf (stderr, " input:");
- for (j = 0; j < n; j++)
+ for (size_t j = 0; j < n; j++)
fprintf (stderr, " %04X", s[j]);
putc ('\n', stderr);
fprintf (stderr, "expected:");
- for (j = 0; j < n; j++)
+ for (size_t j = 0; j < n; j++)
fprintf (stderr, " %d", expected[j] == '#');
putc ('\n', stderr);
fprintf (stderr, " actual:");
- for (j = 0; j < n; j++)
+ for (size_t j = 0; j < n; j++)
fprintf (stderr, " %d", breaks[j]);
putc ('\n', stderr);
diff --git a/tests/unigbrk/test-uc-is-grapheme-break.c b/tests/unigbrk/test-uc-is-grapheme-break.c
index 04614891..61b3a2bd 100644
--- a/tests/unigbrk/test-uc-is-grapheme-break.c
+++ b/tests/unigbrk/test-uc-is-grapheme-break.c
@@ -1,5 +1,5 @@
/* Grapheme cluster break function test.
- 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/tests/unigbrk/test-ulc-grapheme-breaks.c b/tests/unigbrk/test-ulc-grapheme-breaks.c
index b66222e8..acd0e757 100644
--- a/tests/unigbrk/test-ulc-grapheme-breaks.c
+++ b/tests/unigbrk/test-ulc-grapheme-breaks.c
@@ -1,5 +1,5 @@
/* Grapheme cluster breaks test.
- 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 General Public License as published by
@@ -52,28 +52,25 @@ main ()
static const char s[] = "ZYX\352\353W\360\361V\362";
enum { LENGTH = sizeof s - 1 };
char p[LENGTH];
- size_t i;
ulc_grapheme_breaks (s, LENGTH, p);
- for (i = 0; i < LENGTH; i++)
+ for (size_t i = 0; i < LENGTH; i++)
if (p[i] != is_8859_6_break (s[i]))
{
- size_t j;
-
fprintf (stderr, "wrong grapheme breaks:\n");
fprintf (stderr, " input:");
- for (j = 0; j < LENGTH; j++)
+ for (size_t j = 0; j < LENGTH; j++)
fprintf (stderr, " %02X", (unsigned char) s[j]);
putc ('\n', stderr);
fprintf (stderr, "expected:");
- for (j = 0; j < LENGTH; j++)
+ for (size_t j = 0; j < LENGTH; j++)
fprintf (stderr, " %d", is_8859_6_break (s[j]));
putc ('\n', stderr);
fprintf (stderr, " actual:");
- for (j = 0; j < LENGTH; j++)
+ for (size_t j = 0; j < LENGTH; j++)
fprintf (stderr, " %d", p[j]);
putc ('\n', stderr);
diff --git a/tests/unigbrk/test-unigbrk-h.c b/tests/unigbrk/test-unigbrk-h.c
index 4058f252..b7d3032d 100644
--- a/tests/unigbrk/test-unigbrk-h.c
+++ b/tests/unigbrk/test-unigbrk-h.c
@@ -1,5 +1,5 @@
/* Test of <unigbrk.h>.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-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
diff --git a/tests/unilbrk/test-u16-possible-linebreaks.c b/tests/unilbrk/test-u16-possible-linebreaks.c
index c66a7331..93448045 100644
--- a/tests/unilbrk/test-u16-possible-linebreaks.c
+++ b/tests/unilbrk/test-u16-possible-linebreaks.c
@@ -1,5 +1,5 @@
/* Test of line breaking of UTF-16 strings.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -44,10 +44,9 @@ test_function (void (*my_u16_possible_linebreaks) (const uint16_t *, size_t, con
{
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u16_possible_linebreaks (input, SIZEOF (input), "GB18030", p);
- for (i = 0; i < 61; i++)
+ for (size_t i = 0; i < 61; i++)
{
ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
i == 5
@@ -63,10 +62,9 @@ test_function (void (*my_u16_possible_linebreaks) (const uint16_t *, size_t, con
{
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u16_possible_linebreaks (input, SIZEOF (input), "GB2312", p);
- for (i = 0; i < 61; i++)
+ for (size_t i = 0; i < 61; i++)
{
ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
i == 5
@@ -86,10 +84,9 @@ test_function (void (*my_u16_possible_linebreaks) (const uint16_t *, size_t, con
static const uint16_t input[8] =
{ 'a', '\n', 'b', '\r', 'c', '\r', '\n', 'd' };
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u16_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 8; i++)
+ for (size_t i = 0; i < 8; i++)
{
ASSERT (p[i] == (i == 1 || i == 3 || i == 6 ? UC_BREAK_MANDATORY :
i == 5 ? (version < 2 ? UC_BREAK_MANDATORY : UC_BREAK_CR_BEFORE_LF) :
@@ -103,10 +100,9 @@ test_function (void (*my_u16_possible_linebreaks) (const uint16_t *, size_t, con
{
static const uint16_t input[4] = { 'x', 0x200B, ' ', 'y' };
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u16_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 4; i++)
+ for (size_t i = 0; i < 4; i++)
{
ASSERT (p[i] == (i == 3 ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED));
}
@@ -121,10 +117,9 @@ test_function (void (*my_u16_possible_linebreaks) (const uint16_t *, size_t, con
'e', 'n', 'c', 'e', '.', '<', '/', 'P', '>'
};
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u16_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 21; i++)
+ for (size_t i = 0; i < 21; i++)
{
ASSERT (p[i] == (i == 8 || i == 17 || i == 19 ? UC_BREAK_POSSIBLE :
UC_BREAK_PROHIBITED));
@@ -141,10 +136,9 @@ test_function (void (*my_u16_possible_linebreaks) (const uint16_t *, size_t, con
0x0300
};
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u16_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
{
ASSERT (p[i] == (i == 14 ? UC_BREAK_MANDATORY :
i == 6 || i == 9 || i == 11 ? UC_BREAK_POSSIBLE :
@@ -165,10 +159,9 @@ test_function (void (*my_u16_possible_linebreaks) (const uint16_t *, size_t, con
0x261D, 0x200D, 0xD83C, 0xDFFF, '\n',
};
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u16_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 39; i++)
+ for (size_t i = 0; i < 39; i++)
{
ASSERT (p[i] == (i == 8 || i == 20
|| i == 24 || i == 29
@@ -187,10 +180,9 @@ test_function (void (*my_u16_possible_linebreaks) (const uint16_t *, size_t, con
static const uint16_t input[8] =
{ 0xD83C, 0xDDE9, 0xD83C, 0xDDEA, 0xD83C, 0xDDEB, 0xD83C, 0xDDF7 };
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u16_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 8; i++)
+ for (size_t i = 0; i < 8; i++)
{
ASSERT (p[i] == (i == 4 ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED));
}
@@ -203,10 +195,9 @@ test_function (void (*my_u16_possible_linebreaks) (const uint16_t *, size_t, con
static const uint16_t input[10] = /* "ab-אב-αβ-ω" */
{ 'a', 'b', '-', 0x05D0, 0x05D1, '-', 0x03B1, 0x03B2, '-', 0x03C9 };
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u16_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 10; i++)
+ for (size_t i = 0; i < 10; i++)
{
ASSERT (p[i] == (i == 3 || i == 9 ? UC_BREAK_POSSIBLE :
UC_BREAK_PROHIBITED));
@@ -222,10 +213,9 @@ test_function (void (*my_u16_possible_linebreaks) (const uint16_t *, size_t, con
'G', 0x300C, 0x30E6, 0x30CB, 0x30B3, 0x30FC, 0x30C9, 0x300D
};
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u16_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 17; i++)
+ for (size_t i = 0; i < 17; i++)
{
ASSERT (p[i] == (i == 1 || i == 2 || i == 3 || i == 4 || i == 5
|| i == 6 || i == 7 || i == 8 || i == 9
@@ -240,10 +230,9 @@ test_function (void (*my_u16_possible_linebreaks) (const uint16_t *, size_t, con
{
static const uint16_t input[4] = { 0xD83F, 0xDFFC, 0xD83C, 0xDFFF };
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u16_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 4; i++)
+ for (size_t i = 0; i < 4; i++)
{
ASSERT (p[i] == UC_BREAK_PROHIBITED);
}
diff --git a/tests/unilbrk/test-u16-width-linebreaks.c b/tests/unilbrk/test-u16-width-linebreaks.c
index e2a9b6bc..ba3bf9ea 100644
--- a/tests/unilbrk/test-u16-width-linebreaks.c
+++ b/tests/unilbrk/test-u16-width-linebreaks.c
@@ -1,5 +1,5 @@
/* Test of line breaking of UTF-16 strings.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -44,10 +44,9 @@ test_function (int (*my_u16_width_linebreaks) (const uint16_t *, size_t, int, in
{
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u16_width_linebreaks (input, SIZEOF (input), 25, 0, 0, NULL, "GB18030", p);
- for (i = 0; i < 61; i++)
+ for (size_t i = 0; i < 61; i++)
{
ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
i == 25 || i == 45 ? UC_BREAK_POSSIBLE :
@@ -58,10 +57,9 @@ test_function (int (*my_u16_width_linebreaks) (const uint16_t *, size_t, int, in
{
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u16_width_linebreaks (input, SIZEOF (input), 25, 0, 0, NULL, "GB2312", p);
- for (i = 0; i < 61; i++)
+ for (size_t i = 0; i < 61; i++)
{
ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
i == 11 || i == 25 || i == 45 ? UC_BREAK_POSSIBLE :
diff --git a/tests/unilbrk/test-u32-possible-linebreaks.c b/tests/unilbrk/test-u32-possible-linebreaks.c
index f70d07f9..8bec8e6e 100644
--- a/tests/unilbrk/test-u32-possible-linebreaks.c
+++ b/tests/unilbrk/test-u32-possible-linebreaks.c
@@ -1,5 +1,5 @@
/* Test of line breaking of UTF-32 strings.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -44,10 +44,9 @@ test_function (void (*my_u32_possible_linebreaks) (const uint32_t *, size_t, con
{
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u32_possible_linebreaks (input, SIZEOF (input), "GB18030", p);
- for (i = 0; i < 61; i++)
+ for (size_t i = 0; i < 61; i++)
{
ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
i == 5
@@ -63,10 +62,9 @@ test_function (void (*my_u32_possible_linebreaks) (const uint32_t *, size_t, con
{
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u32_possible_linebreaks (input, SIZEOF (input), "GB2312", p);
- for (i = 0; i < 61; i++)
+ for (size_t i = 0; i < 61; i++)
{
ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
i == 5
@@ -86,10 +84,9 @@ test_function (void (*my_u32_possible_linebreaks) (const uint32_t *, size_t, con
static const uint32_t input[8] =
{ 'a', '\n', 'b', '\r', 'c', '\r', '\n', 'd' };
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u32_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 8; i++)
+ for (size_t i = 0; i < 8; i++)
{
ASSERT (p[i] == (i == 1 || i == 3 || i == 6 ? UC_BREAK_MANDATORY :
i == 5 ? (version < 2 ? UC_BREAK_MANDATORY : UC_BREAK_CR_BEFORE_LF) :
@@ -103,10 +100,9 @@ test_function (void (*my_u32_possible_linebreaks) (const uint32_t *, size_t, con
{
static const uint32_t input[4] = { 'x', 0x200B, ' ', 'y' };
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u32_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 4; i++)
+ for (size_t i = 0; i < 4; i++)
{
ASSERT (p[i] == (i == 3 ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED));
}
@@ -121,10 +117,9 @@ test_function (void (*my_u32_possible_linebreaks) (const uint32_t *, size_t, con
'e', 'n', 'c', 'e', '.', '<', '/', 'P', '>'
};
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u32_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 21; i++)
+ for (size_t i = 0; i < 21; i++)
{
ASSERT (p[i] == (i == 8 || i == 17 || i == 19 ? UC_BREAK_POSSIBLE :
UC_BREAK_PROHIBITED));
@@ -141,10 +136,9 @@ test_function (void (*my_u32_possible_linebreaks) (const uint32_t *, size_t, con
0x0300
};
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u32_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
{
ASSERT (p[i] == (i == 14 ? UC_BREAK_MANDATORY :
i == 6 || i == 9 || i == 11 ? UC_BREAK_POSSIBLE :
@@ -165,10 +159,9 @@ test_function (void (*my_u32_possible_linebreaks) (const uint32_t *, size_t, con
0x261D, 0x200D, 0x1F3FF, '\n',
};
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u32_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 37; i++)
+ for (size_t i = 0; i < 37; i++)
{
ASSERT (p[i] == (i == 8 || i == 20
|| i == 24 || i == 29
@@ -187,10 +180,9 @@ test_function (void (*my_u32_possible_linebreaks) (const uint32_t *, size_t, con
static const uint32_t input[4] =
{ 0x1F1E9, 0x1F1EA, 0x1F1EB, 0x1F1F7 };
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u32_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 4; i++)
+ for (size_t i = 0; i < 4; i++)
{
ASSERT (p[i] == (i == 2 ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED));
}
@@ -203,10 +195,9 @@ test_function (void (*my_u32_possible_linebreaks) (const uint32_t *, size_t, con
static const uint32_t input[10] = /* "ab-אב-αβ-ω" */
{ 'a', 'b', '-', 0x05D0, 0x05D1, '-', 0x03B1, 0x03B2, '-', 0x03C9 };
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u32_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 10; i++)
+ for (size_t i = 0; i < 10; i++)
{
ASSERT (p[i] == (i == 3 || i == 9 ? UC_BREAK_POSSIBLE :
UC_BREAK_PROHIBITED));
@@ -222,10 +213,9 @@ test_function (void (*my_u32_possible_linebreaks) (const uint32_t *, size_t, con
'G', 0x300C, 0x30E6, 0x30CB, 0x30B3, 0x30FC, 0x30C9, 0x300D
};
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u32_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 17; i++)
+ for (size_t i = 0; i < 17; i++)
{
ASSERT (p[i] == (i == 1 || i == 2 || i == 3 || i == 4 || i == 5
|| i == 6 || i == 7 || i == 8 || i == 9
@@ -240,10 +230,9 @@ test_function (void (*my_u32_possible_linebreaks) (const uint32_t *, size_t, con
{
static const uint32_t input[2] = { 0x1FFFC, 0x1F3FF };
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u32_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 2; i++)
+ for (size_t i = 0; i < 2; i++)
{
ASSERT (p[i] == UC_BREAK_PROHIBITED);
}
diff --git a/tests/unilbrk/test-u32-width-linebreaks.c b/tests/unilbrk/test-u32-width-linebreaks.c
index 68ffbb2f..09e7652a 100644
--- a/tests/unilbrk/test-u32-width-linebreaks.c
+++ b/tests/unilbrk/test-u32-width-linebreaks.c
@@ -1,5 +1,5 @@
/* Test of line breaking of UTF-32 strings.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -44,10 +44,9 @@ test_function (int (*my_u32_width_linebreaks) (const uint32_t *, size_t, int, in
{
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u32_width_linebreaks (input, SIZEOF (input), 25, 0, 0, NULL, "GB18030", p);
- for (i = 0; i < 61; i++)
+ for (size_t i = 0; i < 61; i++)
{
ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
i == 25 || i == 45 ? UC_BREAK_POSSIBLE :
@@ -58,10 +57,9 @@ test_function (int (*my_u32_width_linebreaks) (const uint32_t *, size_t, int, in
{
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u32_width_linebreaks (input, SIZEOF (input), 25, 0, 0, NULL, "GB2312", p);
- for (i = 0; i < 61; i++)
+ for (size_t i = 0; i < 61; i++)
{
ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
i == 11 || i == 25 || i == 45 ? UC_BREAK_POSSIBLE :
diff --git a/tests/unilbrk/test-u8-possible-linebreaks.c b/tests/unilbrk/test-u8-possible-linebreaks.c
index 88a0d30c..4616f00c 100644
--- a/tests/unilbrk/test-u8-possible-linebreaks.c
+++ b/tests/unilbrk/test-u8-possible-linebreaks.c
@@ -1,5 +1,5 @@
/* Test of line breaking of UTF-8 strings.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -38,10 +38,9 @@ test_function (void (*my_u8_possible_linebreaks) (const uint8_t *, size_t, const
{
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u8_possible_linebreaks (input, SIZEOF (input), "GB18030", p);
- for (i = 0; i < 91; i++)
+ for (size_t i = 0; i < 91; i++)
{
ASSERT (p[i] == (i == 90 ? UC_BREAK_MANDATORY :
i == 7
@@ -57,10 +56,9 @@ test_function (void (*my_u8_possible_linebreaks) (const uint8_t *, size_t, const
{
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u8_possible_linebreaks (input, SIZEOF (input), "GB2312", p);
- for (i = 0; i < 91; i++)
+ for (size_t i = 0; i < 91; i++)
{
ASSERT (p[i] == (i == 90 ? UC_BREAK_MANDATORY :
i == 7
@@ -79,10 +77,9 @@ test_function (void (*my_u8_possible_linebreaks) (const uint8_t *, size_t, const
{
static const uint8_t input[8] _GL_ATTRIBUTE_NONSTRING = "a\nb\rc\r\nd";
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u8_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 8; i++)
+ for (size_t i = 0; i < 8; i++)
{
ASSERT (p[i] == (i == 1 || i == 3 || i == 6 ? UC_BREAK_MANDATORY :
i == 5 ? (version < 2 ? UC_BREAK_MANDATORY : UC_BREAK_CR_BEFORE_LF) :
@@ -96,10 +93,9 @@ test_function (void (*my_u8_possible_linebreaks) (const uint8_t *, size_t, const
{
static const uint8_t input[6] _GL_ATTRIBUTE_NONSTRING = "x\342\200\213 y";
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u8_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 6; i++)
+ for (size_t i = 0; i < 6; i++)
{
ASSERT (p[i] == (i == 5 ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED));
}
@@ -110,10 +106,9 @@ test_function (void (*my_u8_possible_linebreaks) (const uint8_t *, size_t, const
{
static const uint8_t input[21] _GL_ATTRIBUTE_NONSTRING = "<P>Some sentence.</P>";
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u8_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 21; i++)
+ for (size_t i = 0; i < 21; i++)
{
ASSERT (p[i] == (i == 8 || i == 17 || i == 19 ? UC_BREAK_POSSIBLE :
UC_BREAK_PROHIBITED));
@@ -127,10 +122,9 @@ test_function (void (*my_u8_possible_linebreaks) (const uint8_t *, size_t, const
"a\314\200\314\201e\314\200 \314\201o \314\200 o\302\240\314\200\n"
"\314\200";
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u8_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 24; i++)
+ for (size_t i = 0; i < 24; i++)
{
ASSERT (p[i] == (i == 21 ? UC_BREAK_MANDATORY :
i == 9 || i == 13 || i == 16 ? UC_BREAK_POSSIBLE :
@@ -149,10 +143,9 @@ test_function (void (*my_u8_possible_linebreaks) (const uint8_t *, size_t, const
"\342\230\235\360\237\217\277\n" /* "☝🏿" */
"\342\230\235\342\200\215\360\237\217\277\n";
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u8_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 101; i++)
+ for (size_t i = 0; i < 101; i++)
{
ASSERT (p[i] == (i == 24 || i == 58
|| i == 68 || i == 81
@@ -171,10 +164,9 @@ test_function (void (*my_u8_possible_linebreaks) (const uint8_t *, size_t, const
static const uint8_t input[16] _GL_ATTRIBUTE_NONSTRING =
"\360\237\207\251\360\237\207\252\360\237\207\253\360\237\207\267";
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u8_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 16; i++)
+ for (size_t i = 0; i < 16; i++)
{
ASSERT (p[i] == (i == 8 ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED));
}
@@ -187,10 +179,9 @@ test_function (void (*my_u8_possible_linebreaks) (const uint8_t *, size_t, const
static const uint8_t input[15] _GL_ATTRIBUTE_NONSTRING = /* "ab-אב-αβ-ω" */
"ab-\327\220\327\221-\316\261\316\262-\317\211";
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u8_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 15; i++)
+ for (size_t i = 0; i < 15; i++)
{
ASSERT (p[i] == (i == 3 || i == 13 ? UC_BREAK_POSSIBLE :
UC_BREAK_PROHIBITED));
@@ -206,10 +197,9 @@ test_function (void (*my_u8_possible_linebreaks) (const uint8_t *, size_t, const
"\345\255\227\346\213\241\345\274\265G\343\200\214\343\203\246"
"\343\203\213\343\202\263\343\203\274\343\203\211\343\200\215";
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u8_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 49; i++)
+ for (size_t i = 0; i < 49; i++)
{
ASSERT (p[i] == (i == 3 || i == 6 || i == 9 || i == 12 || i == 15
|| i == 18 || i == 21 || i == 24 || i == 27
@@ -225,10 +215,9 @@ test_function (void (*my_u8_possible_linebreaks) (const uint8_t *, size_t, const
static const uint8_t input[8] _GL_ATTRIBUTE_NONSTRING =
"\360\237\277\274\360\237\217\277";
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u8_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 8; i++)
+ for (size_t i = 0; i < 8; i++)
{
ASSERT (p[i] == UC_BREAK_PROHIBITED);
}
diff --git a/tests/unilbrk/test-u8-width-linebreaks.c b/tests/unilbrk/test-u8-width-linebreaks.c
index a9c9378b..60e3e383 100644
--- a/tests/unilbrk/test-u8-width-linebreaks.c
+++ b/tests/unilbrk/test-u8-width-linebreaks.c
@@ -1,5 +1,5 @@
/* Test of line breaking of UTF-8 strings.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -38,10 +38,9 @@ test_function (int (*my_u8_width_linebreaks) (const uint8_t *, size_t, int, int,
{
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u8_width_linebreaks (input, SIZEOF (input), 25, 0, 0, NULL, "GB18030", p);
- for (i = 0; i < 91; i++)
+ for (size_t i = 0; i < 91; i++)
{
ASSERT (p[i] == (i == 90 ? UC_BREAK_MANDATORY :
i == 39 || i == 61 ? UC_BREAK_POSSIBLE :
@@ -52,10 +51,9 @@ test_function (int (*my_u8_width_linebreaks) (const uint8_t *, size_t, int, int,
{
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_u8_width_linebreaks (input, SIZEOF (input), 25, 0, 0, NULL, "GB2312", p);
- for (i = 0; i < 91; i++)
+ for (size_t i = 0; i < 91; i++)
{
ASSERT (p[i] == (i == 90 ? UC_BREAK_MANDATORY :
i == 13 || i == 39 || i == 61 ? UC_BREAK_POSSIBLE :
diff --git a/tests/unilbrk/test-uc-possible-linebreaks.c b/tests/unilbrk/test-uc-possible-linebreaks.c
index a54699b6..bf268286 100644
--- a/tests/unilbrk/test-uc-possible-linebreaks.c
+++ b/tests/unilbrk/test-uc-possible-linebreaks.c
@@ -1,5 +1,5 @@
/* Line break function test, using test data from UCD.
- 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 General Public License as published
@@ -118,71 +118,66 @@ main (int argc, char *argv[])
u32_possible_linebreaks (input, i - 1, "UTF-8", breaks);
int matches = 1;
- {
- int j;
- for (j = 0; j < i - 1; j++)
- {
- /* The character U+FFFC has line break property CB, which according
- to rule (LB1) is resolved "into other line breaking classes
- depending on criteria outside the scope of this algorithm".
- Thus it makes no sense to check the breaks[] entry before or
- after such a character. */
- if (!(input[j] == 0xFFFC
- || (j > 0 && input[j - 1] == 0xFFFC)
- /* Also consider intervening characters with property LBP_CM
- or LBP_ZWJ, per (LB9). */
- || (j > 1 && (input[j - 1] == 0x0308 || input[j - 1] == 0x200D)
- && input[j - 2] == 0xFFFC)))
- /* A regional indicator with a combining character is nonsense,
- because regional indicators are supposed to come in pairs. */
- if (!(j >= 2 && (input[0] >= 0x1F1E6 && input[0] <= 0x1F1FF)
- && input[1] == 0x0308))
- /* It is nonsense to treat U+1F8FF differently than U+1F02C.
- Both are unassigned Extended_Pictographic characters and
- should therefore be treated like LBP_EB (or LBP_ID, if you
- want), not like LBP_AL. See rule (LB30b). */
- if (!(input[j] == 0x1F8FF
- || (j > 0 && input[j - 1] == 0x1F8FF)
- /* Also consider intervening characters with property LBP_CM
- or LBP_ZWJ, per (LB9). */
- || (j > 1 && (input[j - 1] == 0x0308 || input[j - 1] == 0x200D)
- && input[j - 2] == 0x1F8FF)))
- /* There is a disagreement regarding whether to allow a line break
- after a U+0020 SPACE character at the start of the text.
- We consider that the start of the text is equivalent to the
- state after a newline was seen; hence the loop starts with
- property LBP_BK. By the rules (LB4,LB5,LB6) an extra line
- break after a mandatory line break is undesired, even with
- intervening spaces (because these rules come before (LB18)).
- Whereas the LineBreakTest.txt file allows a line break after
- the space.
- Similarly when the first two characters at the start of the
- text have property LBP_CM and LBP_ZWJ, respectively. (LB9). */
- if (!(((j == 1 || (j > 1 && ((input[j - 2] >= 0x000A && input[j - 2] <= 0x000D) || input[j - 2] == 0x0085)))
- && input[j - 1] == 0x0020)
- || ((j == 2 || (j > 2 && ((input[j - 3] >= 0x000A && input[j - 3] <= 0x000D) || input[j - 3] == 0x0085)))
- && ((input[j - 2] == 0x0020 && input[j - 1] == 0x0020)
- || (input[j - 2] == 0x0308 && input[j - 1] == 0x200D)
- || (input[j - 2] == 0x200D && input[j - 1] == 0x0308)))))
- matches &= (!(breaks[j] == UC_BREAK_PROHIBITED
- || breaks[j] == UC_BREAK_MANDATORY
- || breaks[j] == UC_BREAK_CR_BEFORE_LF)
- || (j > 0 && breaks[j - 1] == UC_BREAK_MANDATORY))
- == breaks_expected[j];
- }
- }
+ for (int j = 0; j < i - 1; j++)
+ {
+ /* The character U+FFFC has line break property CB, which according
+ to rule (LB1) is resolved "into other line breaking classes
+ depending on criteria outside the scope of this algorithm".
+ Thus it makes no sense to check the breaks[] entry before or
+ after such a character. */
+ if (!(input[j] == 0xFFFC
+ || (j > 0 && input[j - 1] == 0xFFFC)
+ /* Also consider intervening characters with property LBP_CM
+ or LBP_ZWJ, per (LB9). */
+ || (j > 1 && (input[j - 1] == 0x0308 || input[j - 1] == 0x200D)
+ && input[j - 2] == 0xFFFC)))
+ /* A regional indicator with a combining character is nonsense,
+ because regional indicators are supposed to come in pairs. */
+ if (!(j >= 2 && (input[0] >= 0x1F1E6 && input[0] <= 0x1F1FF)
+ && input[1] == 0x0308))
+ /* It is nonsense to treat U+1F8FF differently than U+1F02C.
+ Both are unassigned Extended_Pictographic characters and
+ should therefore be treated like LBP_EB (or LBP_ID, if you
+ want), not like LBP_AL. See rule (LB30b). */
+ if (!(input[j] == 0x1F8FF
+ || (j > 0 && input[j - 1] == 0x1F8FF)
+ /* Also consider intervening characters with property LBP_CM
+ or LBP_ZWJ, per (LB9). */
+ || (j > 1 && (input[j - 1] == 0x0308 || input[j - 1] == 0x200D)
+ && input[j - 2] == 0x1F8FF)))
+ /* There is a disagreement regarding whether to allow a line break
+ after a U+0020 SPACE character at the start of the text.
+ We consider that the start of the text is equivalent to the
+ state after a newline was seen; hence the loop starts with
+ property LBP_BK. By the rules (LB4,LB5,LB6) an extra line
+ break after a mandatory line break is undesired, even with
+ intervening spaces (because these rules come before (LB18)).
+ Whereas the LineBreakTest.txt file allows a line break after
+ the space.
+ Similarly when the first two characters at the start of the
+ text have property LBP_CM and LBP_ZWJ, respectively. (LB9). */
+ if (!(((j == 1 || (j > 1 && ((input[j - 2] >= 0x000A && input[j - 2] <= 0x000D) || input[j - 2] == 0x0085)))
+ && input[j - 1] == 0x0020)
+ || ((j == 2 || (j > 2 && ((input[j - 3] >= 0x000A && input[j - 3] <= 0x000D) || input[j - 3] == 0x0085)))
+ && ((input[j - 2] == 0x0020 && input[j - 1] == 0x0020)
+ || (input[j - 2] == 0x0308 && input[j - 1] == 0x200D)
+ || (input[j - 2] == 0x200D && input[j - 1] == 0x0308)))))
+ matches &= (!(breaks[j] == UC_BREAK_PROHIBITED
+ || breaks[j] == UC_BREAK_MANDATORY
+ || breaks[j] == UC_BREAK_CR_BEFORE_LF)
+ || (j > 0 && breaks[j - 1] == UC_BREAK_MANDATORY))
+ == breaks_expected[j];
+ }
if (!matches)
{
- int j;
-
fprintf (stderr, "%s:%d: expected: ", filename, lineno);
- for (j = 0; j < i - 1; j++)
+ for (int j = 0; j < i - 1; j++)
fprintf (stderr, "%s U+%04X ",
breaks_expected[j] == 1 ? "\303\267" : "\303\227",
input[j]);
fprintf (stderr, "\n");
fprintf (stderr, "%s:%d: actual: ", filename, lineno);
- for (j = 0; j < i - 1; j++)
+ for (int j = 0; j < i - 1; j++)
fprintf (stderr, "%s U+%04X ",
(!(breaks[j] == UC_BREAK_PROHIBITED
|| breaks[j] == UC_BREAK_MANDATORY
diff --git a/tests/unilbrk/test-ulc-possible-linebreaks.c b/tests/unilbrk/test-ulc-possible-linebreaks.c
index 70c572ca..d821cf3d 100644
--- a/tests/unilbrk/test-ulc-possible-linebreaks.c
+++ b/tests/unilbrk/test-ulc-possible-linebreaks.c
@@ -1,5 +1,5 @@
/* Test of line breaking of strings.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -37,10 +37,9 @@ test_function (void (*my_ulc_possible_linebreaks) (const char *, size_t, const c
/* "Grüß Gott. x=(-b±sqrt(b²-4ac))/(2a)" */
"Gr\374\337 Gott. x=(-b\261sqrt(b\262-4ac))/(2a)\n";
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_ulc_possible_linebreaks (input, SIZEOF (input), "ISO-8859-1", p);
- for (i = 0; i < 36; i++)
+ for (size_t i = 0; i < 36; i++)
{
ASSERT (p[i] == (i == 35 ? UC_BREAK_MANDATORY :
i == 5 || i == 11 || i == 15
@@ -55,10 +54,9 @@ test_function (void (*my_ulc_possible_linebreaks) (const char *, size_t, const c
static const char input[21] _GL_ATTRIBUTE_NONSTRING =
"<P>Some sentence.</P>";
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_ulc_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
- for (i = 0; i < 21; i++)
+ for (size_t i = 0; i < 21; i++)
{
ASSERT (p[i] == (i == 8 || i == 17 || i == 19 ? UC_BREAK_POSSIBLE :
UC_BREAK_PROHIBITED));
diff --git a/tests/unilbrk/test-ulc-width-linebreaks.c b/tests/unilbrk/test-ulc-width-linebreaks.c
index b9c74b23..52423e39 100644
--- a/tests/unilbrk/test-ulc-width-linebreaks.c
+++ b/tests/unilbrk/test-ulc-width-linebreaks.c
@@ -1,5 +1,5 @@
/* Test of line breaking of strings.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -37,10 +37,9 @@ test_function (int (*my_ulc_width_linebreaks) (const char *, size_t, int, int, i
/* "Grüß Gott. x=(-b±sqrt(b²-4ac))/(2a)" */
"Gr\374\337 Gott. x=(-b\261sqrt(b\262-4ac))/(2a)\n";
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
my_ulc_width_linebreaks (input, SIZEOF (input), 12, 0, 0, NULL, "ISO-8859-1", p);
- for (i = 0; i < 36; i++)
+ for (size_t i = 0; i < 36; i++)
{
ASSERT (p[i] == (i == 35 ? UC_BREAK_MANDATORY :
i == 11 || i == 15 || i == 31 ? UC_BREAK_POSSIBLE :
diff --git a/tests/unilbrk/test-unilbrk-h.c b/tests/unilbrk/test-unilbrk-h.c
index c06cbeeb..146bddfe 100644
--- a/tests/unilbrk/test-unilbrk-h.c
+++ b/tests/unilbrk/test-unilbrk-h.c
@@ -1,5 +1,5 @@
/* Test of <unilbrk.h>.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-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
diff --git a/tests/unimetadata/test-u-version.c b/tests/unimetadata/test-u-version.c
index e52dd980..20812778 100644
--- a/tests/unimetadata/test-u-version.c
+++ b/tests/unimetadata/test-u-version.c
@@ -1,5 +1,5 @@
/* Test of supported Unicode version.
- 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 General Public License as published by
diff --git a/tests/unimetadata/test-unimetadata-h.c b/tests/unimetadata/test-unimetadata-h.c
index 9c9bf7ee..f7a9564a 100644
--- a/tests/unimetadata/test-unimetadata-h.c
+++ b/tests/unimetadata/test-unimetadata-h.c
@@ -1,5 +1,5 @@
/* Test of <unimetadata.h>.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-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
diff --git a/tests/uniname/test-uniname-h.c b/tests/uniname/test-uniname-h.c
index 4ad982ac..35ba27eb 100644
--- a/tests/uniname/test-uniname-h.c
+++ b/tests/uniname/test-uniname-h.c
@@ -1,5 +1,5 @@
/* Test of <uniname.h>.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-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
diff --git a/tests/uniname/test-uninames.c b/tests/uniname/test-uninames.c
index 0804abf2..38dc618c 100644
--- a/tests/uniname/test-uninames.c
+++ b/tests/uniname/test-uninames.c
@@ -1,5 +1,5 @@
/* Test the Unicode character name functions.
- Copyright (C) 2000-2003, 2005, 2007, 2009-2025 Free Software Foundation,
+ Copyright (C) 2000-2003, 2005, 2007, 2009-2026 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
@@ -187,8 +187,7 @@ fill_aliases (const char *namealiases_filename)
static int
name_has_alias (unsigned int uc)
{
- int i;
- for (i = 0; i < ALIASLEN; i++)
+ for (int i = 0; i < ALIASLEN; i++)
if (unicode_aliases[i].uc == uc)
return 1;
return 0;
@@ -199,10 +198,9 @@ static int
test_name_lookup ()
{
int error = 0;
- unsigned int i;
char buf[UNINAME_MAX];
- for (i = 0; i < 0x11000; i++)
+ for (unsigned int i = 0; i < 0x11000; i++)
{
char *result = unicode_character_name (i, buf);
@@ -231,7 +229,7 @@ test_name_lookup ()
}
}
- for (i = 0x110000; i < 0x1000000; i++)
+ for (unsigned int i = 0x110000; i < 0x1000000; i++)
{
char *result = unicode_character_name (i, buf);
@@ -251,10 +249,9 @@ static int
test_inverse_lookup ()
{
int error = 0;
- unsigned int i;
/* First, verify all valid character names are recognized. */
- for (i = 0; i < 0x110000; i++)
+ for (unsigned int i = 0; i < 0x110000; i++)
if (unicode_names[i] != NULL)
{
unsigned int result = unicode_name_character (unicode_names[i]);
@@ -273,12 +270,12 @@ test_inverse_lookup ()
/* Second, generate random but likely names and verify they are not
recognized unless really valid. */
- for (i = 0; i < 10000; i++)
+ for (unsigned int i = 0; i < 10000; i++)
{
unsigned int i1, i2;
const char *s1;
const char *s2;
- unsigned int l1, l2, j1, j2;
+ unsigned int l1, l2;
char buf[2*UNINAME_MAX];
unsigned int result;
@@ -298,9 +295,9 @@ test_inverse_lookup ()
l2 = strlen (s2);
/* Concatenate a starting piece of s1 with an ending piece of s2. */
- for (j1 = 1; j1 <= l1; j1++)
+ for (unsigned int j1 = 1; j1 <= l1; j1++)
if (j1 == l1 || s1[j1] == ' ')
- for (j2 = 0; j2 < l2; j2++)
+ for (unsigned int j2 = 0; j2 < l2; j2++)
if (j2 == 0 || s2[j2-1] == ' ')
{
memcpy (buf, s1, j1);
@@ -333,11 +330,10 @@ static int
test_alias_lookup ()
{
int error = 0;
- unsigned int i;
char buf[UNINAME_MAX];
/* Verify all valid character names are recognized. */
- for (i = 0; i < ALIASLEN; i++)
+ for (unsigned int i = 0; i < ALIASLEN; i++)
if (unicode_aliases[i].uc != UNINAME_INVALID
/* Skip if the character has no canonical name (e.g. control
characters). */
@@ -371,8 +367,7 @@ main (int argc, char *argv[])
if (i < argc)
{
- int j;
- for (j = 0; j < ALIASLEN; j++)
+ for (int j = 0; j < ALIASLEN; j++)
unicode_aliases[j].uc = UNINAME_INVALID;
i++;
diff --git a/tests/uninorm/test-canonical-decomposition.c b/tests/uninorm/test-canonical-decomposition.c
index 2502f56c..7298a61e 100644
--- a/tests/uninorm/test-canonical-decomposition.c
+++ b/tests/uninorm/test-canonical-decomposition.c
@@ -1,5 +1,5 @@
/* Test of canonical decomposition of Unicode characters.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-compat-decomposition.c b/tests/uninorm/test-compat-decomposition.c
index b4266fd7..be4dc9fc 100644
--- a/tests/uninorm/test-compat-decomposition.c
+++ b/tests/uninorm/test-compat-decomposition.c
@@ -1,5 +1,5 @@
/* Test of compatibility decomposition of Unicode characters.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-composition.c b/tests/uninorm/test-composition.c
index 1aa885d1..3b24410f 100644
--- a/tests/uninorm/test-composition.c
+++ b/tests/uninorm/test-composition.c
@@ -1,5 +1,5 @@
/* Test of canonical composition of Unicode characters.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-decomposing-form.c b/tests/uninorm/test-decomposing-form.c
index 2d46f3d4..1a3efd8e 100644
--- a/tests/uninorm/test-decomposing-form.c
+++ b/tests/uninorm/test-decomposing-form.c
@@ -1,5 +1,5 @@
/* Test of decomposing variant of a normalization form.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-decomposition.c b/tests/uninorm/test-decomposition.c
index 5b02ab7e..a50d781d 100644
--- a/tests/uninorm/test-decomposition.c
+++ b/tests/uninorm/test-decomposition.c
@@ -1,5 +1,5 @@
/* Test of decomposition of Unicode characters.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-nfc.c b/tests/uninorm/test-nfc.c
index 654892fd..3f9b3c24 100644
--- a/tests/uninorm/test-nfc.c
+++ b/tests/uninorm/test-nfc.c
@@ -1,5 +1,5 @@
/* Test of canonical normalization of Unicode strings.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-nfd.c b/tests/uninorm/test-nfd.c
index 1a84946c..57afb977 100644
--- a/tests/uninorm/test-nfd.c
+++ b/tests/uninorm/test-nfd.c
@@ -1,5 +1,5 @@
/* Test of canonical decomposition of Unicode strings.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-nfkc.c b/tests/uninorm/test-nfkc.c
index 0a8102fe..035c60b8 100644
--- a/tests/uninorm/test-nfkc.c
+++ b/tests/uninorm/test-nfkc.c
@@ -1,5 +1,5 @@
/* Test of compatibility normalization of Unicode strings.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-nfkd.c b/tests/uninorm/test-nfkd.c
index 1bb889d6..3a9e1273 100644
--- a/tests/uninorm/test-nfkd.c
+++ b/tests/uninorm/test-nfkd.c
@@ -1,5 +1,5 @@
/* Test of compatibility decomposition of Unicode strings.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-u16-nfc.c b/tests/uninorm/test-u16-nfc.c
index de65b308..0cfd0c1f 100644
--- a/tests/uninorm/test-u16-nfc.c
+++ b/tests/uninorm/test-u16-nfc.c
@@ -1,5 +1,5 @@
/* Test of canonical normalization of UTF-16 strings.
- 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 General Public License as published by
@@ -256,71 +256,67 @@ test_u16_nfc (void)
#endif
/* Check that the sorting is not O(n²) but O(n log n). */
- {
- int pass;
- for (pass = 0; pass < 3; pass++)
- {
- size_t repeat = 1;
- size_t m = 100000;
- uint16_t *input = (uint16_t *) malloc (2 * m * sizeof (uint16_t));
- if (input != NULL)
- {
- uint16_t *expected = input + m;
- size_t m1 = m / 2;
- size_t m2 = (m - 1) / 2;
- /* NB: m1 + m2 == m - 1. */
- uint16_t *p;
- size_t i;
-
- input[0] = 0x0041;
- p = input + 1;
- switch (pass)
- {
- case 0:
- for (i = 0; i < m1; i++)
+ for (int pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint16_t *input = (uint16_t *) malloc (2 * m * sizeof (uint16_t));
+ if (input != NULL)
+ {
+ uint16_t *expected = input + m;
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint16_t *p;
+
+ input[0] = 0x0041;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ break;
+
+ case 1:
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ case 2:
+ for (size_t i = 0; i < m2; i++)
+ {
*p++ = 0x0319;
- for (i = 0; i < m2; i++)
- *p++ = 0x0300;
- break;
-
- case 1:
- for (i = 0; i < m2; i++)
*p++ = 0x0300;
- for (i = 0; i < m1; i++)
- *p++ = 0x0319;
- break;
-
- case 2:
- for (i = 0; i < m2; i++)
- {
- *p++ = 0x0319;
- *p++ = 0x0300;
- }
- for (; i < m1; i++)
- *p++ = 0x0319;
- break;
-
- default:
- abort ();
- }
-
- expected[0] = 0x00C0;
- p = expected + 1;
- for (i = 0; i < m1; i++)
- *p++ = 0x0319;
- for (i = 0; i < m2 - 1; i++)
- *p++ = 0x0300;
-
- for (; repeat > 0; repeat--)
- {
- ASSERT (check (input, m, expected, m - 1) == 0);
- ASSERT (check (expected, m - 1, expected, m - 1) == 0);
- }
-
- free (input);
- }
- }
- }
+ }
+ for (size_t i = m2; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x00C0;
+ p = expected + 1;
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (size_t i = 0; i < m2 - 1; i++)
+ *p++ = 0x0300;
+
+ for (; repeat > 0; repeat--)
+ {
+ ASSERT (check (input, m, expected, m - 1) == 0);
+ ASSERT (check (expected, m - 1, expected, m - 1) == 0);
+ }
+
+ free (input);
+ }
+ }
}
#else
diff --git a/tests/uninorm/test-u16-nfd.c b/tests/uninorm/test-u16-nfd.c
index f83fc8e2..bdeca562 100644
--- a/tests/uninorm/test-u16-nfd.c
+++ b/tests/uninorm/test-u16-nfd.c
@@ -1,5 +1,5 @@
/* Test of canonical decomposition of UTF-16 strings.
- 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 General Public License as published by
@@ -243,68 +243,64 @@ test_u16_nfd (void)
#endif
/* Check that the sorting is not O(n²) but O(n log n). */
- {
- int pass;
- for (pass = 0; pass < 3; pass++)
- {
- size_t repeat = 1;
- size_t m = 100000;
- uint16_t *input = (uint16_t *) malloc (2 * m * sizeof (uint16_t));
- if (input != NULL)
- {
- uint16_t *expected = input + m;
- size_t m1 = m / 2;
- size_t m2 = (m - 1) / 2;
- /* NB: m1 + m2 == m - 1. */
- uint16_t *p;
- size_t i;
-
- input[0] = 0x0041;
- p = input + 1;
- switch (pass)
- {
- case 0:
- for (i = 0; i < m1; i++)
+ for (int pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint16_t *input = (uint16_t *) malloc (2 * m * sizeof (uint16_t));
+ if (input != NULL)
+ {
+ uint16_t *expected = input + m;
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint16_t *p;
+
+ input[0] = 0x0041;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ break;
+
+ case 1:
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ case 2:
+ for (size_t i = 0; i < m2; i++)
+ {
*p++ = 0x0319;
- for (i = 0; i < m2; i++)
- *p++ = 0x0300;
- break;
-
- case 1:
- for (i = 0; i < m2; i++)
*p++ = 0x0300;
- for (i = 0; i < m1; i++)
- *p++ = 0x0319;
- break;
-
- case 2:
- for (i = 0; i < m2; i++)
- {
- *p++ = 0x0319;
- *p++ = 0x0300;
- }
- for (; i < m1; i++)
- *p++ = 0x0319;
- break;
-
- default:
- abort ();
- }
-
- expected[0] = 0x0041;
- p = expected + 1;
- for (i = 0; i < m1; i++)
- *p++ = 0x0319;
- for (i = 0; i < m2; i++)
- *p++ = 0x0300;
-
- for (; repeat > 0; repeat--)
- ASSERT (check (input, m, expected, m) == 0);
-
- free (input);
- }
- }
- }
+ }
+ for (size_t i = m2; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x0041;
+ p = expected + 1;
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+
+ for (; repeat > 0; repeat--)
+ ASSERT (check (input, m, expected, m) == 0);
+
+ free (input);
+ }
+ }
}
#else
diff --git a/tests/uninorm/test-u16-nfkc.c b/tests/uninorm/test-u16-nfkc.c
index 63215ce0..ef25acef 100644
--- a/tests/uninorm/test-u16-nfkc.c
+++ b/tests/uninorm/test-u16-nfkc.c
@@ -1,5 +1,5 @@
/* Test of compatibility normalization of UTF-16 strings.
- 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 General Public License as published by
@@ -304,71 +304,67 @@ test_u16_nfkc (void)
#endif
/* Check that the sorting is not O(n²) but O(n log n). */
- {
- int pass;
- for (pass = 0; pass < 3; pass++)
- {
- size_t repeat = 1;
- size_t m = 100000;
- uint16_t *input = (uint16_t *) malloc (2 * m * sizeof (uint16_t));
- if (input != NULL)
- {
- uint16_t *expected = input + m;
- size_t m1 = m / 2;
- size_t m2 = (m - 1) / 2;
- /* NB: m1 + m2 == m - 1. */
- uint16_t *p;
- size_t i;
-
- input[0] = 0x0041;
- p = input + 1;
- switch (pass)
- {
- case 0:
- for (i = 0; i < m1; i++)
+ for (int pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint16_t *input = (uint16_t *) malloc (2 * m * sizeof (uint16_t));
+ if (input != NULL)
+ {
+ uint16_t *expected = input + m;
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint16_t *p;
+
+ input[0] = 0x0041;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ break;
+
+ case 1:
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ case 2:
+ for (size_t i = 0; i < m2; i++)
+ {
*p++ = 0x0319;
- for (i = 0; i < m2; i++)
- *p++ = 0x0300;
- break;
-
- case 1:
- for (i = 0; i < m2; i++)
*p++ = 0x0300;
- for (i = 0; i < m1; i++)
- *p++ = 0x0319;
- break;
-
- case 2:
- for (i = 0; i < m2; i++)
- {
- *p++ = 0x0319;
- *p++ = 0x0300;
- }
- for (; i < m1; i++)
- *p++ = 0x0319;
- break;
-
- default:
- abort ();
- }
-
- expected[0] = 0x00C0;
- p = expected + 1;
- for (i = 0; i < m1; i++)
- *p++ = 0x0319;
- for (i = 0; i < m2 - 1; i++)
- *p++ = 0x0300;
-
- for (; repeat > 0; repeat--)
- {
- ASSERT (check (input, m, expected, m - 1) == 0);
- ASSERT (check (expected, m - 1, expected, m - 1) == 0);
- }
-
- free (input);
- }
- }
- }
+ }
+ for (size_t i = m2; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x00C0;
+ p = expected + 1;
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (size_t i = 0; i < m2 - 1; i++)
+ *p++ = 0x0300;
+
+ for (; repeat > 0; repeat--)
+ {
+ ASSERT (check (input, m, expected, m - 1) == 0);
+ ASSERT (check (expected, m - 1, expected, m - 1) == 0);
+ }
+
+ free (input);
+ }
+ }
}
#else
diff --git a/tests/uninorm/test-u16-nfkd.c b/tests/uninorm/test-u16-nfkd.c
index d560bb1b..30f39ea3 100644
--- a/tests/uninorm/test-u16-nfkd.c
+++ b/tests/uninorm/test-u16-nfkd.c
@@ -1,5 +1,5 @@
/* Test of compatibility decomposition of UTF-16 strings.
- 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 General Public License as published by
@@ -263,68 +263,64 @@ test_u16_nfkd (void)
#endif
/* Check that the sorting is not O(n²) but O(n log n). */
- {
- int pass;
- for (pass = 0; pass < 3; pass++)
- {
- size_t repeat = 1;
- size_t m = 100000;
- uint16_t *input = (uint16_t *) malloc (2 * m * sizeof (uint16_t));
- if (input != NULL)
- {
- uint16_t *expected = input + m;
- size_t m1 = m / 2;
- size_t m2 = (m - 1) / 2;
- /* NB: m1 + m2 == m - 1. */
- uint16_t *p;
- size_t i;
-
- input[0] = 0x0041;
- p = input + 1;
- switch (pass)
- {
- case 0:
- for (i = 0; i < m1; i++)
+ for (int pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint16_t *input = (uint16_t *) malloc (2 * m * sizeof (uint16_t));
+ if (input != NULL)
+ {
+ uint16_t *expected = input + m;
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint16_t *p;
+
+ input[0] = 0x0041;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ break;
+
+ case 1:
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ case 2:
+ for (size_t i = 0; i < m2; i++)
+ {
*p++ = 0x0319;
- for (i = 0; i < m2; i++)
- *p++ = 0x0300;
- break;
-
- case 1:
- for (i = 0; i < m2; i++)
*p++ = 0x0300;
- for (i = 0; i < m1; i++)
- *p++ = 0x0319;
- break;
-
- case 2:
- for (i = 0; i < m2; i++)
- {
- *p++ = 0x0319;
- *p++ = 0x0300;
- }
- for (; i < m1; i++)
- *p++ = 0x0319;
- break;
-
- default:
- abort ();
- }
-
- expected[0] = 0x0041;
- p = expected + 1;
- for (i = 0; i < m1; i++)
- *p++ = 0x0319;
- for (i = 0; i < m2; i++)
- *p++ = 0x0300;
-
- for (; repeat > 0; repeat--)
- ASSERT (check (input, m, expected, m) == 0);
-
- free (input);
- }
- }
- }
+ }
+ for (size_t i = m2; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x0041;
+ p = expected + 1;
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+
+ for (; repeat > 0; repeat--)
+ ASSERT (check (input, m, expected, m) == 0);
+
+ free (input);
+ }
+ }
}
#else
diff --git a/tests/uninorm/test-u16-normcmp.c b/tests/uninorm/test-u16-normcmp.c
index 117279c7..7a1a7d9b 100644
--- a/tests/uninorm/test-u16-normcmp.c
+++ b/tests/uninorm/test-u16-normcmp.c
@@ -1,5 +1,5 @@
/* Test of normalization insensitive comparison of UTF-16 strings.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-u16-normcmp.h b/tests/uninorm/test-u16-normcmp.h
index ba9784b3..10bdfd06 100644
--- a/tests/uninorm/test-u16-normcmp.h
+++ b/tests/uninorm/test-u16-normcmp.h
@@ -1,5 +1,5 @@
/* Test of normalization insensitive comparison of UTF-16 strings.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-u16-normcoll.c b/tests/uninorm/test-u16-normcoll.c
index 25d6b0e4..cb65a813 100644
--- a/tests/uninorm/test-u16-normcoll.c
+++ b/tests/uninorm/test-u16-normcoll.c
@@ -1,6 +1,6 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/uninorm/test-u32-nfc-big.c b/tests/uninorm/test-u32-nfc-big.c
index 6282d512..a5aac2c5 100644
--- a/tests/uninorm/test-u32-nfc-big.c
+++ b/tests/uninorm/test-u32-nfc-big.c
@@ -1,5 +1,5 @@
/* Test of Unicode compliance of canonical normalization of UTF-32 strings.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-u32-nfc.c b/tests/uninorm/test-u32-nfc.c
index 119af6b2..89f0d652 100644
--- a/tests/uninorm/test-u32-nfc.c
+++ b/tests/uninorm/test-u32-nfc.c
@@ -1,5 +1,5 @@
/* Test of canonical normalization of UTF-32 strings.
- 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 General Public License as published by
@@ -256,71 +256,67 @@ test_u32_nfc (void)
#endif
/* Check that the sorting is not O(n²) but O(n log n). */
- {
- int pass;
- for (pass = 0; pass < 3; pass++)
- {
- size_t repeat = 1;
- size_t m = 100000;
- uint32_t *input = (uint32_t *) malloc (2 * m * sizeof (uint32_t));
- if (input != NULL)
- {
- uint32_t *expected = input + m;
- size_t m1 = m / 2;
- size_t m2 = (m - 1) / 2;
- /* NB: m1 + m2 == m - 1. */
- uint32_t *p;
- size_t i;
-
- input[0] = 0x0041;
- p = input + 1;
- switch (pass)
- {
- case 0:
- for (i = 0; i < m1; i++)
+ for (int pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint32_t *input = (uint32_t *) malloc (2 * m * sizeof (uint32_t));
+ if (input != NULL)
+ {
+ uint32_t *expected = input + m;
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint32_t *p;
+
+ input[0] = 0x0041;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ break;
+
+ case 1:
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ case 2:
+ for (size_t i = 0; i < m2; i++)
+ {
*p++ = 0x0319;
- for (i = 0; i < m2; i++)
- *p++ = 0x0300;
- break;
-
- case 1:
- for (i = 0; i < m2; i++)
*p++ = 0x0300;
- for (i = 0; i < m1; i++)
- *p++ = 0x0319;
- break;
-
- case 2:
- for (i = 0; i < m2; i++)
- {
- *p++ = 0x0319;
- *p++ = 0x0300;
- }
- for (; i < m1; i++)
- *p++ = 0x0319;
- break;
-
- default:
- abort ();
- }
-
- expected[0] = 0x00C0;
- p = expected + 1;
- for (i = 0; i < m1; i++)
- *p++ = 0x0319;
- for (i = 0; i < m2 - 1; i++)
- *p++ = 0x0300;
-
- for (; repeat > 0; repeat--)
- {
- ASSERT (check (input, m, expected, m - 1) == 0);
- ASSERT (check (expected, m - 1, expected, m - 1) == 0);
- }
-
- free (input);
- }
- }
- }
+ }
+ for (size_t i = m2; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x00C0;
+ p = expected + 1;
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (size_t i = 0; i < m2 - 1; i++)
+ *p++ = 0x0300;
+
+ for (; repeat > 0; repeat--)
+ {
+ ASSERT (check (input, m, expected, m - 1) == 0);
+ ASSERT (check (expected, m - 1, expected, m - 1) == 0);
+ }
+
+ free (input);
+ }
+ }
}
#else
diff --git a/tests/uninorm/test-u32-nfd-big.c b/tests/uninorm/test-u32-nfd-big.c
index 94d5d511..a471a035 100644
--- a/tests/uninorm/test-u32-nfd-big.c
+++ b/tests/uninorm/test-u32-nfd-big.c
@@ -1,5 +1,5 @@
/* Test of Unicode compliance of canonical decomposition of UTF-32 strings.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-u32-nfd.c b/tests/uninorm/test-u32-nfd.c
index 248e0eca..49a12359 100644
--- a/tests/uninorm/test-u32-nfd.c
+++ b/tests/uninorm/test-u32-nfd.c
@@ -1,5 +1,5 @@
/* Test of canonical decomposition of UTF-32 strings.
- 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 General Public License as published by
@@ -243,68 +243,64 @@ test_u32_nfd (void)
#endif
/* Check that the sorting is not O(n²) but O(n log n). */
- {
- int pass;
- for (pass = 0; pass < 3; pass++)
- {
- size_t repeat = 1;
- size_t m = 100000;
- uint32_t *input = (uint32_t *) malloc (2 * m * sizeof (uint32_t));
- if (input != NULL)
- {
- uint32_t *expected = input + m;
- size_t m1 = m / 2;
- size_t m2 = (m - 1) / 2;
- /* NB: m1 + m2 == m - 1. */
- uint32_t *p;
- size_t i;
-
- input[0] = 0x0041;
- p = input + 1;
- switch (pass)
- {
- case 0:
- for (i = 0; i < m1; i++)
+ for (int pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint32_t *input = (uint32_t *) malloc (2 * m * sizeof (uint32_t));
+ if (input != NULL)
+ {
+ uint32_t *expected = input + m;
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint32_t *p;
+
+ input[0] = 0x0041;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ break;
+
+ case 1:
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ case 2:
+ for (size_t i = 0; i < m2; i++)
+ {
*p++ = 0x0319;
- for (i = 0; i < m2; i++)
- *p++ = 0x0300;
- break;
-
- case 1:
- for (i = 0; i < m2; i++)
*p++ = 0x0300;
- for (i = 0; i < m1; i++)
- *p++ = 0x0319;
- break;
-
- case 2:
- for (i = 0; i < m2; i++)
- {
- *p++ = 0x0319;
- *p++ = 0x0300;
- }
- for (; i < m1; i++)
- *p++ = 0x0319;
- break;
-
- default:
- abort ();
- }
-
- expected[0] = 0x0041;
- p = expected + 1;
- for (i = 0; i < m1; i++)
- *p++ = 0x0319;
- for (i = 0; i < m2; i++)
- *p++ = 0x0300;
-
- for (; repeat > 0; repeat--)
- ASSERT (check (input, m, expected, m) == 0);
-
- free (input);
- }
- }
- }
+ }
+ for (size_t i = m2; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x0041;
+ p = expected + 1;
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+
+ for (; repeat > 0; repeat--)
+ ASSERT (check (input, m, expected, m) == 0);
+
+ free (input);
+ }
+ }
}
#else
diff --git a/tests/uninorm/test-u32-nfkc-big.c b/tests/uninorm/test-u32-nfkc-big.c
index 380f674c..63aa1acc 100644
--- a/tests/uninorm/test-u32-nfkc-big.c
+++ b/tests/uninorm/test-u32-nfkc-big.c
@@ -1,5 +1,5 @@
/* Test of Unicode compliance of compatibility normalization of UTF-32 strings.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-u32-nfkc.c b/tests/uninorm/test-u32-nfkc.c
index 454b7afd..6dfc745e 100644
--- a/tests/uninorm/test-u32-nfkc.c
+++ b/tests/uninorm/test-u32-nfkc.c
@@ -1,5 +1,5 @@
/* Test of compatibility normalization of UTF-32 strings.
- 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 General Public License as published by
@@ -304,71 +304,67 @@ test_u32_nfkc (void)
#endif
/* Check that the sorting is not O(n²) but O(n log n). */
- {
- int pass;
- for (pass = 0; pass < 3; pass++)
- {
- size_t repeat = 1;
- size_t m = 100000;
- uint32_t *input = (uint32_t *) malloc (2 * m * sizeof (uint32_t));
- if (input != NULL)
- {
- uint32_t *expected = input + m;
- size_t m1 = m / 2;
- size_t m2 = (m - 1) / 2;
- /* NB: m1 + m2 == m - 1. */
- uint32_t *p;
- size_t i;
-
- input[0] = 0x0041;
- p = input + 1;
- switch (pass)
- {
- case 0:
- for (i = 0; i < m1; i++)
+ for (int pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint32_t *input = (uint32_t *) malloc (2 * m * sizeof (uint32_t));
+ if (input != NULL)
+ {
+ uint32_t *expected = input + m;
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint32_t *p;
+
+ input[0] = 0x0041;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ break;
+
+ case 1:
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ case 2:
+ for (size_t i = 0; i < m2; i++)
+ {
*p++ = 0x0319;
- for (i = 0; i < m2; i++)
- *p++ = 0x0300;
- break;
-
- case 1:
- for (i = 0; i < m2; i++)
*p++ = 0x0300;
- for (i = 0; i < m1; i++)
- *p++ = 0x0319;
- break;
-
- case 2:
- for (i = 0; i < m2; i++)
- {
- *p++ = 0x0319;
- *p++ = 0x0300;
- }
- for (; i < m1; i++)
- *p++ = 0x0319;
- break;
-
- default:
- abort ();
- }
-
- expected[0] = 0x00C0;
- p = expected + 1;
- for (i = 0; i < m1; i++)
- *p++ = 0x0319;
- for (i = 0; i < m2 - 1; i++)
- *p++ = 0x0300;
-
- for (; repeat > 0; repeat--)
- {
- ASSERT (check (input, m, expected, m - 1) == 0);
- ASSERT (check (expected, m - 1, expected, m - 1) == 0);
- }
-
- free (input);
- }
- }
- }
+ }
+ for (size_t i = m2; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x00C0;
+ p = expected + 1;
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (size_t i = 0; i < m2 - 1; i++)
+ *p++ = 0x0300;
+
+ for (; repeat > 0; repeat--)
+ {
+ ASSERT (check (input, m, expected, m - 1) == 0);
+ ASSERT (check (expected, m - 1, expected, m - 1) == 0);
+ }
+
+ free (input);
+ }
+ }
}
#else
diff --git a/tests/uninorm/test-u32-nfkd-big.c b/tests/uninorm/test-u32-nfkd-big.c
index 8aafb7d7..ee176342 100644
--- a/tests/uninorm/test-u32-nfkd-big.c
+++ b/tests/uninorm/test-u32-nfkd-big.c
@@ -1,5 +1,5 @@
/* Test of Unicode compliance of compatibility decomposition of UTF-32 strings.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-u32-nfkd.c b/tests/uninorm/test-u32-nfkd.c
index 4120d7bc..50fc7960 100644
--- a/tests/uninorm/test-u32-nfkd.c
+++ b/tests/uninorm/test-u32-nfkd.c
@@ -1,5 +1,5 @@
/* Test of compatibility decomposition of UTF-32 strings.
- 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 General Public License as published by
@@ -263,68 +263,64 @@ test_u32_nfkd (void)
#endif
/* Check that the sorting is not O(n²) but O(n log n). */
- {
- int pass;
- for (pass = 0; pass < 3; pass++)
- {
- size_t repeat = 1;
- size_t m = 100000;
- uint32_t *input = (uint32_t *) malloc (2 * m * sizeof (uint32_t));
- if (input != NULL)
- {
- uint32_t *expected = input + m;
- size_t m1 = m / 2;
- size_t m2 = (m - 1) / 2;
- /* NB: m1 + m2 == m - 1. */
- uint32_t *p;
- size_t i;
-
- input[0] = 0x0041;
- p = input + 1;
- switch (pass)
- {
- case 0:
- for (i = 0; i < m1; i++)
+ for (int pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint32_t *input = (uint32_t *) malloc (2 * m * sizeof (uint32_t));
+ if (input != NULL)
+ {
+ uint32_t *expected = input + m;
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint32_t *p;
+
+ input[0] = 0x0041;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ break;
+
+ case 1:
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ case 2:
+ for (size_t i = 0; i < m2; i++)
+ {
*p++ = 0x0319;
- for (i = 0; i < m2; i++)
- *p++ = 0x0300;
- break;
-
- case 1:
- for (i = 0; i < m2; i++)
*p++ = 0x0300;
- for (i = 0; i < m1; i++)
- *p++ = 0x0319;
- break;
-
- case 2:
- for (i = 0; i < m2; i++)
- {
- *p++ = 0x0319;
- *p++ = 0x0300;
- }
- for (; i < m1; i++)
- *p++ = 0x0319;
- break;
-
- default:
- abort ();
- }
-
- expected[0] = 0x0041;
- p = expected + 1;
- for (i = 0; i < m1; i++)
- *p++ = 0x0319;
- for (i = 0; i < m2; i++)
- *p++ = 0x0300;
-
- for (; repeat > 0; repeat--)
- ASSERT (check (input, m, expected, m) == 0);
-
- free (input);
- }
- }
- }
+ }
+ for (size_t i = m2; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x0041;
+ p = expected + 1;
+ for (size_t i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (size_t i = 0; i < m2; i++)
+ *p++ = 0x0300;
+
+ for (; repeat > 0; repeat--)
+ ASSERT (check (input, m, expected, m) == 0);
+
+ free (input);
+ }
+ }
}
#else
diff --git a/tests/uninorm/test-u32-normalize-big.c b/tests/uninorm/test-u32-normalize-big.c
index ae197991..863c7181 100644
--- a/tests/uninorm/test-u32-normalize-big.c
+++ b/tests/uninorm/test-u32-normalize-big.c
@@ -1,5 +1,5 @@
/* Test of Unicode compliance of normalization of UTF-32 strings.
- 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 General Public License as published by
@@ -58,7 +58,6 @@ read_normalization_test_file (const char *filename,
{
FILE *stream;
unsigned int lineno;
- int part_index;
struct normalization_test_line *lines;
size_t lines_length;
size_t lines_allocated;
@@ -70,7 +69,7 @@ read_normalization_test_file (const char *filename,
exit (1);
}
- for (part_index = 0; part_index < 6; part_index++)
+ for (int part_index = 0; part_index < 6; part_index++)
{
file->parts[part_index].lines = NULL;
file->parts[part_index].lines_length = 0;
@@ -78,7 +77,7 @@ read_normalization_test_file (const char *filename,
lineno = 0;
- part_index = -1;
+ int part_index = -1;
lines = NULL;
lines_length = 0;
lines_allocated = 0;
@@ -89,7 +88,6 @@ read_normalization_test_file (const char *filename,
char *ptr;
int c;
struct normalization_test_line line;
- size_t sequence_index;
lineno++;
@@ -139,9 +137,9 @@ read_normalization_test_file (const char *filename,
}
ptr = buf;
line.lineno = lineno;
- for (sequence_index = 0; sequence_index < 5; sequence_index++)
+ for (size_t sequence_index = 0; sequence_index < 5; sequence_index++)
line.sequences[sequence_index] = NULL;
- for (sequence_index = 0; sequence_index < 5; sequence_index++)
+ for (size_t sequence_index = 0; sequence_index < 5; sequence_index++)
{
uint32_t *sequence = XNMALLOC (1, uint32_t);
size_t sequence_length = 0;
@@ -210,9 +208,8 @@ read_normalization_test_file (const char *filename,
/* Collect all c1 values from the part 1 in an array. */
const struct normalization_test_part *p = &file->parts[1];
ucs4_t *c1_array = XNMALLOC (p->lines_length + 1, ucs4_t);
- size_t line_index;
- for (line_index = 0; line_index < p->lines_length; line_index++)
+ for (size_t line_index = 0; line_index < p->lines_length; line_index++)
{
const uint32_t *sequence = p->lines[line_index].sequences[0];
/* In part 1, every sequences[0] consists of a single character. */
@@ -247,14 +244,11 @@ test_specific (const struct normalization_test_file *file,
const uint32_t *c4, size_t c4_length,
const uint32_t *c5, size_t c5_length))
{
- size_t part_index;
-
- for (part_index = 0; part_index < 6; part_index++)
+ for (size_t part_index = 0; part_index < 6; part_index++)
{
const struct normalization_test_part *p = &file->parts[part_index];
- size_t line_index;
- for (line_index = 0; line_index < p->lines_length; line_index++)
+ for (size_t line_index = 0; line_index < p->lines_length; line_index++)
{
const struct normalization_test_line *l = &p->lines[line_index];
@@ -276,9 +270,8 @@ test_other (const struct normalization_test_file *file, uninorm_t nf)
NormalizationTest.txt file, the character maps to itself in each
of the four normalization forms. */
const ucs4_t *p = file->part1_c1_sorted;
- ucs4_t uc;
- for (uc = 0; uc < 0x110000; uc++)
+ for (ucs4_t uc = 0; uc < 0x110000; uc++)
{
if (uc >= 0xD800 && uc < 0xE000)
{
@@ -307,19 +300,15 @@ test_other (const struct normalization_test_file *file, uninorm_t nf)
void
free_normalization_test_file (struct normalization_test_file *file)
{
- size_t part_index;
-
- for (part_index = 0; part_index < 6; part_index++)
+ for (size_t part_index = 0; part_index < 6; part_index++)
{
const struct normalization_test_part *p = &file->parts[part_index];
- size_t line_index;
- for (line_index = 0; line_index < p->lines_length; line_index++)
+ for (size_t line_index = 0; line_index < p->lines_length; line_index++)
{
const struct normalization_test_line *l = &p->lines[line_index];
- size_t sequence_index;
- for (sequence_index = 0; sequence_index < 5; sequence_index++)
+ for (size_t sequence_index = 0; sequence_index < 5; sequence_index++)
free (l->sequences[sequence_index]);
}
free (p->lines);
diff --git a/tests/uninorm/test-u32-normalize-big.h b/tests/uninorm/test-u32-normalize-big.h
index f691ea05..5402d7b0 100644
--- a/tests/uninorm/test-u32-normalize-big.h
+++ b/tests/uninorm/test-u32-normalize-big.h
@@ -1,5 +1,5 @@
/* Test of Unicode compliance of normalization of UTF-32 strings.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-u32-normcmp.c b/tests/uninorm/test-u32-normcmp.c
index 6ec6384a..e18de216 100644
--- a/tests/uninorm/test-u32-normcmp.c
+++ b/tests/uninorm/test-u32-normcmp.c
@@ -1,5 +1,5 @@
/* Test of normalization insensitive comparison of UTF-32 strings.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-u32-normcmp.h b/tests/uninorm/test-u32-normcmp.h
index b184c762..b1a97bd7 100644
--- a/tests/uninorm/test-u32-normcmp.h
+++ b/tests/uninorm/test-u32-normcmp.h
@@ -1,5 +1,5 @@
/* Test of normalization insensitive comparison of UTF-32 strings.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-u32-normcoll.c b/tests/uninorm/test-u32-normcoll.c
index 1087233a..bc9c68c8 100644
--- a/tests/uninorm/test-u32-normcoll.c
+++ b/tests/uninorm/test-u32-normcoll.c
@@ -1,6 +1,6 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/uninorm/test-u8-nfc.c b/tests/uninorm/test-u8-nfc.c
index 6d98721c..96993cf7 100644
--- a/tests/uninorm/test-u8-nfc.c
+++ b/tests/uninorm/test-u8-nfc.c
@@ -1,5 +1,5 @@
/* Test of canonical normalization of UTF-8 strings.
- 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 General Public License as published by
@@ -262,95 +262,91 @@ test_u8_nfc (void)
#endif
/* Check that the sorting is not O(n²) but O(n log n). */
- {
- int pass;
- for (pass = 0; pass < 3; pass++)
- {
- size_t repeat = 1;
- size_t m = 100000;
- uint8_t *input = (uint8_t *) malloc (2 * (2 * m - 1) * sizeof (uint8_t));
- if (input != NULL)
- {
- uint8_t *expected = input + (2 * m - 1);
- size_t m1 = m / 2;
- size_t m2 = (m - 1) / 2;
- /* NB: m1 + m2 == m - 1. */
- uint8_t *p;
- size_t i;
-
- input[0] = 0x41;
- p = input + 1;
- switch (pass)
- {
- case 0:
- for (i = 0; i < m1; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- }
- for (i = 0; i < m2; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x80;
- }
- break;
-
- case 1:
- for (i = 0; i < m2; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x80;
- }
- for (i = 0; i < m1; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- }
- break;
-
- case 2:
- for (i = 0; i < m2; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- *p++ = 0xCC;
- *p++ = 0x80;
- }
- for (; i < m1; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- }
- break;
-
- default:
- abort ();
- }
-
- expected[0] = 0xC3;
- expected[1] = 0x80;
- p = expected + 2;
- for (i = 0; i < m1; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- }
- for (i = 0; i < m2 - 1; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x80;
- }
-
- for (; repeat > 0; repeat--)
- {
- ASSERT (check (input, 2 * m - 1, expected, 2 * m - 2) == 0);
- ASSERT (check (expected, 2 * m - 2, expected, 2 * m - 2) == 0);
- }
-
- free (input);
- }
- }
- }
+ for (int pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint8_t *input = (uint8_t *) malloc (2 * (2 * m - 1) * sizeof (uint8_t));
+ if (input != NULL)
+ {
+ uint8_t *expected = input + (2 * m - 1);
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint8_t *p;
+
+ input[0] = 0x41;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (size_t i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ for (size_t i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ break;
+
+ case 1:
+ for (size_t i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ for (size_t i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ break;
+
+ case 2:
+ for (size_t i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ for (size_t i = m2; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0xC3;
+ expected[1] = 0x80;
+ p = expected + 2;
+ for (size_t i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ for (size_t i = 0; i < m2 - 1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+
+ for (; repeat > 0; repeat--)
+ {
+ ASSERT (check (input, 2 * m - 1, expected, 2 * m - 2) == 0);
+ ASSERT (check (expected, 2 * m - 2, expected, 2 * m - 2) == 0);
+ }
+
+ free (input);
+ }
+ }
}
#else
diff --git a/tests/uninorm/test-u8-nfd.c b/tests/uninorm/test-u8-nfd.c
index 78b9fa77..d7602f1e 100644
--- a/tests/uninorm/test-u8-nfd.c
+++ b/tests/uninorm/test-u8-nfd.c
@@ -1,5 +1,5 @@
/* Test of canonical decomposition of UTF-8 strings.
- 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 General Public License as published by
@@ -249,91 +249,87 @@ test_u8_nfd (void)
#endif
/* Check that the sorting is not O(n²) but O(n log n). */
- {
- int pass;
- for (pass = 0; pass < 3; pass++)
- {
- size_t repeat = 1;
- size_t m = 100000;
- uint8_t *input = (uint8_t *) malloc (2 * (2 * m - 1) * sizeof (uint8_t));
- if (input != NULL)
- {
- uint8_t *expected = input + (2 * m - 1);
- size_t m1 = m / 2;
- size_t m2 = (m - 1) / 2;
- /* NB: m1 + m2 == m - 1. */
- uint8_t *p;
- size_t i;
-
- input[0] = 0x41;
- p = input + 1;
- switch (pass)
- {
- case 0:
- for (i = 0; i < m1; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- }
- for (i = 0; i < m2; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x80;
- }
- break;
-
- case 1:
- for (i = 0; i < m2; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x80;
- }
- for (i = 0; i < m1; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- }
- break;
-
- case 2:
- for (i = 0; i < m2; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- *p++ = 0xCC;
- *p++ = 0x80;
- }
- for (; i < m1; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- }
- break;
-
- default:
- abort ();
- }
-
- expected[0] = 0x41;
- p = expected + 1;
- for (i = 0; i < m1; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- }
- for (i = 0; i < m2; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x80;
- }
-
- for (; repeat > 0; repeat--)
- ASSERT (check (input, 2 * m - 1, expected, 2 * m - 1) == 0);
-
- free (input);
- }
- }
- }
+ for (int pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint8_t *input = (uint8_t *) malloc (2 * (2 * m - 1) * sizeof (uint8_t));
+ if (input != NULL)
+ {
+ uint8_t *expected = input + (2 * m - 1);
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint8_t *p;
+
+ input[0] = 0x41;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (size_t i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ for (size_t i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ break;
+
+ case 1:
+ for (size_t i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ for (size_t i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ break;
+
+ case 2:
+ for (size_t i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ for (size_t i = m2; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x41;
+ p = expected + 1;
+ for (size_t i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ for (size_t i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+
+ for (; repeat > 0; repeat--)
+ ASSERT (check (input, 2 * m - 1, expected, 2 * m - 1) == 0);
+
+ free (input);
+ }
+ }
}
#else
diff --git a/tests/uninorm/test-u8-nfkc.c b/tests/uninorm/test-u8-nfkc.c
index a8379908..551d112f 100644
--- a/tests/uninorm/test-u8-nfkc.c
+++ b/tests/uninorm/test-u8-nfkc.c
@@ -1,5 +1,5 @@
/* Test of compatibility normalization of UTF-8 strings.
- 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 General Public License as published by
@@ -314,95 +314,91 @@ test_u8_nfkc (void)
#endif
/* Check that the sorting is not O(n²) but O(n log n). */
- {
- int pass;
- for (pass = 0; pass < 3; pass++)
- {
- size_t repeat = 1;
- size_t m = 100000;
- uint8_t *input = (uint8_t *) malloc (2 * (2 * m - 1) * sizeof (uint8_t));
- if (input != NULL)
- {
- uint8_t *expected = input + (2 * m - 1);
- size_t m1 = m / 2;
- size_t m2 = (m - 1) / 2;
- /* NB: m1 + m2 == m - 1. */
- uint8_t *p;
- size_t i;
-
- input[0] = 0x41;
- p = input + 1;
- switch (pass)
- {
- case 0:
- for (i = 0; i < m1; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- }
- for (i = 0; i < m2; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x80;
- }
- break;
-
- case 1:
- for (i = 0; i < m2; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x80;
- }
- for (i = 0; i < m1; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- }
- break;
-
- case 2:
- for (i = 0; i < m2; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- *p++ = 0xCC;
- *p++ = 0x80;
- }
- for (; i < m1; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- }
- break;
-
- default:
- abort ();
- }
-
- expected[0] = 0xC3;
- expected[1] = 0x80;
- p = expected + 2;
- for (i = 0; i < m1; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- }
- for (i = 0; i < m2 - 1; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x80;
- }
-
- for (; repeat > 0; repeat--)
- {
- ASSERT (check (input, 2 * m - 1, expected, 2 * m - 2) == 0);
- ASSERT (check (expected, 2 * m - 2, expected, 2 * m - 2) == 0);
- }
-
- free (input);
- }
- }
- }
+ for (int pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint8_t *input = (uint8_t *) malloc (2 * (2 * m - 1) * sizeof (uint8_t));
+ if (input != NULL)
+ {
+ uint8_t *expected = input + (2 * m - 1);
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint8_t *p;
+
+ input[0] = 0x41;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (size_t i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ for (size_t i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ break;
+
+ case 1:
+ for (size_t i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ for (size_t i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ break;
+
+ case 2:
+ for (size_t i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ for (size_t i = m2; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0xC3;
+ expected[1] = 0x80;
+ p = expected + 2;
+ for (size_t i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ for (size_t i = 0; i < m2 - 1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+
+ for (; repeat > 0; repeat--)
+ {
+ ASSERT (check (input, 2 * m - 1, expected, 2 * m - 2) == 0);
+ ASSERT (check (expected, 2 * m - 2, expected, 2 * m - 2) == 0);
+ }
+
+ free (input);
+ }
+ }
}
#else
diff --git a/tests/uninorm/test-u8-nfkd.c b/tests/uninorm/test-u8-nfkd.c
index ddc1ddde..b18dd531 100644
--- a/tests/uninorm/test-u8-nfkd.c
+++ b/tests/uninorm/test-u8-nfkd.c
@@ -1,5 +1,5 @@
/* Test of compatibility decomposition of UTF-8 strings.
- 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 General Public License as published by
@@ -270,91 +270,87 @@ test_u8_nfkd (void)
#endif
/* Check that the sorting is not O(n²) but O(n log n). */
- {
- int pass;
- for (pass = 0; pass < 3; pass++)
- {
- size_t repeat = 1;
- size_t m = 100000;
- uint8_t *input = (uint8_t *) malloc (2 * (2 * m - 1) * sizeof (uint8_t));
- if (input != NULL)
- {
- uint8_t *expected = input + (2 * m - 1);
- size_t m1 = m / 2;
- size_t m2 = (m - 1) / 2;
- /* NB: m1 + m2 == m - 1. */
- uint8_t *p;
- size_t i;
-
- input[0] = 0x41;
- p = input + 1;
- switch (pass)
- {
- case 0:
- for (i = 0; i < m1; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- }
- for (i = 0; i < m2; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x80;
- }
- break;
-
- case 1:
- for (i = 0; i < m2; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x80;
- }
- for (i = 0; i < m1; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- }
- break;
-
- case 2:
- for (i = 0; i < m2; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- *p++ = 0xCC;
- *p++ = 0x80;
- }
- for (; i < m1; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- }
- break;
-
- default:
- abort ();
- }
-
- expected[0] = 0x41;
- p = expected + 1;
- for (i = 0; i < m1; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x99;
- }
- for (i = 0; i < m2; i++)
- {
- *p++ = 0xCC;
- *p++ = 0x80;
- }
-
- for (; repeat > 0; repeat--)
- ASSERT (check (input, 2 * m - 1, expected, 2 * m - 1) == 0);
-
- free (input);
- }
- }
- }
+ for (int pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint8_t *input = (uint8_t *) malloc (2 * (2 * m - 1) * sizeof (uint8_t));
+ if (input != NULL)
+ {
+ uint8_t *expected = input + (2 * m - 1);
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint8_t *p;
+
+ input[0] = 0x41;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (size_t i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ for (size_t i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ break;
+
+ case 1:
+ for (size_t i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ for (size_t i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ break;
+
+ case 2:
+ for (size_t i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ for (size_t i = m2; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x41;
+ p = expected + 1;
+ for (size_t i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ for (size_t i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+
+ for (; repeat > 0; repeat--)
+ ASSERT (check (input, 2 * m - 1, expected, 2 * m - 1) == 0);
+
+ free (input);
+ }
+ }
}
#else
diff --git a/tests/uninorm/test-u8-normcmp.c b/tests/uninorm/test-u8-normcmp.c
index 772da7fc..5c6b6c8d 100644
--- a/tests/uninorm/test-u8-normcmp.c
+++ b/tests/uninorm/test-u8-normcmp.c
@@ -1,5 +1,5 @@
/* Test of normalization insensitive comparison of UTF-8 strings.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-u8-normcmp.h b/tests/uninorm/test-u8-normcmp.h
index 843a5233..e033ae76 100644
--- a/tests/uninorm/test-u8-normcmp.h
+++ b/tests/uninorm/test-u8-normcmp.h
@@ -1,5 +1,5 @@
/* Test of normalization insensitive comparison of UTF-8 strings.
- 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 General Public License as published by
diff --git a/tests/uninorm/test-u8-normcoll.c b/tests/uninorm/test-u8-normcoll.c
index 6ab628c0..5026b731 100644
--- a/tests/uninorm/test-u8-normcoll.c
+++ b/tests/uninorm/test-u8-normcoll.c
@@ -1,6 +1,6 @@
/* Test of 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.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/uninorm/test-uninorm-filter-nfc.c b/tests/uninorm/test-uninorm-filter-nfc.c
index 98904182..8ff16205 100644
--- a/tests/uninorm/test-uninorm-filter-nfc.c
+++ b/tests/uninorm/test-uninorm-filter-nfc.c
@@ -1,5 +1,5 @@
/* Test of canonical normalization of streams.
- 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 General Public License as published by
@@ -55,7 +55,6 @@ check (const uint32_t *input, size_t input_length,
{
struct accumulator accu;
struct uninorm_filter *filter;
- size_t i;
accu.result = NULL;
accu.length = 0;
@@ -64,7 +63,7 @@ check (const uint32_t *input, size_t input_length,
filter = uninorm_filter_create (UNINORM_NFC, write_to_accumulator, &accu);
ASSERT (filter != NULL);
- for (i = 0; i < input_length; i++)
+ for (size_t i = 0; i < input_length; i++)
ASSERT (uninorm_filter_write (filter, input[i]) == 0);
ASSERT (uninorm_filter_free (filter) == 0);
diff --git a/tests/uninorm/test-uninorm-h.c b/tests/uninorm/test-uninorm-h.c
index 0398d24e..16d8688b 100644
--- a/tests/uninorm/test-uninorm-h.c
+++ b/tests/uninorm/test-uninorm-h.c
@@ -1,5 +1,5 @@
/* Test of <uninorm.h>.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-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
diff --git a/tests/unistdio/test-u16-asnprintf1.c b/tests/unistdio/test-u16-asnprintf1.c
index 8e047cce..672b4662 100644
--- a/tests/unistdio/test-u16-asnprintf1.c
+++ b/tests/unistdio/test-u16-asnprintf1.c
@@ -1,5 +1,5 @@
/* Test of u16_asnprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u16-asnprintf1.h b/tests/unistdio/test-u16-asnprintf1.h
index 6d1be290..79d53293 100644
--- a/tests/unistdio/test-u16-asnprintf1.h
+++ b/tests/unistdio/test-u16-asnprintf1.h
@@ -1,5 +1,5 @@
/* Test of u16_[v]asnprintf() function.
- 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 General Public License as published by
@@ -20,11 +20,10 @@ static void
test_function (uint16_t * (*my_asnprintf) (uint16_t *, size_t *, const char *, ...))
{
uint16_t buf[8];
- int size;
/* Test return value convention. */
- for (size = 0; size <= 8; size++)
+ for (int size = 0; size <= 8; size++)
{
size_t length = size;
uint16_t *result = my_asnprintf (NULL, &length, "%d", 12345);
@@ -36,7 +35,7 @@ test_function (uint16_t * (*my_asnprintf) (uint16_t *, size_t *, const char *, .
free (result);
}
- for (size = 0; size <= 8; size++)
+ for (int size = 0; size <= 8; size++)
{
static const uint16_t initializer[] =
{ 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F', 0 };
diff --git a/tests/unistdio/test-u16-printf1.h b/tests/unistdio/test-u16-printf1.h
index 0498b32e..020b4d59 100644
--- a/tests/unistdio/test-u16-printf1.h
+++ b/tests/unistdio/test-u16-printf1.h
@@ -1,5 +1,5 @@
/* Test of u16_v[a]s[n]printf() function.
- 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 General Public License as published by
diff --git a/tests/unistdio/test-u16-vasnprintf1.c b/tests/unistdio/test-u16-vasnprintf1.c
index c6c0f520..c17d6e63 100644
--- a/tests/unistdio/test-u16-vasnprintf1.c
+++ b/tests/unistdio/test-u16-vasnprintf1.c
@@ -1,5 +1,5 @@
/* Test of u16_vasnprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u16-vasnprintf2.c b/tests/unistdio/test-u16-vasnprintf2.c
index cb9fb27a..cef1b654 100644
--- a/tests/unistdio/test-u16-vasnprintf2.c
+++ b/tests/unistdio/test-u16-vasnprintf2.c
@@ -1,5 +1,5 @@
/* Test of u16_vasnprintf() function in an ISO-8859-1 locale.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u16-vasnprintf3.c b/tests/unistdio/test-u16-vasnprintf3.c
index 80391a38..44604a00 100644
--- a/tests/unistdio/test-u16-vasnprintf3.c
+++ b/tests/unistdio/test-u16-vasnprintf3.c
@@ -1,5 +1,5 @@
/* Test of u16_vasnprintf() function in an UTF-8 locale.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u16-vasprintf1.c b/tests/unistdio/test-u16-vasprintf1.c
index f1613023..f43bebd5 100644
--- a/tests/unistdio/test-u16-vasprintf1.c
+++ b/tests/unistdio/test-u16-vasprintf1.c
@@ -1,5 +1,5 @@
/* Test of u16_vasprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u16-vsnprintf1.c b/tests/unistdio/test-u16-vsnprintf1.c
index ac9d81f5..e2b35fc5 100644
--- a/tests/unistdio/test-u16-vsnprintf1.c
+++ b/tests/unistdio/test-u16-vsnprintf1.c
@@ -1,5 +1,5 @@
/* Test of u16_vsnprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u16-vsprintf1.c b/tests/unistdio/test-u16-vsprintf1.c
index dd323bd0..0fee1c04 100644
--- a/tests/unistdio/test-u16-vsprintf1.c
+++ b/tests/unistdio/test-u16-vsprintf1.c
@@ -1,5 +1,5 @@
/* Test of u16_vsprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u32-asnprintf1.c b/tests/unistdio/test-u32-asnprintf1.c
index 4fd23030..c899e488 100644
--- a/tests/unistdio/test-u32-asnprintf1.c
+++ b/tests/unistdio/test-u32-asnprintf1.c
@@ -1,5 +1,5 @@
/* Test of u32_asnprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u32-asnprintf1.h b/tests/unistdio/test-u32-asnprintf1.h
index 2046d4f6..da619725 100644
--- a/tests/unistdio/test-u32-asnprintf1.h
+++ b/tests/unistdio/test-u32-asnprintf1.h
@@ -1,5 +1,5 @@
/* Test of u32_[v]asnprintf() function.
- 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 General Public License as published by
@@ -20,11 +20,10 @@ static void
test_function (uint32_t * (*my_asnprintf) (uint32_t *, size_t *, const char *, ...))
{
uint32_t buf[8];
- int size;
/* Test return value convention. */
- for (size = 0; size <= 8; size++)
+ for (int size = 0; size <= 8; size++)
{
size_t length = size;
uint32_t *result = my_asnprintf (NULL, &length, "%d", 12345);
@@ -36,7 +35,7 @@ test_function (uint32_t * (*my_asnprintf) (uint32_t *, size_t *, const char *, .
free (result);
}
- for (size = 0; size <= 8; size++)
+ for (int size = 0; size <= 8; size++)
{
static const uint32_t initializer[] =
{ 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F', 0 };
diff --git a/tests/unistdio/test-u32-printf1.h b/tests/unistdio/test-u32-printf1.h
index 05cedd07..0bc80288 100644
--- a/tests/unistdio/test-u32-printf1.h
+++ b/tests/unistdio/test-u32-printf1.h
@@ -1,5 +1,5 @@
/* Test of u32_v[a]s[n]printf() function.
- 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 General Public License as published by
diff --git a/tests/unistdio/test-u32-vasnprintf1.c b/tests/unistdio/test-u32-vasnprintf1.c
index e73753ea..91e9a5f0 100644
--- a/tests/unistdio/test-u32-vasnprintf1.c
+++ b/tests/unistdio/test-u32-vasnprintf1.c
@@ -1,5 +1,5 @@
/* Test of u32_vasnprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u32-vasnprintf2.c b/tests/unistdio/test-u32-vasnprintf2.c
index b45fa8ef..6c52352f 100644
--- a/tests/unistdio/test-u32-vasnprintf2.c
+++ b/tests/unistdio/test-u32-vasnprintf2.c
@@ -1,5 +1,5 @@
/* Test of u32_vasnprintf() function in an ISO-8859-1 locale.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u32-vasnprintf3.c b/tests/unistdio/test-u32-vasnprintf3.c
index 1a73f248..361a2e1d 100644
--- a/tests/unistdio/test-u32-vasnprintf3.c
+++ b/tests/unistdio/test-u32-vasnprintf3.c
@@ -1,5 +1,5 @@
/* Test of u32_vasnprintf() function in an UTF-8 locale.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u32-vasprintf1.c b/tests/unistdio/test-u32-vasprintf1.c
index ac030cd6..52d62242 100644
--- a/tests/unistdio/test-u32-vasprintf1.c
+++ b/tests/unistdio/test-u32-vasprintf1.c
@@ -1,5 +1,5 @@
/* Test of u32_vasprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u32-vsnprintf1.c b/tests/unistdio/test-u32-vsnprintf1.c
index 94602d85..3c6713f8 100644
--- a/tests/unistdio/test-u32-vsnprintf1.c
+++ b/tests/unistdio/test-u32-vsnprintf1.c
@@ -1,5 +1,5 @@
/* Test of u32_vsnprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u32-vsprintf1.c b/tests/unistdio/test-u32-vsprintf1.c
index 2fd3b137..af9ea173 100644
--- a/tests/unistdio/test-u32-vsprintf1.c
+++ b/tests/unistdio/test-u32-vsprintf1.c
@@ -1,5 +1,5 @@
/* Test of u32_vsprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u8-asnprintf1.c b/tests/unistdio/test-u8-asnprintf1.c
index 49ee6134..2939e719 100644
--- a/tests/unistdio/test-u8-asnprintf1.c
+++ b/tests/unistdio/test-u8-asnprintf1.c
@@ -1,5 +1,5 @@
/* Test of u8_asnprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u8-asnprintf1.h b/tests/unistdio/test-u8-asnprintf1.h
index 90238c8e..6e9759ce 100644
--- a/tests/unistdio/test-u8-asnprintf1.h
+++ b/tests/unistdio/test-u8-asnprintf1.h
@@ -1,5 +1,5 @@
/* Test of u8_[v]asnprintf() function.
- 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 General Public License as published by
@@ -20,11 +20,10 @@ static void
test_function (uint8_t * (*my_asnprintf) (uint8_t *, size_t *, const char *, ...))
{
uint8_t buf[8];
- int size;
/* Test return value convention. */
- for (size = 0; size <= 8; size++)
+ for (int size = 0; size <= 8; size++)
{
size_t length = size;
uint8_t *result = my_asnprintf (NULL, &length, "%d", 12345);
@@ -35,7 +34,7 @@ test_function (uint8_t * (*my_asnprintf) (uint8_t *, size_t *, const char *, ...
free (result);
}
- for (size = 0; size <= 8; size++)
+ for (int size = 0; size <= 8; size++)
{
static const uint8_t initializer[] = "DEADBEEF";
static const uint8_t expected[] = "12345";
diff --git a/tests/unistdio/test-u8-printf1.h b/tests/unistdio/test-u8-printf1.h
index 1dd28469..e12500de 100644
--- a/tests/unistdio/test-u8-printf1.h
+++ b/tests/unistdio/test-u8-printf1.h
@@ -1,5 +1,5 @@
/* Test of u8_v[a]s[n]printf() function.
- 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 General Public License as published by
diff --git a/tests/unistdio/test-u8-vasnprintf1.c b/tests/unistdio/test-u8-vasnprintf1.c
index 2aaf839f..2be743e1 100644
--- a/tests/unistdio/test-u8-vasnprintf1.c
+++ b/tests/unistdio/test-u8-vasnprintf1.c
@@ -1,5 +1,5 @@
/* Test of u8_vasnprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u8-vasnprintf2.c b/tests/unistdio/test-u8-vasnprintf2.c
index 9fa03988..6ad7b368 100644
--- a/tests/unistdio/test-u8-vasnprintf2.c
+++ b/tests/unistdio/test-u8-vasnprintf2.c
@@ -1,5 +1,5 @@
/* Test of u8_vasnprintf() function in an ISO-8859-1 locale.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u8-vasnprintf3.c b/tests/unistdio/test-u8-vasnprintf3.c
index aab9dfe3..44539d52 100644
--- a/tests/unistdio/test-u8-vasnprintf3.c
+++ b/tests/unistdio/test-u8-vasnprintf3.c
@@ -1,5 +1,5 @@
/* Test of u8_vasnprintf() function in an UTF-8 locale.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u8-vasprintf1.c b/tests/unistdio/test-u8-vasprintf1.c
index 82512028..a9b9bc44 100644
--- a/tests/unistdio/test-u8-vasprintf1.c
+++ b/tests/unistdio/test-u8-vasprintf1.c
@@ -1,5 +1,5 @@
/* Test of u8_vasprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u8-vsnprintf1.c b/tests/unistdio/test-u8-vsnprintf1.c
index 015c1725..2bf41b26 100644
--- a/tests/unistdio/test-u8-vsnprintf1.c
+++ b/tests/unistdio/test-u8-vsnprintf1.c
@@ -1,5 +1,5 @@
/* Test of u8_vsnprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-u8-vsprintf1.c b/tests/unistdio/test-u8-vsprintf1.c
index 0d846de2..e1e597b8 100644
--- a/tests/unistdio/test-u8-vsprintf1.c
+++ b/tests/unistdio/test-u8-vsprintf1.c
@@ -1,5 +1,5 @@
/* Test of u8_vsprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-ulc-asnprintf1.c b/tests/unistdio/test-ulc-asnprintf1.c
index 5e40575c..2127d2e3 100644
--- a/tests/unistdio/test-ulc-asnprintf1.c
+++ b/tests/unistdio/test-ulc-asnprintf1.c
@@ -1,5 +1,5 @@
/* Test of ulc_asnprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-ulc-asnprintf1.h b/tests/unistdio/test-ulc-asnprintf1.h
index 0e7e9cff..ab7e0d89 100644
--- a/tests/unistdio/test-ulc-asnprintf1.h
+++ b/tests/unistdio/test-ulc-asnprintf1.h
@@ -1,5 +1,5 @@
/* Test of ulc_[v]asnprintf() functions.
- 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 General Public License as published by
@@ -20,11 +20,10 @@ static void
test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
{
char buf[8];
- int size;
/* Test return value convention. */
- for (size = 0; size <= 8; size++)
+ for (int size = 0; size <= 8; size++)
{
size_t length = size;
char *result = my_asnprintf (NULL, &length, "%d", 12345);
@@ -34,7 +33,7 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
free (result);
}
- for (size = 0; size <= 8; size++)
+ for (int size = 0; size <= 8; size++)
{
size_t length;
char *result;
diff --git a/tests/unistdio/test-ulc-printf1.h b/tests/unistdio/test-ulc-printf1.h
index 02e0372d..0b13116e 100644
--- a/tests/unistdio/test-ulc-printf1.h
+++ b/tests/unistdio/test-ulc-printf1.h
@@ -1,5 +1,5 @@
/* Test of ulc_v[a]s[n]printf() functions.
- 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 General Public License as published by
diff --git a/tests/unistdio/test-ulc-vasnprintf1.c b/tests/unistdio/test-ulc-vasnprintf1.c
index f662f4e9..32d2c1c5 100644
--- a/tests/unistdio/test-ulc-vasnprintf1.c
+++ b/tests/unistdio/test-ulc-vasnprintf1.c
@@ -1,5 +1,5 @@
/* Test of ulc_vasnprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-ulc-vasnprintf2.c b/tests/unistdio/test-ulc-vasnprintf2.c
index 5375c8e8..bbd50512 100644
--- a/tests/unistdio/test-ulc-vasnprintf2.c
+++ b/tests/unistdio/test-ulc-vasnprintf2.c
@@ -1,5 +1,5 @@
/* Test of ulc_vasnprintf() function in an ISO-8859-1 locale.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-ulc-vasnprintf3.c b/tests/unistdio/test-ulc-vasnprintf3.c
index e71887c8..b35aefc9 100644
--- a/tests/unistdio/test-ulc-vasnprintf3.c
+++ b/tests/unistdio/test-ulc-vasnprintf3.c
@@ -1,5 +1,5 @@
/* Test of ulc_vasnprintf() function in an UTF-8 locale.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-ulc-vasprintf1.c b/tests/unistdio/test-ulc-vasprintf1.c
index 3eed14f9..3a449796 100644
--- a/tests/unistdio/test-ulc-vasprintf1.c
+++ b/tests/unistdio/test-ulc-vasprintf1.c
@@ -1,5 +1,5 @@
/* Test of ulc_vasprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-ulc-vsnprintf1.c b/tests/unistdio/test-ulc-vsnprintf1.c
index 344fd353..66a391fd 100644
--- a/tests/unistdio/test-ulc-vsnprintf1.c
+++ b/tests/unistdio/test-ulc-vsnprintf1.c
@@ -1,5 +1,5 @@
/* Test of ulc_vsnprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-ulc-vsprintf1.c b/tests/unistdio/test-ulc-vsprintf1.c
index 1f8bb8ac..7c5deb0d 100644
--- a/tests/unistdio/test-ulc-vsprintf1.c
+++ b/tests/unistdio/test-ulc-vsprintf1.c
@@ -1,5 +1,5 @@
/* Test of ulc_vsprintf() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/unistdio/test-unistdio-h.c b/tests/unistdio/test-unistdio-h.c
index b5a085d2..a4fef93f 100644
--- a/tests/unistdio/test-unistdio-h.c
+++ b/tests/unistdio/test-unistdio-h.c
@@ -1,5 +1,5 @@
/* Test of <unistdio.h>.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-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
diff --git a/tests/unistr/test-chr.h b/tests/unistr/test-chr.h
index 7e95af1b..fe007261 100644
--- a/tests/unistr/test-chr.h
+++ b/tests/unistr/test-chr.h
@@ -1,5 +1,5 @@
/* Test of uN_chr() functions.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -93,43 +93,35 @@ main (void)
}
/* Alignment tests. */
- {
- int i, j;
- for (i = 0; i < 32; i++)
- {
- for (j = 0; j < 128; j++)
- input[i + j] = j;
- for (j = 0; j < 128; j++)
- {
- ASSERT (U_CHR (input + i, 128, j) == input + i + j);
- }
- }
- }
+ for (int i = 0; i < 32; i++)
+ {
+ for (int j = 0; j < 128; j++)
+ input[i + j] = j;
+ for (int j = 0; j < 128; j++)
+ {
+ ASSERT (U_CHR (input + i, 128, j) == input + i + j);
+ }
+ }
/* Check that uN_chr() does not read past the first occurrence of the
byte being searched. */
{
UNIT *page_boundary = zerosize_ptr ();
- size_t n;
if (page_boundary != NULL)
{
- for (n = 1; n <= 500 / sizeof (UNIT); n++)
+ for (size_t n = 1; n <= 500 / sizeof (UNIT); n++)
{
UNIT *mem = page_boundary - n;
U_SET (mem, 'X', n);
ASSERT (U_CHR (mem, n, 'U') == NULL);
- {
- size_t i;
-
- for (i = 0; i < n; i++)
- {
- mem[i] = 'U';
- ASSERT (U_CHR (mem, 4000, 'U') == mem + i);
- mem[i] = 'X';
- }
- }
+ for (size_t i = 0; i < n; i++)
+ {
+ mem[i] = 'U';
+ ASSERT (U_CHR (mem, 4000, 'U') == mem + i);
+ mem[i] = 'X';
+ }
}
}
}
diff --git a/tests/unistr/test-cmp.h b/tests/unistr/test-cmp.h
index 94e3d3f5..84f89287 100644
--- a/tests/unistr/test-cmp.h
+++ b/tests/unistr/test-cmp.h
@@ -1,5 +1,5 @@
/* Test of uN_cmp() functions.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -78,21 +78,19 @@ test_cmp (void)
{
UNIT foo[21];
UNIT bar[21];
- int i;
- for (i = 0; i < 4; i++)
+ for (int i = 0; i < 4; i++)
{
UNIT *a = foo + i;
UNIT *b = bar + i;
- int j;
- for (j = 0; j < 8; j++)
+ for (int j = 0; j < 8; j++)
a[j] = '-';
a[8] = '0';
- for (j = 9; j < 16; j++)
+ for (int j = 9; j < 16; j++)
a[j] = '1';
- for (j = 0; j < 8; j++)
+ for (int j = 0; j < 8; j++)
b[j] = '-';
b[8] = '1';
- for (j = 9; j < 16; j++)
+ for (int j = 9; j < 16; j++)
b[j] = '0';
ASSERT (U_CMP (a, b, 16) < 0);
}
diff --git a/tests/unistr/test-cmp2.h b/tests/unistr/test-cmp2.h
index d032bd89..5bf70674 100644
--- a/tests/unistr/test-cmp2.h
+++ b/tests/unistr/test-cmp2.h
@@ -1,5 +1,5 @@
/* Test of uN_cmp2() functions.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
diff --git a/tests/unistr/test-cpy-alloc.h b/tests/unistr/test-cpy-alloc.h
index 4a2bfa05..9c490875 100644
--- a/tests/unistr/test-cpy-alloc.h
+++ b/tests/unistr/test-cpy-alloc.h
@@ -1,5 +1,5 @@
/* Test of uN_cpy_alloc() functions.
- 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 General Public License as published by
@@ -22,15 +22,13 @@ main ()
/* Test small copying operations. */
{
static const UNIT src[] = { 'c', 'l', 'i', 'm', 'a', 't', 'e' };
- size_t n;
- for (n = 0; n <= SIZEOF (src); n++)
+ for (size_t n = 0; n <= SIZEOF (src); n++)
{
UNIT *result = U_CPY_ALLOC (src, n);
- size_t i;
ASSERT (result != NULL);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
ASSERT (result[i] == src[i]);
free (result);
diff --git a/tests/unistr/test-cpy.h b/tests/unistr/test-cpy.h
index e1a167bb..db264f43 100644
--- a/tests/unistr/test-cpy.h
+++ b/tests/unistr/test-cpy.h
@@ -1,5 +1,5 @@
/* Test of uN_cpy() functions.
- 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 General Public License as published by
@@ -22,19 +22,17 @@ main ()
/* Test small copying operations. */
{
static const UNIT src[] = { 'c', 'l', 'i', 'm', 'a', 't', 'e' };
- size_t n;
- for (n = 0; n <= SIZEOF (src); n++)
+ for (size_t n = 0; n <= SIZEOF (src); n++)
{
UNIT dest[1 + SIZEOF (src) + 1] =
{ MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC };
UNIT *ret;
- size_t i;
ret = U_CPY (dest + 1, src, n);
ASSERT (ret == dest + 1);
ASSERT (dest[0] == MAGIC);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
ASSERT (dest[1 + i] == src[i]);
ASSERT (dest[1 + n] == MAGIC);
}
diff --git a/tests/unistr/test-move.h b/tests/unistr/test-move.h
index 765dcb5f..a4a22e45 100644
--- a/tests/unistr/test-move.h
+++ b/tests/unistr/test-move.h
@@ -1,5 +1,5 @@
/* Test of uN_move() functions.
- 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 General Public License as published by
@@ -22,19 +22,17 @@ main ()
/* Test copying operations with disjoint source and destination. */
{
static const UNIT src[] = { 'c', 'l', 'i', 'm', 'a', 't', 'e' };
- size_t n;
- for (n = 0; n <= SIZEOF (src); n++)
+ for (size_t n = 0; n <= SIZEOF (src); n++)
{
UNIT dest[1 + SIZEOF (src) + 1] =
{ MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC };
UNIT *ret;
- size_t i;
ret = U_MOVE (dest + 1, src, n);
ASSERT (ret == dest + 1);
ASSERT (dest[0] == MAGIC);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
ASSERT (dest[1 + i] == src[i]);
ASSERT (dest[1 + n] == MAGIC);
}
@@ -43,23 +41,21 @@ main ()
/* Test copying operations with overlap, in-place. */
{
static const UNIT src[] = { 'c', 'l', 'i', 'm', 'a', 't', 'e' };
- size_t n;
- for (n = 0; n <= SIZEOF (src); n++)
+ for (size_t n = 0; n <= SIZEOF (src); n++)
{
UNIT dest[1 + SIZEOF (src) + 1];
UNIT *ret;
- size_t i;
dest[0] = MAGIC;
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
dest[1 + i] = src[i];
dest[1 + n] = MAGIC;
ret = U_MOVE (dest + 1, dest + 1, n);
ASSERT (ret == dest + 1);
ASSERT (dest[0] == MAGIC);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
ASSERT (dest[1 + i] == src[i]);
ASSERT (dest[1 + n] == MAGIC);
}
@@ -69,23 +65,19 @@ main ()
{
static const UNIT src[] = { 'c', 'l', 'i', 'm', 'a', 't', 'e' };
static const UNIT src2[] = { 'C', 'L', 'I', 'M', 'A', 'T', 'E' };
- size_t d;
ASSERT (SIZEOF (src) == SIZEOF (src2));
- for (d = 0; d <= SIZEOF (src); d++)
+ for (size_t d = 0; d <= SIZEOF (src); d++)
{
- size_t n;
-
- for (n = 0; n <= SIZEOF (src); n++)
+ for (size_t n = 0; n <= SIZEOF (src); n++)
{
UNIT dest[1 + 2 * SIZEOF (src) + 1];
UNIT *ret;
- size_t i;
dest[0] = MAGIC;
- for (i = 0; i < SIZEOF (src2); i++)
+ for (size_t i = 0; i < SIZEOF (src2); i++)
dest[1 + i] = src2[i];
- for (i = 0; i < SIZEOF (src); i++)
+ for (size_t i = 0; i < SIZEOF (src); i++)
dest[1 + SIZEOF (src) + i] = src[i];
dest[1 + 2 * SIZEOF (src)] = MAGIC;
@@ -93,13 +85,13 @@ main ()
U_MOVE (dest + 1 + SIZEOF (src) - d, dest + 1 + SIZEOF (src), n);
ASSERT (ret == dest + 1 + SIZEOF (src) - d);
ASSERT (dest[0] == MAGIC);
- for (i = 0; i < SIZEOF (src) - d; i++)
+ for (size_t i = 0; i < SIZEOF (src) - d; i++)
ASSERT (dest[1 + i] == src2[i]);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
ASSERT (dest[1 + SIZEOF (src) - d + i] == src[i]);
- for (i = SIZEOF (src) - d + n; i < SIZEOF (src2); i++)
+ for (size_t i = SIZEOF (src) - d + n; i < SIZEOF (src2); i++)
ASSERT (dest[1 + i] == src2[i]);
- for (i = (n >= d ? n - d : 0); i < SIZEOF (src); i++)
+ for (size_t i = (n >= d ? n - d : 0); i < SIZEOF (src); i++)
ASSERT (dest[1 + SIZEOF (src) + i] == src[i]);
ASSERT (dest[1 + 2 * SIZEOF (src)] == MAGIC);
}
@@ -110,36 +102,32 @@ main ()
{
static const UNIT src[] = { 'c', 'l', 'i', 'm', 'a', 't', 'e' };
static const UNIT src2[] = { 'C', 'L', 'I', 'M', 'A', 'T', 'E' };
- size_t d;
ASSERT (SIZEOF (src) == SIZEOF (src2));
- for (d = 0; d <= SIZEOF (src); d++)
+ for (size_t d = 0; d <= SIZEOF (src); d++)
{
- size_t n;
-
- for (n = 0; n <= SIZEOF (src); n++)
+ for (size_t n = 0; n <= SIZEOF (src); n++)
{
UNIT dest[1 + 2 * SIZEOF (src) + 1];
UNIT *ret;
- size_t i;
dest[0] = MAGIC;
- for (i = 0; i < SIZEOF (src); i++)
+ for (size_t i = 0; i < SIZEOF (src); i++)
dest[1 + i] = src[i];
- for (i = 0; i < SIZEOF (src2); i++)
+ for (size_t i = 0; i < SIZEOF (src2); i++)
dest[1 + SIZEOF (src) + i] = src2[i];
dest[1 + 2 * SIZEOF (src)] = MAGIC;
ret = U_MOVE (dest + 1 + d, dest + 1, n);
ASSERT (ret == dest + 1 + d);
ASSERT (dest[0] == MAGIC);
- for (i = 0; i < d; i++)
+ for (size_t i = 0; i < d; i++)
ASSERT (dest[1 + i] == src[i]);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
ASSERT (dest[1 + d + i] == src[i]);
- for (i = d + n; i < SIZEOF (src); i++)
+ for (size_t i = d + n; i < SIZEOF (src); i++)
ASSERT (dest[1 + i] == src[i]);
- for (i = (d + n >= SIZEOF (src) ? d + n - SIZEOF (src) : 0);
+ for (size_t i = (d + n >= SIZEOF (src) ? d + n - SIZEOF (src) : 0);
i < SIZEOF (src2);
i++)
ASSERT (dest[1 + SIZEOF (src) + i] == src2[i]);
diff --git a/tests/unistr/test-pcpy.h b/tests/unistr/test-pcpy.h
index c7298dca..62199043 100644
--- a/tests/unistr/test-pcpy.h
+++ b/tests/unistr/test-pcpy.h
@@ -1,5 +1,5 @@
/* Test of uN_pcpy() functions.
- 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 General Public License as published by
@@ -22,19 +22,17 @@ main ()
/* Test small copying operations. */
{
static const UNIT src[] = { 'c', 'l', 'i', 'm', 'a', 't', 'e' };
- size_t n;
- for (n = 0; n <= SIZEOF (src); n++)
+ for (size_t n = 0; n <= SIZEOF (src); n++)
{
UNIT dest[1 + SIZEOF (src) + 1] =
{ MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC };
UNIT *ret;
- size_t i;
ret = U_PCPY (dest + 1, src, n);
ASSERT (ret == dest + 1 + n);
ASSERT (dest[0] == MAGIC);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
ASSERT (dest[1 + i] == src[i]);
ASSERT (dest[1 + n] == MAGIC);
}
diff --git a/tests/unistr/test-set.h b/tests/unistr/test-set.h
index 133ea638..36fb6d00 100644
--- a/tests/unistr/test-set.h
+++ b/tests/unistr/test-set.h
@@ -1,5 +1,5 @@
/* Test of uN_set() functions.
- 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 General Public License as published by
@@ -19,26 +19,21 @@
int
main ()
{
- {
#define NMAX 7
- size_t n;
-
- for (n = 0; n <= NMAX; n++)
- {
- UNIT dest[1 + NMAX + 1] =
- { MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC };
- UNIT *ret;
- size_t i;
-
- ret = U_SET (dest + 1, VALUE, n);
- ASSERT (ret == dest + 1);
- ASSERT (dest[0] == MAGIC);
- for (i = 0; i < n; i++)
- ASSERT (dest[1 + i] == VALUE);
- ASSERT (dest[1 + n] == MAGIC);
- }
+ for (size_t n = 0; n <= NMAX; n++)
+ {
+ UNIT dest[1 + NMAX + 1] =
+ { MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC };
+ UNIT *ret;
+
+ ret = U_SET (dest + 1, VALUE, n);
+ ASSERT (ret == dest + 1);
+ ASSERT (dest[0] == MAGIC);
+ for (size_t i = 0; i < n; i++)
+ ASSERT (dest[1 + i] == VALUE);
+ ASSERT (dest[1 + n] == MAGIC);
+ }
#undef NMAX
- }
return test_exit_status;
}
diff --git a/tests/unistr/test-stpcpy.h b/tests/unistr/test-stpcpy.h
index d8b433d5..859f4869 100644
--- a/tests/unistr/test-stpcpy.h
+++ b/tests/unistr/test-stpcpy.h
@@ -1,5 +1,5 @@
/* Test of uN_stpcpy() functions.
- 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 General Public License as published by
@@ -22,22 +22,20 @@ main ()
/* Test small copying operations. */
{
static const UNIT src[] = { 'c', 'l', 'i', 'm', 'a', 't', 'e', 0 };
- size_t n;
- for (n = 1; n <= SIZEOF (src); n++)
+ for (size_t n = 1; n <= SIZEOF (src); n++)
{
UNIT dest[1 + SIZEOF (src) + 1] =
{ MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC,
MAGIC
};
UNIT *result;
- size_t i;
result = U_STPCPY (dest + 1, src + SIZEOF (src) - n);
ASSERT (result == dest + n);
ASSERT (dest[0] == MAGIC);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
ASSERT (dest[1 + i] == src[SIZEOF (src) - n + i]);
ASSERT (dest[1 + n] == MAGIC);
}
diff --git a/tests/unistr/test-stpncpy.h b/tests/unistr/test-stpncpy.h
index c651a83e..ff283868 100644
--- a/tests/unistr/test-stpncpy.h
+++ b/tests/unistr/test-stpncpy.h
@@ -1,5 +1,5 @@
/* Test of uN_stpncpy() functions.
- 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 General Public License as published by
@@ -21,22 +21,24 @@ check_single (const UNIT *input, size_t length, size_t n)
{
UNIT *dest;
UNIT *result;
- size_t i;
dest = (UNIT *) malloc ((1 + n + 1) * sizeof (UNIT));
ASSERT (dest != NULL);
- for (i = 0; i < 1 + n + 1; i++)
+ for (size_t i = 0; i < 1 + n + 1; i++)
dest[i] = MAGIC;
result = U_STPNCPY (dest + 1, input, n);
ASSERT (result == dest + 1 + (n <= length ? n : length));
ASSERT (dest[0] == MAGIC);
- for (i = 0; i < (n <= length ? n : length + 1); i++)
- ASSERT (dest[1 + i] == input[i]);
- for (; i < n; i++)
- ASSERT (dest[1 + i] == 0);
+ {
+ size_t i;
+ for (i = 0; i < (n <= length ? n : length + 1); i++)
+ ASSERT (dest[1 + i] == input[i]);
+ for (; i < n; i++)
+ ASSERT (dest[1 + i] == 0);
+ }
ASSERT (dest[1 + n] == MAGIC);
free (dest);
@@ -46,13 +48,12 @@ static void
check (const UNIT *input, size_t input_length)
{
size_t length;
- size_t n;
ASSERT (input_length > 0);
ASSERT (input[input_length - 1] == 0);
length = input_length - 1; /* = U_STRLEN (input) */
- for (n = 0; n <= 2 * length + 2; n++)
+ for (size_t n = 0; n <= 2 * length + 2; n++)
check_single (input, length, n);
/* Check that U_STPNCPY (D, S, N) does not look at more than
@@ -62,14 +63,13 @@ check (const UNIT *input, size_t input_length)
if (page_boundary != NULL)
{
- for (n = 0; n <= 2 * length + 2; n++)
+ for (size_t n = 0; n <= 2 * length + 2; n++)
{
size_t n_to_copy = (n <= length ? n : length + 1);
UNIT *copy;
- size_t i;
copy = (UNIT *) page_boundary - n_to_copy;
- for (i = 0; i < n_to_copy; i++)
+ for (size_t i = 0; i < n_to_copy; i++)
copy[i] = input[i];
check_single (copy, length, n);
diff --git a/tests/unistr/test-strcat.h b/tests/unistr/test-strcat.h
index cd0fb9f0..20d7564d 100644
--- a/tests/unistr/test-strcat.h
+++ b/tests/unistr/test-strcat.h
@@ -1,5 +1,5 @@
/* Test of uN_strcat() functions.
- 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 General Public License as published by
@@ -23,20 +23,17 @@ main ()
{
static const UNIT base[] = { 'C', 'h', 'a', 'n', 'g', 'i', 'n', 'g', 0 };
static const UNIT src[] = { 'c', 'l', 'i', 'm', 'a', 't', 'e', 0 };
- size_t m;
- size_t n;
- for (m = 0; m < SIZEOF (base); m++)
- for (n = 1; n <= SIZEOF (src); n++)
+ for (size_t m = 0; m < SIZEOF (base); m++)
+ for (size_t n = 1; n <= SIZEOF (src); n++)
{
UNIT dest[1 + (SIZEOF (base) - 1) + SIZEOF (src) + 1] =
{ MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC,
MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC
};
UNIT *result;
- size_t i;
- for (i = 0; i < m; i++)
+ for (size_t i = 0; i < m; i++)
dest[1 + i] = base[i];
dest[1 + m] = 0;
@@ -44,9 +41,9 @@ main ()
ASSERT (result == dest + 1);
ASSERT (dest[0] == MAGIC);
- for (i = 0; i < m; i++)
+ for (size_t i = 0; i < m; i++)
ASSERT (dest[1 + i] == base[i]);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
ASSERT (dest[1 + m + i] == src[SIZEOF (src) - n + i]);
ASSERT (dest[1 + m + n] == MAGIC);
}
diff --git a/tests/unistr/test-strchr.h b/tests/unistr/test-strchr.h
index c5740a5d..e078e232 100644
--- a/tests/unistr/test-strchr.h
+++ b/tests/unistr/test-strchr.h
@@ -1,5 +1,5 @@
/* Test of uN_strchr() functions.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-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
@@ -86,28 +86,24 @@ test_strchr (void)
}
/* Alignment tests. */
- {
- int i, j;
- for (i = 0; i < 32; i++)
- {
- for (j = 0; j < 127; j++)
- input[i + j] = j + 1;
- input[i + 128] = 0;
- for (j = 0; j < 127; j++)
- {
- ASSERT (U_STRCHR (input + i, j + 1) == input + i + j);
- }
- }
- }
+ for (int i = 0; i < 32; i++)
+ {
+ for (int j = 0; j < 127; j++)
+ input[i + j] = j + 1;
+ input[i + 128] = 0;
+ for (int j = 0; j < 127; j++)
+ {
+ ASSERT (U_STRCHR (input + i, j + 1) == input + i + j);
+ }
+ }
/* Check that uN_strchr() does not read past the end of the string. */
{
char *page_boundary = (char *) zerosize_ptr ();
- size_t n;
if (page_boundary != NULL)
{
- for (n = 2; n <= 500 / sizeof (UNIT); n++)
+ for (size_t n = 2; n <= 500 / sizeof (UNIT); n++)
{
UNIT *mem = (UNIT *) (page_boundary - n * sizeof (UNIT));
U_SET (mem, 'X', n - 2);
@@ -130,27 +126,22 @@ test_strchr (void)
byte being searched. */
{
char *page_boundary = (char *) zerosize_ptr ();
- size_t n;
if (page_boundary != NULL)
{
- for (n = 2; n <= 500 / sizeof (UNIT); n++)
+ for (size_t n = 2; n <= 500 / sizeof (UNIT); n++)
{
UNIT *mem = (UNIT *) (page_boundary - n * sizeof (UNIT));
U_SET (mem, 'X', n - 1);
mem[n - 1] = 0;
ASSERT (U_STRCHR (mem, 'U') == NULL);
- {
- size_t i;
-
- for (i = 0; i < n; i++)
- {
- mem[i] = 'U';
- ASSERT (U_STRCHR (mem, 'U') == mem + i);
- mem[i] = 'X';
- }
- }
+ for (size_t i = 0; i < n; i++)
+ {
+ mem[i] = 'U';
+ ASSERT (U_STRCHR (mem, 'U') == mem + i);
+ mem[i] = 'X';
+ }
}
}
}
diff --git a/tests/unistr/test-strcmp.h b/tests/unistr/test-strcmp.h
index 97cb203a..234a2fbf 100644
--- a/tests/unistr/test-strcmp.h
+++ b/tests/unistr/test-strcmp.h
@@ -1,5 +1,5 @@
/* Test of uN_strcmp() and uN_strcoll() functions.
- 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 General Public License as published by
diff --git a/tests/unistr/test-strcpy.h b/tests/unistr/test-strcpy.h
index 6a1d81e8..a0818bb6 100644
--- a/tests/unistr/test-strcpy.h
+++ b/tests/unistr/test-strcpy.h
@@ -1,5 +1,5 @@
/* Test of uN_strcpy() functions.
- 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 General Public License as published by
@@ -22,22 +22,20 @@ main ()
/* Test small copying operations. */
{
static const UNIT src[] = { 'c', 'l', 'i', 'm', 'a', 't', 'e', 0 };
- size_t n;
- for (n = 1; n <= SIZEOF (src); n++)
+ for (size_t n = 1; n <= SIZEOF (src); n++)
{
UNIT dest[1 + SIZEOF (src) + 1] =
{ MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC, MAGIC,
MAGIC
};
UNIT *result;
- size_t i;
result = U_STRCPY (dest + 1, src + SIZEOF (src) - n);
ASSERT (result == dest + 1);
ASSERT (dest[0] == MAGIC);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
ASSERT (dest[1 + i] == src[SIZEOF (src) - n + i]);
ASSERT (dest[1 + n] == MAGIC);
}
diff --git a/tests/unistr/test-strdup.h b/tests/unistr/test-strdup.h
index 4f59bc06..9d53a544 100644
--- a/tests/unistr/test-strdup.h
+++ b/tests/unistr/test-strdup.h
@@ -1,5 +1,5 @@
/* Test of uN_strdup() functions.
- 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 General Public License as published by
@@ -22,15 +22,13 @@ main ()
/* Test small copying operations. */
{
static const UNIT src[] = { 'c', 'l', 'i', 'm', 'a', 't', 'e', 0 };
- size_t n;
- for (n = 1; n <= SIZEOF (src); n++)
+ for (size_t n = 1; n <= SIZEOF (src); n++)
{
UNIT *result = U_STRDUP (src + SIZEOF (src) - n);
- size_t i;
ASSERT (result != NULL);
- for (i = 0; i < n; i++)
+ for (size_t i = 0; i < n; i++)
ASSERT (result[i] == src[SIZEOF (src) - n + i]);
free (result);
diff --git a/tests/unistr/test-strncat.h b/tests/unistr/test-strncat.h
index 0ba63afe..c2533c7c 100644
--- a/tests/unistr/test-strncat.h
+++ b/tests/unistr/test-strncat.h
@@ -1,5 +1,5 @@
/* Test of uN_strncat() functions.
- 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 General Public License as published by
@@ -20,34 +20,35 @@ static void
check_single (const UNIT *input, size_t length, size_t n)
{
static const UNIT base[] = { 'C', 'h', 'a', 'n', 'g', 'i', 'n', 'g', 0 };
- size_t m;
- for (m = 0; m < SIZEOF (base); m++)
+ for (size_t m = 0; m < SIZEOF (base); m++)
{
UNIT *dest;
UNIT *result;
- size_t i;
dest = (UNIT *) malloc ((1 + m + n + 2) * sizeof (UNIT));
ASSERT (dest != NULL);
dest[0] = MAGIC;
- for (i = 0; i < m; i++)
+ for (size_t i = 0; i < m; i++)
dest[1 + i] = base[i];
dest[1 + m] = 0;
- for (i = 1; i < n + 2; i++)
+ for (size_t i = 1; i < n + 2; i++)
dest[1 + m + i] = MAGIC;
result = U_STRNCAT (dest + 1, input, n);
ASSERT (result == dest + 1);
ASSERT (dest[0] == MAGIC);
- for (i = 0; i < m; i++)
+ for (size_t i = 0; i < m; i++)
ASSERT (dest[1 + i] == base[i]);
- for (i = 0; i < (n <= length ? n : length); i++)
- ASSERT (dest[1 + m + i] == input[i]);
- ASSERT (dest[1 + m + i] == 0);
- ASSERT (dest[1 + m + i + 1] == MAGIC);
+ {
+ size_t i;
+ for (i = 0; i < (n <= length ? n : length); i++)
+ ASSERT (dest[1 + m + i] == input[i]);
+ ASSERT (dest[1 + m + i] == 0);
+ ASSERT (dest[1 + m + i + 1] == MAGIC);
+ }
free (dest);
}
@@ -57,13 +58,12 @@ static void
check (const UNIT *input, size_t input_length)
{
size_t length;
- size_t n;
ASSERT (input_length > 0);
ASSERT (input[input_length - 1] == 0);
length = input_length - 1; /* = U_STRLEN (input) */
- for (n = 0; n <= 2 * length + 2; n++)
+ for (size_t n = 0; n <= 2 * length + 2; n++)
check_single (input, length, n);
/* Check that U_STRNCAT (D, S, N) does not look at more than
@@ -73,14 +73,13 @@ check (const UNIT *input, size_t input_length)
if (page_boundary != NULL)
{
- for (n = 0; n <= 2 * length + 2; n++)
+ for (size_t n = 0; n <= 2 * length + 2; n++)
{
size_t n_to_copy = (n <= length ? n : length + 1);
UNIT *copy;
- size_t i;
copy = (UNIT *) page_boundary - n_to_copy;
- for (i = 0; i < n_to_copy; i++)
+ for (size_t i = 0; i < n_to_copy; i++)
copy[i] = input[i];
check_single (copy, length, n);
diff --git a/tests/unistr/test-strncmp.h b/tests/unistr/test-strncmp.h
index bbd0aa68..033a24fb 100644
--- a/tests/unistr/test-strncmp.h
+++ b/tests/unistr/test-strncmp.h
@@ -1,5 +1,5 @@
/* Test of uN_strncmp() functions.
- 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 General Public License as published by
diff --git a/tests/unistr/test-strncpy.h b/tests/unistr/test-strncpy.h
index e24fa507..3e4afb8e 100644
--- a/tests/unistr/test-strncpy.h
+++ b/tests/unistr/test-strncpy.h
@@ -1,5 +1,5 @@
/* Test of uN_strncpy() functions.
- 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 General Public License as published by
@@ -21,22 +21,24 @@ check_single (const UNIT *input, size_t length, size_t n)
{
UNIT *dest;
UNIT *result;
- size_t i;
dest = (UNIT *) malloc ((1 + n + 1) * sizeof (UNIT));
ASSERT (dest != NULL);
- for (i = 0; i < 1 + n + 1; i++)
+ for (size_t i = 0; i < 1 + n + 1; i++)
dest[i] = MAGIC;
result = U_STRNCPY (dest + 1, input, n);
ASSERT (result == dest + 1);
ASSERT (dest[0] == MAGIC);
- for (i = 0; i < (n <= length ? n : length + 1); i++)
- ASSERT (dest[1 + i] == input[i]);
- for (; i < n; i++)
- ASSERT (dest[1 + i] == 0);
+ {
+ size_t i;
+ for (i = 0; i < (n <= length ? n : length + 1); i++)
+ ASSERT (dest[1 + i] == input[i]);
+ for (; i < n; i++)
+ ASSERT (dest[1 + i] == 0);
+ }
ASSERT (dest[1 + n] == MAGIC);
free (dest);
@@ -46,13 +48,12 @@ static void
check (const UNIT *input, size_t input_length)
{
size_t length;
- size_t n;
ASSERT (input_length > 0);
ASSERT (input[input_length - 1] == 0);
length = input_length - 1; /* = U_STRLEN (input) */
- for (n = 0; n <= 2 * length + 2; n++)
+ for (size_t n = 0; n <= 2 * length + 2; n++)
check_single (input, length, n);
/* Check that U_STRNCPY (D, S, N) does not look at more than
@@ -62,14 +63,13 @@ check (const UNIT *input, size_t input_length)
if (page_boundary != NULL)
{
- for (n = 0; n <= 2 * length + 2; n++)
+ for (size_t n = 0; n <= 2 * length + 2; n++)
{
size_t n_to_copy = (n <= length ? n : length + 1);
UNIT *copy;
- size_t i;
copy = (UNIT *) page_boundary - n_to_copy;
- for (i = 0; i < n_to_copy; i++)
+ for (size_t i = 0; i < n_to_copy; i++)
copy[i] = input[i];
check_single (copy, length, n);
diff --git a/tests/unistr/test-strnlen.h b/tests/unistr/test-strnlen.h
index fd0c25cc..e8aff09c 100644
--- a/tests/unistr/test-strnlen.h
+++ b/tests/unistr/test-strnlen.h
@@ -1,5 +1,5 @@
/* Test of uN_strnlen() functions.
- 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 General Public License as published by
@@ -27,13 +27,12 @@ static void
check (const UNIT *input, size_t input_length)
{
size_t length;
- size_t n;
ASSERT (input_length > 0);
ASSERT (input[input_length - 1] == 0);
length = input_length - 1; /* = U_STRLEN (input) */
- for (n = 0; n <= 2 * length + 2; n++)
+ for (size_t n = 0; n <= 2 * length + 2; n++)
check_single (input, length, n);
/* Check that U_STRNLEN (S, N) does not look at more than
@@ -43,14 +42,13 @@ check (const UNIT *input, size_t input_length)
if (page_boundary != NULL)
{
- for (n = 0; n <= 2 * length + 2; n++)
+ for (size_t n = 0; n <= 2 * length + 2; n++)
{
size_t n_to_copy = (n <= length ? n : length + 1);
UNIT *copy;
- size_t i;
copy = (UNIT *) page_boundary - n_to_copy;
- for (i = 0; i < n_to_copy; i++)
+ for (size_t i = 0; i < n_to_copy; i++)
copy[i] = input[i];
check_single (copy, length, n);
diff --git a/tests/unistr/test-u-strstr.h b/tests/unistr/test-u-strstr.h
index 826089d9..9676072a 100644
--- a/tests/unistr/test-u-strstr.h
+++ b/tests/unistr/test-u-strstr.h
@@ -1,5 +1,5 @@
/* Test of uN_strstr() functions.
- Copyright (C) 2004, 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2007-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
@@ -130,10 +130,8 @@ test_u_strstr (void)
UNIT *haystack = (UNIT *) malloc ((m + 1) * sizeof (UNIT));
if (haystack != NULL)
{
- size_t i;
-
haystack[0] = 'B';
- for (i = 1; i < m; i++)
+ for (size_t i = 1; i < m; i++)
haystack[i] = 'A';
haystack[m] = '\0';
@@ -166,9 +164,7 @@ test_u_strstr (void)
UNIT *needle = (UNIT *) malloc ((m + 1) * sizeof (UNIT));
if (needle != NULL)
{
- size_t i;
-
- for (i = 0; i < m; i++)
+ for (size_t i = 0; i < m; i++)
needle[i] = 'A';
needle[m] = '\0';
@@ -188,15 +184,14 @@ test_u_strstr (void)
UNIT *needle = (UNIT *) malloc ((m + 2) * sizeof (UNIT));
if (haystack != NULL && needle != NULL)
{
- size_t i;
const UNIT *result;
- for (i = 0; i < 2 * m; i++)
+ for (size_t i = 0; i < 2 * m; i++)
haystack[i] = 'A';
haystack[2 * m] = 'B';
haystack[2 * m + 1] = 0;
- for (i = 0; i < m; i++)
+ for (size_t i = 0; i < m; i++)
needle[i] = 'A';
needle[m] = 'B';
needle[m + 1] = 0;
diff --git a/tests/unistr/test-u-strtok.h b/tests/unistr/test-u-strtok.h
index 6f73baf7..a4705104 100644
--- a/tests/unistr/test-u-strtok.h
+++ b/tests/unistr/test-u-strtok.h
@@ -1,5 +1,5 @@
/* Test of uN_strtok() functions.
- Copyright (C) 2015-2025 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
diff --git a/tests/unistr/test-u16-check.c b/tests/unistr/test-u16-check.c
index 5e6c5daf..c45867b7 100644
--- a/tests/unistr/test-u16-check.c
+++ b/tests/unistr/test-u16-check.c
@@ -1,5 +1,5 @@
/* Test of u16_check() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-chr.c b/tests/unistr/test-u16-chr.c
index 3457cd91..eb56dea7 100644
--- a/tests/unistr/test-u16-chr.c
+++ b/tests/unistr/test-u16-chr.c
@@ -1,5 +1,5 @@
/* Test of u16_chr() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-cmp.c b/tests/unistr/test-u16-cmp.c
index 87ef97cf..501a60af 100644
--- a/tests/unistr/test-u16-cmp.c
+++ b/tests/unistr/test-u16-cmp.c
@@ -1,5 +1,5 @@
/* Test of u16_cmp() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-cmp2.c b/tests/unistr/test-u16-cmp2.c
index 274aee7c..4c825bc3 100644
--- a/tests/unistr/test-u16-cmp2.c
+++ b/tests/unistr/test-u16-cmp2.c
@@ -1,5 +1,5 @@
/* Test of u16_cmp2() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-cpy-alloc.c b/tests/unistr/test-u16-cpy-alloc.c
index 0398e100..9842d77e 100644
--- a/tests/unistr/test-u16-cpy-alloc.c
+++ b/tests/unistr/test-u16-cpy-alloc.c
@@ -1,5 +1,5 @@
/* Test of u16_cpy_alloc() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-cpy.c b/tests/unistr/test-u16-cpy.c
index 5cdfbc73..8985fced 100644
--- a/tests/unistr/test-u16-cpy.c
+++ b/tests/unistr/test-u16-cpy.c
@@ -1,5 +1,5 @@
/* Test of u16_cpy() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-mblen.c b/tests/unistr/test-u16-mblen.c
index 6d0c4765..b2fb5501 100644
--- a/tests/unistr/test-u16-mblen.c
+++ b/tests/unistr/test-u16-mblen.c
@@ -1,5 +1,5 @@
/* Test of u16_mblen() function.
- 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 General Public License as published by
@@ -43,10 +43,9 @@ main ()
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint16_t buf[1];
- for (c = 1; c < 0x80; c++)
+ for (ucs4_t c = 1; c < 0x80; c++)
{
buf[0] = c;
ret = u16_mblen (buf, 1);
diff --git a/tests/unistr/test-u16-mbsnlen.c b/tests/unistr/test-u16-mbsnlen.c
index c354ddfb..13419e66 100644
--- a/tests/unistr/test-u16-mbsnlen.c
+++ b/tests/unistr/test-u16-mbsnlen.c
@@ -1,5 +1,5 @@
/* Test of u16_mbsnlen() function.
- 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 General Public License as published by
@@ -35,9 +35,8 @@ main ()
'-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
};
- size_t n;
- for (n = 0; n <= SIZEOF (input); n++)
+ for (size_t n = 0; n <= SIZEOF (input); n++)
{
size_t len = u16_mbsnlen (input, n);
ASSERT (len == n);
@@ -55,9 +54,8 @@ main ()
1, 2, 3, 3, 4, 5, 5, 6, 7,
8, 8, 9, 10, 10
};
- size_t n;
- for (n = 0; n <= SIZEOF (input); n++)
+ for (size_t n = 0; n <= SIZEOF (input); n++)
{
size_t len = u16_mbsnlen (input, n);
ASSERT (len == expected[n]);
diff --git a/tests/unistr/test-u16-mbtouc-unsafe.c b/tests/unistr/test-u16-mbtouc-unsafe.c
index eb78205e..406c5120 100644
--- a/tests/unistr/test-u16-mbtouc-unsafe.c
+++ b/tests/unistr/test-u16-mbtouc-unsafe.c
@@ -1,5 +1,5 @@
/* Test of u16_mbtouc_unsafe() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-mbtouc.c b/tests/unistr/test-u16-mbtouc.c
index 3caee4c0..d677ac1c 100644
--- a/tests/unistr/test-u16-mbtouc.c
+++ b/tests/unistr/test-u16-mbtouc.c
@@ -1,5 +1,5 @@
/* Test of u16_mbtouc() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-mbtouc.h b/tests/unistr/test-u16-mbtouc.h
index 07931f71..30c85d7f 100644
--- a/tests/unistr/test-u16-mbtouc.h
+++ b/tests/unistr/test-u16-mbtouc.h
@@ -1,5 +1,5 @@
/* Test of u16_mbtouc() and u16_mbtouc_unsafe() functions.
- 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 General Public License as published by
@@ -33,10 +33,9 @@ test_function (int (*my_u16_mbtouc) (ucs4_t *, const uint16_t *, size_t))
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint16_t buf[1];
- for (c = 0; c < 0x80; c++)
+ for (ucs4_t c = 0; c < 0x80; c++)
{
buf[0] = c;
uc = 0xBADFACE;
diff --git a/tests/unistr/test-u16-mbtoucr.c b/tests/unistr/test-u16-mbtoucr.c
index 67226cc1..2e3e3c6d 100644
--- a/tests/unistr/test-u16-mbtoucr.c
+++ b/tests/unistr/test-u16-mbtoucr.c
@@ -1,5 +1,5 @@
/* Test of u16_mbtoucr() function.
- 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 General Public License as published by
@@ -39,10 +39,9 @@ main ()
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint16_t buf[1];
- for (c = 0; c < 0x80; c++)
+ for (ucs4_t c = 0; c < 0x80; c++)
{
buf[0] = c;
uc = 0xBADFACE;
diff --git a/tests/unistr/test-u16-move.c b/tests/unistr/test-u16-move.c
index 2190cbdb..b53eeb9e 100644
--- a/tests/unistr/test-u16-move.c
+++ b/tests/unistr/test-u16-move.c
@@ -1,5 +1,5 @@
/* Test of u16_move() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-next.c b/tests/unistr/test-u16-next.c
index afb4da3e..992933bf 100644
--- a/tests/unistr/test-u16-next.c
+++ b/tests/unistr/test-u16-next.c
@@ -1,5 +1,5 @@
/* Test of u16_next() function.
- 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 General Public License as published by
@@ -39,10 +39,9 @@ main ()
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint16_t buf[2];
- for (c = 1; c < 0x80; c++)
+ for (ucs4_t c = 1; c < 0x80; c++)
{
buf[0] = c;
buf[1] = 0;
diff --git a/tests/unistr/test-u16-pcpy.c b/tests/unistr/test-u16-pcpy.c
index d53aa1da..f83cee68 100644
--- a/tests/unistr/test-u16-pcpy.c
+++ b/tests/unistr/test-u16-pcpy.c
@@ -1,5 +1,5 @@
/* Test of u16_pcpy() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-prev.c b/tests/unistr/test-u16-prev.c
index 911b2c89..c2540499 100644
--- a/tests/unistr/test-u16-prev.c
+++ b/tests/unistr/test-u16-prev.c
@@ -1,5 +1,5 @@
/* Test of u16_prev() function.
- 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 General Public License as published by
@@ -35,12 +35,11 @@ check (const uint16_t *input, size_t input_length, ucs4_t *puc)
{
uint16_t buf[100];
uint16_t *ptr;
- size_t i;
ucs4_t uc1;
ptr = buf;
*ptr++ = 0x2102;
- for (i = 0; i < input_length; i++)
+ for (size_t i = 0; i < input_length; i++)
ptr[i] = input[i];
if (u16_prev (&uc1, ptr + input_length, buf) != ptr)
@@ -53,13 +52,12 @@ check (const uint16_t *input, size_t input_length, ucs4_t *puc)
{
uint16_t buf[100];
uint16_t *ptr;
- size_t i;
ucs4_t uc1;
ptr = buf;
*ptr++ = 0xD835;
*ptr++ = 0xDD1E;
- for (i = 0; i < input_length; i++)
+ for (size_t i = 0; i < input_length; i++)
ptr[i] = input[i];
if (u16_prev (&uc1, ptr + input_length, buf) != ptr)
@@ -88,11 +86,10 @@ check_invalid (const uint16_t *input, size_t input_length)
{
uint16_t buf[100];
uint16_t *ptr;
- size_t i;
ptr = buf;
*ptr++ = 0x2102;
- for (i = 0; i < input_length; i++)
+ for (size_t i = 0; i < input_length; i++)
ptr[i] = input[i];
uc = 0xBADFACE;
@@ -106,12 +103,11 @@ check_invalid (const uint16_t *input, size_t input_length)
{
uint16_t buf[100];
uint16_t *ptr;
- size_t i;
ptr = buf;
*ptr++ = 0xD835;
*ptr++ = 0xDD1E;
- for (i = 0; i < input_length; i++)
+ for (size_t i = 0; i < input_length; i++)
ptr[i] = input[i];
uc = 0xBADFACE;
@@ -131,10 +127,9 @@ main ()
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint16_t buf[1];
- for (c = 0; c < 0x80; c++)
+ for (ucs4_t c = 0; c < 0x80; c++)
{
buf[0] = c;
uc = 0xBADFACE;
diff --git a/tests/unistr/test-u16-set.c b/tests/unistr/test-u16-set.c
index 7ec1845a..adc33644 100644
--- a/tests/unistr/test-u16-set.c
+++ b/tests/unistr/test-u16-set.c
@@ -1,5 +1,5 @@
/* Test of u16_set() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-stpcpy.c b/tests/unistr/test-u16-stpcpy.c
index 2d56c8d9..9985a8db 100644
--- a/tests/unistr/test-u16-stpcpy.c
+++ b/tests/unistr/test-u16-stpcpy.c
@@ -1,5 +1,5 @@
/* Test of u16_stpcpy() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-stpncpy.c b/tests/unistr/test-u16-stpncpy.c
index 58e0c4a2..d8b2cab1 100644
--- a/tests/unistr/test-u16-stpncpy.c
+++ b/tests/unistr/test-u16-stpncpy.c
@@ -1,5 +1,5 @@
/* Test of u16_stpncpy() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-strcat.c b/tests/unistr/test-u16-strcat.c
index a00bb5cd..30d2475a 100644
--- a/tests/unistr/test-u16-strcat.c
+++ b/tests/unistr/test-u16-strcat.c
@@ -1,5 +1,5 @@
/* Test of u16_strcat() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-strchr.c b/tests/unistr/test-u16-strchr.c
index 5be29979..b59ca0fb 100644
--- a/tests/unistr/test-u16-strchr.c
+++ b/tests/unistr/test-u16-strchr.c
@@ -1,5 +1,5 @@
/* Test of u16_strchr() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-strcmp.c b/tests/unistr/test-u16-strcmp.c
index c2d704fb..caa41898 100644
--- a/tests/unistr/test-u16-strcmp.c
+++ b/tests/unistr/test-u16-strcmp.c
@@ -1,5 +1,5 @@
/* Test of u16_strcmp() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-strcmp.h b/tests/unistr/test-u16-strcmp.h
index 46b6f72d..571cc8db 100644
--- a/tests/unistr/test-u16-strcmp.h
+++ b/tests/unistr/test-u16-strcmp.h
@@ -1,5 +1,5 @@
/* Test of u16_strcmp() and u16_strcoll() functions.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-strcoll.c b/tests/unistr/test-u16-strcoll.c
index 7d6801d7..de32dad7 100644
--- a/tests/unistr/test-u16-strcoll.c
+++ b/tests/unistr/test-u16-strcoll.c
@@ -1,5 +1,5 @@
/* Test of u16_strcoll() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-strcpy.c b/tests/unistr/test-u16-strcpy.c
index 62aac951..9e604cec 100644
--- a/tests/unistr/test-u16-strcpy.c
+++ b/tests/unistr/test-u16-strcpy.c
@@ -1,5 +1,5 @@
/* Test of u16_strcpy() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-strdup.c b/tests/unistr/test-u16-strdup.c
index 95488128..31f34c32 100644
--- a/tests/unistr/test-u16-strdup.c
+++ b/tests/unistr/test-u16-strdup.c
@@ -1,5 +1,5 @@
/* Test of u16_strdup() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-strlen.c b/tests/unistr/test-u16-strlen.c
index 42058cb6..c842912a 100644
--- a/tests/unistr/test-u16-strlen.c
+++ b/tests/unistr/test-u16-strlen.c
@@ -1,5 +1,5 @@
/* Test of u16_strlen() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-strmblen.c b/tests/unistr/test-u16-strmblen.c
index 42cf3e6f..bfe70c6f 100644
--- a/tests/unistr/test-u16-strmblen.c
+++ b/tests/unistr/test-u16-strmblen.c
@@ -1,5 +1,5 @@
/* Test of u16_strmblen() function.
- 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 General Public License as published by
@@ -36,10 +36,9 @@ main ()
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint16_t buf[2];
- for (c = 1; c < 0x80; c++)
+ for (ucs4_t c = 1; c < 0x80; c++)
{
buf[0] = c;
buf[1] = 0;
diff --git a/tests/unistr/test-u16-strmbtouc.c b/tests/unistr/test-u16-strmbtouc.c
index 8f2e37ec..12ab3c0d 100644
--- a/tests/unistr/test-u16-strmbtouc.c
+++ b/tests/unistr/test-u16-strmbtouc.c
@@ -1,5 +1,5 @@
/* Test of u16_strmbtouc() function.
- 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 General Public License as published by
@@ -39,10 +39,9 @@ main ()
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint16_t buf[2];
- for (c = 1; c < 0x80; c++)
+ for (ucs4_t c = 1; c < 0x80; c++)
{
buf[0] = c;
buf[1] = 0;
diff --git a/tests/unistr/test-u16-strncat.c b/tests/unistr/test-u16-strncat.c
index 2cf25a81..ab60d7c6 100644
--- a/tests/unistr/test-u16-strncat.c
+++ b/tests/unistr/test-u16-strncat.c
@@ -1,5 +1,5 @@
/* Test of u16_strncat() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-strncmp.c b/tests/unistr/test-u16-strncmp.c
index c8325830..5f4ab386 100644
--- a/tests/unistr/test-u16-strncmp.c
+++ b/tests/unistr/test-u16-strncmp.c
@@ -1,5 +1,5 @@
/* Test of u16_strncmp() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-strncpy.c b/tests/unistr/test-u16-strncpy.c
index 1aad5c21..c0f562ed 100644
--- a/tests/unistr/test-u16-strncpy.c
+++ b/tests/unistr/test-u16-strncpy.c
@@ -1,5 +1,5 @@
/* Test of u16_strncpy() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-strnlen.c b/tests/unistr/test-u16-strnlen.c
index 26922923..5bd461ae 100644
--- a/tests/unistr/test-u16-strnlen.c
+++ b/tests/unistr/test-u16-strnlen.c
@@ -1,5 +1,5 @@
/* Test of u16_strnlen() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-strstr.c b/tests/unistr/test-u16-strstr.c
index 7c2996d2..51514994 100644
--- a/tests/unistr/test-u16-strstr.c
+++ b/tests/unistr/test-u16-strstr.c
@@ -1,5 +1,5 @@
/* Test of u16_strstr() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-strtok.c b/tests/unistr/test-u16-strtok.c
index 8d08da0a..939895a3 100644
--- a/tests/unistr/test-u16-strtok.c
+++ b/tests/unistr/test-u16-strtok.c
@@ -1,5 +1,5 @@
/* Test of u16_strtok() function.
- Copyright (C) 2015-2025 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
diff --git a/tests/unistr/test-u16-to-u32.c b/tests/unistr/test-u16-to-u32.c
index 5ddc99cd..00ea5554 100644
--- a/tests/unistr/test-u16-to-u32.c
+++ b/tests/unistr/test-u16-to-u32.c
@@ -1,5 +1,5 @@
/* Test of u16_to_u32() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-to-u8.c b/tests/unistr/test-u16-to-u8.c
index 54cd3afb..d97db4c8 100644
--- a/tests/unistr/test-u16-to-u8.c
+++ b/tests/unistr/test-u16-to-u8.c
@@ -1,5 +1,5 @@
/* Test of u16_to_u8() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u16-uctomb.c b/tests/unistr/test-u16-uctomb.c
index 93149219..5288f25d 100644
--- a/tests/unistr/test-u16-uctomb.c
+++ b/tests/unistr/test-u16-uctomb.c
@@ -1,5 +1,5 @@
/* Test of u16_uctomb() function.
- 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 General Public License as published by
@@ -28,24 +28,20 @@ int
main ()
{
/* Test ISO 646 character, in particular the NUL character. */
- {
- ucs4_t uc;
-
- for (uc = 0; uc < 0x80; uc++)
- {
- uint16_t buf[3] = { MAGIC, MAGIC, MAGIC };
- int ret;
+ for (ucs4_t uc = 0; uc < 0x80; uc++)
+ {
+ uint16_t buf[3] = { MAGIC, MAGIC, MAGIC };
+ int ret;
- ret = u16_uctomb (buf, uc, 0);
- ASSERT (ret == -2);
- ASSERT (buf[0] == MAGIC);
+ ret = u16_uctomb (buf, uc, 0);
+ ASSERT (ret == -2);
+ ASSERT (buf[0] == MAGIC);
- ret = u16_uctomb (buf, uc, 1);
- ASSERT (ret == 1);
- ASSERT (buf[0] == uc);
- ASSERT (buf[1] == MAGIC);
- }
- }
+ ret = u16_uctomb (buf, uc, 1);
+ ASSERT (ret == 1);
+ ASSERT (buf[0] == uc);
+ ASSERT (buf[1] == MAGIC);
+ }
/* Test BMP character. */
{
@@ -88,14 +84,12 @@ main ()
{
ucs4_t invalid[] = { 0x110000, 0xD800, 0xDBFF, 0xDC00, 0xDFFF };
uint16_t buf[3] = { MAGIC, MAGIC, MAGIC };
- size_t i;
- for (i = 0; i < SIZEOF (invalid); i++)
+ for (size_t i = 0; i < SIZEOF (invalid); i++)
{
ucs4_t uc = invalid[i];
- int n;
- for (n = 0; n <= 2; n++)
+ for (int n = 0; n <= 2; n++)
{
int ret = u16_uctomb (buf, uc, n);
ASSERT (ret == -1);
diff --git a/tests/unistr/test-u32-check.c b/tests/unistr/test-u32-check.c
index c6cf547e..9639e3d0 100644
--- a/tests/unistr/test-u32-check.c
+++ b/tests/unistr/test-u32-check.c
@@ -1,5 +1,5 @@
/* Test of u32_check() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-chr.c b/tests/unistr/test-u32-chr.c
index 3d38487d..5079105e 100644
--- a/tests/unistr/test-u32-chr.c
+++ b/tests/unistr/test-u32-chr.c
@@ -1,5 +1,5 @@
/* Test of u32_chr() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-cmp.c b/tests/unistr/test-u32-cmp.c
index a0574c36..30da4253 100644
--- a/tests/unistr/test-u32-cmp.c
+++ b/tests/unistr/test-u32-cmp.c
@@ -1,5 +1,5 @@
/* Test of u32_cmp() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-cmp2.c b/tests/unistr/test-u32-cmp2.c
index 097a92ec..46cc1d3c 100644
--- a/tests/unistr/test-u32-cmp2.c
+++ b/tests/unistr/test-u32-cmp2.c
@@ -1,5 +1,5 @@
/* Test of u32_cmp2() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-cpy-alloc.c b/tests/unistr/test-u32-cpy-alloc.c
index 3d86c606..06b3244b 100644
--- a/tests/unistr/test-u32-cpy-alloc.c
+++ b/tests/unistr/test-u32-cpy-alloc.c
@@ -1,5 +1,5 @@
/* Test of u32_cpy_alloc() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-cpy.c b/tests/unistr/test-u32-cpy.c
index 8329592a..a6245b52 100644
--- a/tests/unistr/test-u32-cpy.c
+++ b/tests/unistr/test-u32-cpy.c
@@ -1,5 +1,5 @@
/* Test of u32_cpy() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-mblen.c b/tests/unistr/test-u32-mblen.c
index 8ce13426..ff6139d9 100644
--- a/tests/unistr/test-u32-mblen.c
+++ b/tests/unistr/test-u32-mblen.c
@@ -1,5 +1,5 @@
/* Test of u32_mblen() function.
- 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 General Public License as published by
@@ -43,10 +43,9 @@ main ()
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint32_t buf[1];
- for (c = 1; c < 0x80; c++)
+ for (ucs4_t c = 1; c < 0x80; c++)
{
buf[0] = c;
ret = u32_mblen (buf, 1);
diff --git a/tests/unistr/test-u32-mbsnlen.c b/tests/unistr/test-u32-mbsnlen.c
index 113b0c5f..212bb755 100644
--- a/tests/unistr/test-u32-mbsnlen.c
+++ b/tests/unistr/test-u32-mbsnlen.c
@@ -1,5 +1,5 @@
/* Test of u32_mbsnlen() function.
- 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 General Public License as published by
@@ -35,9 +35,8 @@ main ()
'-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
};
- size_t n;
- for (n = 0; n <= SIZEOF (input); n++)
+ for (size_t n = 0; n <= SIZEOF (input); n++)
{
size_t len = u32_mbsnlen (input, n);
ASSERT (len == n);
@@ -50,9 +49,8 @@ main ()
{ '-', '(', 0x1D51E, 0x00D7, 0x1D51F, ')', '=',
0x1D51F, 0x00D7, 0x1D51E
};
- size_t n;
- for (n = 0; n <= SIZEOF (input); n++)
+ for (size_t n = 0; n <= SIZEOF (input); n++)
{
size_t len = u32_mbsnlen (input, n);
ASSERT (len == n);
diff --git a/tests/unistr/test-u32-mbtouc-unsafe.c b/tests/unistr/test-u32-mbtouc-unsafe.c
index 5bc8e0e9..4a50585e 100644
--- a/tests/unistr/test-u32-mbtouc-unsafe.c
+++ b/tests/unistr/test-u32-mbtouc-unsafe.c
@@ -1,5 +1,5 @@
/* Test of u32_mbtouc_unsafe() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-mbtouc.c b/tests/unistr/test-u32-mbtouc.c
index b62c26d3..a05b6576 100644
--- a/tests/unistr/test-u32-mbtouc.c
+++ b/tests/unistr/test-u32-mbtouc.c
@@ -1,5 +1,5 @@
/* Test of u32_mbtouc() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-mbtouc.h b/tests/unistr/test-u32-mbtouc.h
index 3a44c096..ef29debf 100644
--- a/tests/unistr/test-u32-mbtouc.h
+++ b/tests/unistr/test-u32-mbtouc.h
@@ -1,5 +1,5 @@
/* Test of u32_mbtouc() and u32_mbtouc_unsafe() functions.
- 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 General Public License as published by
@@ -33,10 +33,9 @@ test_function (int (*my_u32_mbtouc) (ucs4_t *, const uint32_t *, size_t))
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint32_t buf[1];
- for (c = 0; c < 0x80; c++)
+ for (ucs4_t c = 0; c < 0x80; c++)
{
buf[0] = c;
uc = 0xBADFACE;
diff --git a/tests/unistr/test-u32-mbtoucr.c b/tests/unistr/test-u32-mbtoucr.c
index 11137449..5e01e7b2 100644
--- a/tests/unistr/test-u32-mbtoucr.c
+++ b/tests/unistr/test-u32-mbtoucr.c
@@ -1,5 +1,5 @@
/* Test of u32_mbtoucr() function.
- 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 General Public License as published by
@@ -39,10 +39,9 @@ main ()
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint32_t buf[1];
- for (c = 0; c < 0x80; c++)
+ for (ucs4_t c = 0; c < 0x80; c++)
{
buf[0] = c;
uc = 0xBADFACE;
diff --git a/tests/unistr/test-u32-move.c b/tests/unistr/test-u32-move.c
index 71cf48eb..a027c1d0 100644
--- a/tests/unistr/test-u32-move.c
+++ b/tests/unistr/test-u32-move.c
@@ -1,5 +1,5 @@
/* Test of u32_move() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-next.c b/tests/unistr/test-u32-next.c
index dc17eca4..02ba1463 100644
--- a/tests/unistr/test-u32-next.c
+++ b/tests/unistr/test-u32-next.c
@@ -1,5 +1,5 @@
/* Test of u32_next() function.
- 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 General Public License as published by
@@ -39,10 +39,9 @@ main ()
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint32_t buf[2];
- for (c = 1; c < 0x80; c++)
+ for (ucs4_t c = 1; c < 0x80; c++)
{
buf[0] = c;
buf[1] = 0;
diff --git a/tests/unistr/test-u32-pcpy.c b/tests/unistr/test-u32-pcpy.c
index 8dc07d4c..3e891f5e 100644
--- a/tests/unistr/test-u32-pcpy.c
+++ b/tests/unistr/test-u32-pcpy.c
@@ -1,5 +1,5 @@
/* Test of u32_pcpy() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-prev.c b/tests/unistr/test-u32-prev.c
index b9a339a1..b5974aa3 100644
--- a/tests/unistr/test-u32-prev.c
+++ b/tests/unistr/test-u32-prev.c
@@ -1,5 +1,5 @@
/* Test of u32_prev() function.
- 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 General Public License as published by
@@ -35,12 +35,11 @@ check (const uint32_t *input, size_t input_length, ucs4_t *puc)
{
uint32_t buf[100];
uint32_t *ptr;
- size_t i;
ucs4_t uc1;
ptr = buf;
*ptr++ = 0x1D51E;
- for (i = 0; i < input_length; i++)
+ for (size_t i = 0; i < input_length; i++)
ptr[i] = input[i];
if (u32_prev (&uc1, ptr + input_length, buf) != ptr)
@@ -69,11 +68,10 @@ check_invalid (const uint32_t *input, size_t input_length)
{
uint32_t buf[100];
uint32_t *ptr;
- size_t i;
ptr = buf;
*ptr++ = 0x1D51E;
- for (i = 0; i < input_length; i++)
+ for (size_t i = 0; i < input_length; i++)
ptr[i] = input[i];
uc = 0xBADFACE;
@@ -93,10 +91,9 @@ main ()
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint32_t buf[1];
- for (c = 0; c < 0x80; c++)
+ for (ucs4_t c = 0; c < 0x80; c++)
{
buf[0] = c;
uc = 0xBADFACE;
diff --git a/tests/unistr/test-u32-set.c b/tests/unistr/test-u32-set.c
index 801f60a8..42243079 100644
--- a/tests/unistr/test-u32-set.c
+++ b/tests/unistr/test-u32-set.c
@@ -1,5 +1,5 @@
/* Test of u32_set() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-stpcpy.c b/tests/unistr/test-u32-stpcpy.c
index 3c1ea6d2..3108a3f9 100644
--- a/tests/unistr/test-u32-stpcpy.c
+++ b/tests/unistr/test-u32-stpcpy.c
@@ -1,5 +1,5 @@
/* Test of u32_stpcpy() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-stpncpy.c b/tests/unistr/test-u32-stpncpy.c
index 130ee221..9272492d 100644
--- a/tests/unistr/test-u32-stpncpy.c
+++ b/tests/unistr/test-u32-stpncpy.c
@@ -1,5 +1,5 @@
/* Test of u32_stpncpy() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-strcat.c b/tests/unistr/test-u32-strcat.c
index 77a39f9d..3f797c19 100644
--- a/tests/unistr/test-u32-strcat.c
+++ b/tests/unistr/test-u32-strcat.c
@@ -1,5 +1,5 @@
/* Test of u32_strcat() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-strchr.c b/tests/unistr/test-u32-strchr.c
index 0d5abe31..a598eb5f 100644
--- a/tests/unistr/test-u32-strchr.c
+++ b/tests/unistr/test-u32-strchr.c
@@ -1,5 +1,5 @@
/* Test of u32_strchr() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-strcmp.c b/tests/unistr/test-u32-strcmp.c
index e7ebfaed..1ae637e2 100644
--- a/tests/unistr/test-u32-strcmp.c
+++ b/tests/unistr/test-u32-strcmp.c
@@ -1,5 +1,5 @@
/* Test of u32_strcmp() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-strcmp.h b/tests/unistr/test-u32-strcmp.h
index 475f8c98..c58376ac 100644
--- a/tests/unistr/test-u32-strcmp.h
+++ b/tests/unistr/test-u32-strcmp.h
@@ -1,5 +1,5 @@
/* Test of u32_strcmp() and u32_strcoll() functions.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-strcoll.c b/tests/unistr/test-u32-strcoll.c
index 52d27f3a..13d7055e 100644
--- a/tests/unistr/test-u32-strcoll.c
+++ b/tests/unistr/test-u32-strcoll.c
@@ -1,5 +1,5 @@
/* Test of u32_strcoll() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-strcpy.c b/tests/unistr/test-u32-strcpy.c
index e946a9e9..76665915 100644
--- a/tests/unistr/test-u32-strcpy.c
+++ b/tests/unistr/test-u32-strcpy.c
@@ -1,5 +1,5 @@
/* Test of u32_strcpy() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-strdup.c b/tests/unistr/test-u32-strdup.c
index 8ce1c2a1..aa1d61ef 100644
--- a/tests/unistr/test-u32-strdup.c
+++ b/tests/unistr/test-u32-strdup.c
@@ -1,5 +1,5 @@
/* Test of u32_strdup() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-strlen.c b/tests/unistr/test-u32-strlen.c
index f376a95d..b8eb276c 100644
--- a/tests/unistr/test-u32-strlen.c
+++ b/tests/unistr/test-u32-strlen.c
@@ -1,5 +1,5 @@
/* Test of u32_strlen() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-strmblen.c b/tests/unistr/test-u32-strmblen.c
index dc60b17b..305bf586 100644
--- a/tests/unistr/test-u32-strmblen.c
+++ b/tests/unistr/test-u32-strmblen.c
@@ -1,5 +1,5 @@
/* Test of u32_strmblen() function.
- 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 General Public License as published by
@@ -36,10 +36,9 @@ main ()
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint32_t buf[2];
- for (c = 1; c < 0x80; c++)
+ for (ucs4_t c = 1; c < 0x80; c++)
{
buf[0] = c;
buf[1] = 0;
diff --git a/tests/unistr/test-u32-strmbtouc.c b/tests/unistr/test-u32-strmbtouc.c
index 54a2b4a6..03006b38 100644
--- a/tests/unistr/test-u32-strmbtouc.c
+++ b/tests/unistr/test-u32-strmbtouc.c
@@ -1,5 +1,5 @@
/* Test of u32_strmbtouc() function.
- 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 General Public License as published by
@@ -39,10 +39,9 @@ main ()
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint32_t buf[2];
- for (c = 1; c < 0x80; c++)
+ for (ucs4_t c = 1; c < 0x80; c++)
{
buf[0] = c;
buf[1] = 0;
diff --git a/tests/unistr/test-u32-strncat.c b/tests/unistr/test-u32-strncat.c
index 03e79a16..d77d8603 100644
--- a/tests/unistr/test-u32-strncat.c
+++ b/tests/unistr/test-u32-strncat.c
@@ -1,5 +1,5 @@
/* Test of u32_strncat() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-strncmp.c b/tests/unistr/test-u32-strncmp.c
index 04d10b40..7681ad26 100644
--- a/tests/unistr/test-u32-strncmp.c
+++ b/tests/unistr/test-u32-strncmp.c
@@ -1,5 +1,5 @@
/* Test of u32_strncmp() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-strncpy.c b/tests/unistr/test-u32-strncpy.c
index 6df69c45..cd4f0385 100644
--- a/tests/unistr/test-u32-strncpy.c
+++ b/tests/unistr/test-u32-strncpy.c
@@ -1,5 +1,5 @@
/* Test of u32_strncpy() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-strnlen.c b/tests/unistr/test-u32-strnlen.c
index 81d24aa0..503fb82c 100644
--- a/tests/unistr/test-u32-strnlen.c
+++ b/tests/unistr/test-u32-strnlen.c
@@ -1,5 +1,5 @@
/* Test of u32_strnlen() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-strstr.c b/tests/unistr/test-u32-strstr.c
index 09e258b1..39e9524d 100644
--- a/tests/unistr/test-u32-strstr.c
+++ b/tests/unistr/test-u32-strstr.c
@@ -1,5 +1,5 @@
/* Test of u32_strstr() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-strtok.c b/tests/unistr/test-u32-strtok.c
index 14a4702c..5beefaac 100644
--- a/tests/unistr/test-u32-strtok.c
+++ b/tests/unistr/test-u32-strtok.c
@@ -1,5 +1,5 @@
/* Test of u32_strtok() function.
- Copyright (C) 2015-2025 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
diff --git a/tests/unistr/test-u32-to-u16.c b/tests/unistr/test-u32-to-u16.c
index 7bb4567b..3941c1af 100644
--- a/tests/unistr/test-u32-to-u16.c
+++ b/tests/unistr/test-u32-to-u16.c
@@ -1,5 +1,5 @@
/* Test of u32_to_u16() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-to-u8.c b/tests/unistr/test-u32-to-u8.c
index b9290415..98198646 100644
--- a/tests/unistr/test-u32-to-u8.c
+++ b/tests/unistr/test-u32-to-u8.c
@@ -1,5 +1,5 @@
/* Test of u32_to_u8() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u32-uctomb.c b/tests/unistr/test-u32-uctomb.c
index f05b8646..752b2acd 100644
--- a/tests/unistr/test-u32-uctomb.c
+++ b/tests/unistr/test-u32-uctomb.c
@@ -1,5 +1,5 @@
/* Test of u32_uctomb() function.
- 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 General Public License as published by
@@ -28,24 +28,20 @@ int
main ()
{
/* Test ISO 646 character, in particular the NUL character. */
- {
- ucs4_t uc;
-
- for (uc = 0; uc < 0x80; uc++)
- {
- uint32_t buf[2] = { MAGIC, MAGIC };
- int ret;
+ for (ucs4_t uc = 0; uc < 0x80; uc++)
+ {
+ uint32_t buf[2] = { MAGIC, MAGIC };
+ int ret;
- ret = u32_uctomb (buf, uc, 0);
- ASSERT (ret == -2);
- ASSERT (buf[0] == MAGIC);
+ ret = u32_uctomb (buf, uc, 0);
+ ASSERT (ret == -2);
+ ASSERT (buf[0] == MAGIC);
- ret = u32_uctomb (buf, uc, 1);
- ASSERT (ret == 1);
- ASSERT (buf[0] == uc);
- ASSERT (buf[1] == MAGIC);
- }
- }
+ ret = u32_uctomb (buf, uc, 1);
+ ASSERT (ret == 1);
+ ASSERT (buf[0] == uc);
+ ASSERT (buf[1] == MAGIC);
+ }
/* Test BMP character. */
{
@@ -83,14 +79,12 @@ main ()
{
ucs4_t invalid[] = { 0x110000, 0xD800, 0xDBFF, 0xDC00, 0xDFFF };
uint32_t buf[2] = { MAGIC, MAGIC };
- size_t i;
- for (i = 0; i < SIZEOF (invalid); i++)
+ for (size_t i = 0; i < SIZEOF (invalid); i++)
{
ucs4_t uc = invalid[i];
- int n;
- for (n = 0; n <= 2; n++)
+ for (int n = 0; n <= 2; n++)
{
int ret = u32_uctomb (buf, uc, n);
ASSERT (ret == -1);
diff --git a/tests/unistr/test-u8-check.c b/tests/unistr/test-u8-check.c
index b4418990..a71c9387 100644
--- a/tests/unistr/test-u8-check.c
+++ b/tests/unistr/test-u8-check.c
@@ -1,5 +1,5 @@
/* Test of u8_check() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-chr.c b/tests/unistr/test-u8-chr.c
index 44bfcf19..779a8d25 100644
--- a/tests/unistr/test-u8-chr.c
+++ b/tests/unistr/test-u8-chr.c
@@ -1,5 +1,5 @@
/* Test of u8_chr() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-cmp.c b/tests/unistr/test-u8-cmp.c
index caf3577f..9b664720 100644
--- a/tests/unistr/test-u8-cmp.c
+++ b/tests/unistr/test-u8-cmp.c
@@ -1,5 +1,5 @@
/* Test of u8_cmp() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-cmp2.c b/tests/unistr/test-u8-cmp2.c
index 49f30d61..a1493031 100644
--- a/tests/unistr/test-u8-cmp2.c
+++ b/tests/unistr/test-u8-cmp2.c
@@ -1,5 +1,5 @@
/* Test of u8_cmp2() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-cpy-alloc.c b/tests/unistr/test-u8-cpy-alloc.c
index fa74fb29..49d671da 100644
--- a/tests/unistr/test-u8-cpy-alloc.c
+++ b/tests/unistr/test-u8-cpy-alloc.c
@@ -1,5 +1,5 @@
/* Test of u8_cpy_alloc() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-cpy.c b/tests/unistr/test-u8-cpy.c
index e396175a..5580502c 100644
--- a/tests/unistr/test-u8-cpy.c
+++ b/tests/unistr/test-u8-cpy.c
@@ -1,5 +1,5 @@
/* Test of u8_cpy() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-mblen.c b/tests/unistr/test-u8-mblen.c
index a6d56242..3889621b 100644
--- a/tests/unistr/test-u8-mblen.c
+++ b/tests/unistr/test-u8-mblen.c
@@ -1,5 +1,5 @@
/* Test of u8_mblen() function.
- 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 General Public License as published by
@@ -43,10 +43,9 @@ main ()
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint8_t buf[1];
- for (c = 1; c < 0x80; c++)
+ for (ucs4_t c = 1; c < 0x80; c++)
{
buf[0] = c;
ret = u8_mblen (buf, 1);
diff --git a/tests/unistr/test-u8-mbsnlen.c b/tests/unistr/test-u8-mbsnlen.c
index 21231848..85d2dc6e 100644
--- a/tests/unistr/test-u8-mbsnlen.c
+++ b/tests/unistr/test-u8-mbsnlen.c
@@ -1,5 +1,5 @@
/* Test of u8_mbsnlen() function.
- 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 General Public License as published by
@@ -48,9 +48,8 @@ main ()
56, 56, 56, 57, 57, 57, 58,
59, 59, 59, 60, 60, 60, 61
};
- size_t n;
- for (n = 0; n <= SIZEOF (input); n++)
+ for (size_t n = 0; n <= SIZEOF (input); n++)
{
size_t len = u8_mbsnlen (input, n);
ASSERT (len == expected[n]);
@@ -82,10 +81,9 @@ main ()
}
/* 3.2. Lonely start characters. */
{
- ucs4_t c;
uint8_t input[2];
- for (c = 0xC0; c <= 0xFF; c++)
+ for (ucs4_t c = 0xC0; c <= 0xFF; c++)
{
input[0] = c;
input[1] = ' ';
diff --git a/tests/unistr/test-u8-mbtouc-unsafe.c b/tests/unistr/test-u8-mbtouc-unsafe.c
index 731150b5..6c28d66d 100644
--- a/tests/unistr/test-u8-mbtouc-unsafe.c
+++ b/tests/unistr/test-u8-mbtouc-unsafe.c
@@ -1,5 +1,5 @@
/* Test of u8_mbtouc_unsafe() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-mbtouc.c b/tests/unistr/test-u8-mbtouc.c
index 62a2258e..bd59f9d7 100644
--- a/tests/unistr/test-u8-mbtouc.c
+++ b/tests/unistr/test-u8-mbtouc.c
@@ -1,5 +1,5 @@
/* Test of u8_mbtouc() function.
- 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 General Public License as published by
@@ -78,10 +78,9 @@ test_safe_function (int (*my_u8_mbtouc) (ucs4_t *, const uint8_t *, size_t))
}
/* 3.2. Lonely start characters. */
{
- ucs4_t c;
uint8_t input[2];
- for (c = 0xC0; c <= 0xFF; c++)
+ for (ucs4_t c = 0xC0; c <= 0xFF; c++)
{
input[0] = c;
input[1] = ' ';
diff --git a/tests/unistr/test-u8-mbtouc.h b/tests/unistr/test-u8-mbtouc.h
index 9764088f..6ba21e89 100644
--- a/tests/unistr/test-u8-mbtouc.h
+++ b/tests/unistr/test-u8-mbtouc.h
@@ -1,5 +1,5 @@
/* Test of u8_mbtouc() and u8_mbtouc_unsafe() functions.
- 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 General Public License as published by
@@ -33,10 +33,9 @@ test_function (int (*my_u8_mbtouc) (ucs4_t *, const uint8_t *, size_t))
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint8_t buf[1];
- for (c = 0; c < 0x80; c++)
+ for (ucs4_t c = 0; c < 0x80; c++)
{
buf[0] = c;
uc = 0xBADFACE;
diff --git a/tests/unistr/test-u8-mbtoucr.c b/tests/unistr/test-u8-mbtoucr.c
index 9d016ce6..76691e5b 100644
--- a/tests/unistr/test-u8-mbtoucr.c
+++ b/tests/unistr/test-u8-mbtoucr.c
@@ -1,5 +1,5 @@
/* Test of u8_mbtoucr() function.
- 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 General Public License as published by
@@ -39,10 +39,9 @@ main ()
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint8_t buf[1];
- for (c = 0; c < 0x80; c++)
+ for (ucs4_t c = 0; c < 0x80; c++)
{
buf[0] = c;
uc = 0xBADFACE;
diff --git a/tests/unistr/test-u8-move.c b/tests/unistr/test-u8-move.c
index 88b1171e..ae625498 100644
--- a/tests/unistr/test-u8-move.c
+++ b/tests/unistr/test-u8-move.c
@@ -1,5 +1,5 @@
/* Test of u8_move() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-next.c b/tests/unistr/test-u8-next.c
index 247236b3..83ef7008 100644
--- a/tests/unistr/test-u8-next.c
+++ b/tests/unistr/test-u8-next.c
@@ -1,5 +1,5 @@
/* Test of u8_next() function.
- 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 General Public License as published by
@@ -39,10 +39,9 @@ main ()
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint8_t buf[2];
- for (c = 1; c < 0x80; c++)
+ for (ucs4_t c = 1; c < 0x80; c++)
{
buf[0] = c;
buf[1] = 0;
diff --git a/tests/unistr/test-u8-pcpy.c b/tests/unistr/test-u8-pcpy.c
index fd86d84e..219fa4cb 100644
--- a/tests/unistr/test-u8-pcpy.c
+++ b/tests/unistr/test-u8-pcpy.c
@@ -1,5 +1,5 @@
/* Test of u8_pcpy() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-prev.c b/tests/unistr/test-u8-prev.c
index f93b3914..c15c0290 100644
--- a/tests/unistr/test-u8-prev.c
+++ b/tests/unistr/test-u8-prev.c
@@ -1,5 +1,5 @@
/* Test of u8_prev() function.
- 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 General Public License as published by
@@ -35,12 +35,11 @@ check (const uint8_t *input, size_t input_length, ucs4_t *puc)
{
uint8_t buf[100];
uint8_t *ptr;
- size_t i;
ucs4_t uc1;
ptr = buf;
*ptr++ = 'x';
- for (i = 0; i < input_length; i++)
+ for (size_t i = 0; i < input_length; i++)
ptr[i] = input[i];
if (u8_prev (&uc1, ptr + input_length, buf) != ptr)
@@ -53,13 +52,12 @@ check (const uint8_t *input, size_t input_length, ucs4_t *puc)
{
uint8_t buf[100];
uint8_t *ptr;
- size_t i;
ucs4_t uc1;
ptr = buf;
*ptr++ = 0xC3;
*ptr++ = 0x97;
- for (i = 0; i < input_length; i++)
+ for (size_t i = 0; i < input_length; i++)
ptr[i] = input[i];
if (u8_prev (&uc1, ptr + input_length, buf) != ptr)
@@ -72,14 +70,13 @@ check (const uint8_t *input, size_t input_length, ucs4_t *puc)
{
uint8_t buf[100];
uint8_t *ptr;
- size_t i;
ucs4_t uc1;
ptr = buf;
*ptr++ = 0xE2;
*ptr++ = 0x84;
*ptr++ = 0x82;
- for (i = 0; i < input_length; i++)
+ for (size_t i = 0; i < input_length; i++)
ptr[i] = input[i];
if (u8_prev (&uc1, ptr + input_length, buf) != ptr)
@@ -92,7 +89,6 @@ check (const uint8_t *input, size_t input_length, ucs4_t *puc)
{
uint8_t buf[100];
uint8_t *ptr;
- size_t i;
ucs4_t uc1;
ptr = buf;
@@ -100,7 +96,7 @@ check (const uint8_t *input, size_t input_length, ucs4_t *puc)
*ptr++ = 0x9D;
*ptr++ = 0x94;
*ptr++ = 0x9E;
- for (i = 0; i < input_length; i++)
+ for (size_t i = 0; i < input_length; i++)
ptr[i] = input[i];
if (u8_prev (&uc1, ptr + input_length, buf) != ptr)
@@ -129,11 +125,10 @@ check_invalid (const uint8_t *input, size_t input_length)
{
uint8_t buf[100];
uint8_t *ptr;
- size_t i;
ptr = buf;
*ptr++ = 'x';
- for (i = 0; i < input_length; i++)
+ for (size_t i = 0; i < input_length; i++)
ptr[i] = input[i];
uc = 0xBADFACE;
@@ -147,12 +142,11 @@ check_invalid (const uint8_t *input, size_t input_length)
{
uint8_t buf[100];
uint8_t *ptr;
- size_t i;
ptr = buf;
*ptr++ = 0xC3;
*ptr++ = 0x97;
- for (i = 0; i < input_length; i++)
+ for (size_t i = 0; i < input_length; i++)
ptr[i] = input[i];
uc = 0xBADFACE;
@@ -166,13 +160,12 @@ check_invalid (const uint8_t *input, size_t input_length)
{
uint8_t buf[100];
uint8_t *ptr;
- size_t i;
ptr = buf;
*ptr++ = 0xE2;
*ptr++ = 0x84;
*ptr++ = 0x82;
- for (i = 0; i < input_length; i++)
+ for (size_t i = 0; i < input_length; i++)
ptr[i] = input[i];
uc = 0xBADFACE;
@@ -186,14 +179,13 @@ check_invalid (const uint8_t *input, size_t input_length)
{
uint8_t buf[100];
uint8_t *ptr;
- size_t i;
ptr = buf;
*ptr++ = 0xF0;
*ptr++ = 0x9D;
*ptr++ = 0x94;
*ptr++ = 0x9E;
- for (i = 0; i < input_length; i++)
+ for (size_t i = 0; i < input_length; i++)
ptr[i] = input[i];
uc = 0xBADFACE;
@@ -213,10 +205,9 @@ main ()
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint8_t buf[1];
- for (c = 0; c < 0x80; c++)
+ for (ucs4_t c = 0; c < 0x80; c++)
{
buf[0] = c;
uc = 0xBADFACE;
diff --git a/tests/unistr/test-u8-set.c b/tests/unistr/test-u8-set.c
index b3c99dbe..c403180d 100644
--- a/tests/unistr/test-u8-set.c
+++ b/tests/unistr/test-u8-set.c
@@ -1,5 +1,5 @@
/* Test of u8_set() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-stpcpy.c b/tests/unistr/test-u8-stpcpy.c
index 3c4175fe..0abbc74c 100644
--- a/tests/unistr/test-u8-stpcpy.c
+++ b/tests/unistr/test-u8-stpcpy.c
@@ -1,5 +1,5 @@
/* Test of u8_stpcpy() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-stpncpy.c b/tests/unistr/test-u8-stpncpy.c
index e21f86c1..8d0bcedc 100644
--- a/tests/unistr/test-u8-stpncpy.c
+++ b/tests/unistr/test-u8-stpncpy.c
@@ -1,5 +1,5 @@
/* Test of u8_stpncpy() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-strcat.c b/tests/unistr/test-u8-strcat.c
index 8ae770d9..1287a922 100644
--- a/tests/unistr/test-u8-strcat.c
+++ b/tests/unistr/test-u8-strcat.c
@@ -1,5 +1,5 @@
/* Test of u8_strcat() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-strchr.c b/tests/unistr/test-u8-strchr.c
index ea6b6bb5..f18b872f 100644
--- a/tests/unistr/test-u8-strchr.c
+++ b/tests/unistr/test-u8-strchr.c
@@ -1,5 +1,5 @@
/* Test of u8_strchr() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-strcmp.c b/tests/unistr/test-u8-strcmp.c
index f940b276..076d97fa 100644
--- a/tests/unistr/test-u8-strcmp.c
+++ b/tests/unistr/test-u8-strcmp.c
@@ -1,5 +1,5 @@
/* Test of u8_strcmp() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-strcmp.h b/tests/unistr/test-u8-strcmp.h
index fc010741..b187633d 100644
--- a/tests/unistr/test-u8-strcmp.h
+++ b/tests/unistr/test-u8-strcmp.h
@@ -1,5 +1,5 @@
/* Test of u8_strcmp() and u8_strcoll() functions.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-strcoll.c b/tests/unistr/test-u8-strcoll.c
index 19cc14cc..ab02ebff 100644
--- a/tests/unistr/test-u8-strcoll.c
+++ b/tests/unistr/test-u8-strcoll.c
@@ -1,5 +1,5 @@
/* Test of u8_strcoll() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-strcpy.c b/tests/unistr/test-u8-strcpy.c
index 551daa56..06333a3c 100644
--- a/tests/unistr/test-u8-strcpy.c
+++ b/tests/unistr/test-u8-strcpy.c
@@ -1,5 +1,5 @@
/* Test of u8_strcpy() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-strdup.c b/tests/unistr/test-u8-strdup.c
index 03e31161..4e226124 100644
--- a/tests/unistr/test-u8-strdup.c
+++ b/tests/unistr/test-u8-strdup.c
@@ -1,5 +1,5 @@
/* Test of u8_strdup() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-strlen.c b/tests/unistr/test-u8-strlen.c
index 30e3ccbd..e149d739 100644
--- a/tests/unistr/test-u8-strlen.c
+++ b/tests/unistr/test-u8-strlen.c
@@ -1,5 +1,5 @@
/* Test of u8_strlen() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-strmblen.c b/tests/unistr/test-u8-strmblen.c
index 3294445b..cf138251 100644
--- a/tests/unistr/test-u8-strmblen.c
+++ b/tests/unistr/test-u8-strmblen.c
@@ -1,5 +1,5 @@
/* Test of u8_strmblen() function.
- 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 General Public License as published by
@@ -36,10 +36,9 @@ main ()
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint8_t buf[2];
- for (c = 1; c < 0x80; c++)
+ for (ucs4_t c = 1; c < 0x80; c++)
{
buf[0] = c;
buf[1] = 0;
diff --git a/tests/unistr/test-u8-strmbtouc.c b/tests/unistr/test-u8-strmbtouc.c
index a0ccb661..32ec76e2 100644
--- a/tests/unistr/test-u8-strmbtouc.c
+++ b/tests/unistr/test-u8-strmbtouc.c
@@ -1,5 +1,5 @@
/* Test of u8_strmbtouc() function.
- 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 General Public License as published by
@@ -39,10 +39,9 @@ main ()
/* Test ISO 646 unit input. */
{
- ucs4_t c;
uint8_t buf[2];
- for (c = 1; c < 0x80; c++)
+ for (ucs4_t c = 1; c < 0x80; c++)
{
buf[0] = c;
buf[1] = 0;
diff --git a/tests/unistr/test-u8-strncat.c b/tests/unistr/test-u8-strncat.c
index 37eb68bb..8b9bd598 100644
--- a/tests/unistr/test-u8-strncat.c
+++ b/tests/unistr/test-u8-strncat.c
@@ -1,5 +1,5 @@
/* Test of u8_strncat() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-strncmp.c b/tests/unistr/test-u8-strncmp.c
index e7711049..b29d3e41 100644
--- a/tests/unistr/test-u8-strncmp.c
+++ b/tests/unistr/test-u8-strncmp.c
@@ -1,5 +1,5 @@
/* Test of u8_strncmp() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-strncpy.c b/tests/unistr/test-u8-strncpy.c
index acae29a9..becfedbc 100644
--- a/tests/unistr/test-u8-strncpy.c
+++ b/tests/unistr/test-u8-strncpy.c
@@ -1,5 +1,5 @@
/* Test of u8_strncpy() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-strnlen.c b/tests/unistr/test-u8-strnlen.c
index db720513..15e71353 100644
--- a/tests/unistr/test-u8-strnlen.c
+++ b/tests/unistr/test-u8-strnlen.c
@@ -1,5 +1,5 @@
/* Test of u8_strnlen() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-strstr.c b/tests/unistr/test-u8-strstr.c
index 340016f5..86aaea3e 100644
--- a/tests/unistr/test-u8-strstr.c
+++ b/tests/unistr/test-u8-strstr.c
@@ -1,5 +1,5 @@
/* Test of u8_strstr() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-strtok.c b/tests/unistr/test-u8-strtok.c
index b61670b9..aa64bc03 100644
--- a/tests/unistr/test-u8-strtok.c
+++ b/tests/unistr/test-u8-strtok.c
@@ -1,5 +1,5 @@
/* Test of u8_strtok() function.
- Copyright (C) 2015-2025 Free Software Foundation, Inc.
+ Copyright (C) 2015-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
diff --git a/tests/unistr/test-u8-to-u16.c b/tests/unistr/test-u8-to-u16.c
index 3cbf675b..8edd01de 100644
--- a/tests/unistr/test-u8-to-u16.c
+++ b/tests/unistr/test-u8-to-u16.c
@@ -1,5 +1,5 @@
/* Test of u8_to_u16() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-to-u32.c b/tests/unistr/test-u8-to-u32.c
index b4c5308a..2286e9a8 100644
--- a/tests/unistr/test-u8-to-u32.c
+++ b/tests/unistr/test-u8-to-u32.c
@@ -1,5 +1,5 @@
/* Test of u8_to_u32() function.
- 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 General Public License as published by
diff --git a/tests/unistr/test-u8-uctomb.c b/tests/unistr/test-u8-uctomb.c
index 31ae2e56..40f99744 100644
--- a/tests/unistr/test-u8-uctomb.c
+++ b/tests/unistr/test-u8-uctomb.c
@@ -1,5 +1,5 @@
/* Test of u8_uctomb() function.
- 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 General Public License as published by
@@ -28,24 +28,20 @@ int
main ()
{
/* Test ISO 646 character, in particular the NUL character. */
- {
- ucs4_t uc;
-
- for (uc = 0; uc < 0x80; uc++)
- {
- uint8_t buf[5] = { MAGIC, MAGIC, MAGIC, MAGIC, MAGIC };
- int ret;
+ for (ucs4_t uc = 0; uc < 0x80; uc++)
+ {
+ uint8_t buf[5] = { MAGIC, MAGIC, MAGIC, MAGIC, MAGIC };
+ int ret;
- ret = u8_uctomb (buf, uc, 0);
- ASSERT (ret == -2);
- ASSERT (buf[0] == MAGIC);
+ ret = u8_uctomb (buf, uc, 0);
+ ASSERT (ret == -2);
+ ASSERT (buf[0] == MAGIC);
- ret = u8_uctomb (buf, uc, 1);
- ASSERT (ret == 1);
- ASSERT (buf[0] == uc);
- ASSERT (buf[1] == MAGIC);
- }
- }
+ ret = u8_uctomb (buf, uc, 1);
+ ASSERT (ret == 1);
+ ASSERT (buf[0] == uc);
+ ASSERT (buf[1] == MAGIC);
+ }
/* Test 2-byte character. */
{
@@ -133,14 +129,12 @@ main ()
{
ucs4_t invalid[] = { 0x110000, 0xD800, 0xDBFF, 0xDC00, 0xDFFF };
uint8_t buf[5] = { MAGIC, MAGIC, MAGIC, MAGIC, MAGIC };
- size_t i;
- for (i = 0; i < SIZEOF (invalid); i++)
+ for (size_t i = 0; i < SIZEOF (invalid); i++)
{
ucs4_t uc = invalid[i];
- int n;
- for (n = 0; n <= 4; n++)
+ for (int n = 0; n <= 4; n++)
{
int ret = u8_uctomb (buf, uc, n);
ASSERT (ret == -1);
diff --git a/tests/unistr/test-unistr-h.c b/tests/unistr/test-unistr-h.c
index 085fcac5..7178348c 100644
--- a/tests/unistr/test-unistr-h.c
+++ b/tests/unistr/test-unistr-h.c
@@ -1,5 +1,5 @@
/* Test of <unistr.h>.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-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
diff --git a/tests/uniwbrk/test-u16-wordbreaks.c b/tests/uniwbrk/test-u16-wordbreaks.c
index 408eb809..8c301a4c 100644
--- a/tests/uniwbrk/test-u16-wordbreaks.c
+++ b/tests/uniwbrk/test-u16-wordbreaks.c
@@ -1,5 +1,5 @@
/* Test of word breaks in UTF-16 strings.
- 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 General Public License as published by
@@ -41,11 +41,10 @@ main ()
0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
};
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
u16_wordbreaks (input, SIZEOF (input), p);
- for (i = 0; i < 61; i++)
+ for (size_t i = 0; i < 61; i++)
{
ASSERT (p[i] == ((i >= 4 && i <= 5)
|| (i >= 9 && i <= 11)
@@ -73,11 +72,10 @@ main ()
0x1112, 0x1161, 0x11AB, 0x1100, 0x1173, 0x11AF, '\n'
};
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
u16_wordbreaks (input, SIZEOF (input), p);
- for (i = 0; i < 67; i++)
+ for (size_t i = 0; i < 67; i++)
{
ASSERT (p[i] == ((i >= 5 && i <= 6)
|| (i >= 10 && i <= 12)
@@ -97,10 +95,9 @@ main ()
static const uint16_t input[8] =
{ 'a', '\n', 'b', '\r', 'c', '\r', '\n', 'd' };
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
u16_wordbreaks (input, SIZEOF (input), p);
- for (i = 0; i < 8; i++)
+ for (size_t i = 0; i < 8; i++)
{
ASSERT (p[i] == (i == 1 || i == 2 || i == 3 || i == 4 || i == 5
|| i == 7 ? 1 :
@@ -114,10 +111,9 @@ main ()
static const uint16_t input[10] =
{ '.', 0xD83C, 0xDDE9, 0xD83C, 0xDDEA, 0xD83C, 0xDDEB, 0xD83C, 0xDDF7, '.' };
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
u16_wordbreaks (input, SIZEOF (input), p);
- for (i = 0; i < 10; i++)
+ for (size_t i = 0; i < 10; i++)
{
ASSERT (p[i] == (i == 1 || i == 5 || i == 9 ? 1 : 0));
}
diff --git a/tests/uniwbrk/test-u32-wordbreaks.c b/tests/uniwbrk/test-u32-wordbreaks.c
index 58fa9cd4..0a2e77e1 100644
--- a/tests/uniwbrk/test-u32-wordbreaks.c
+++ b/tests/uniwbrk/test-u32-wordbreaks.c
@@ -1,5 +1,5 @@
/* Test of word breaks in UTF-32 strings.
- 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 General Public License as published by
@@ -41,11 +41,10 @@ main ()
0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
};
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
u32_wordbreaks (input, SIZEOF (input), p);
- for (i = 0; i < 61; i++)
+ for (size_t i = 0; i < 61; i++)
{
ASSERT (p[i] == ((i >= 4 && i <= 5)
|| (i >= 9 && i <= 11)
@@ -73,11 +72,10 @@ main ()
0x1112, 0x1161, 0x11AB, 0x1100, 0x1173, 0x11AF, '\n'
};
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
u32_wordbreaks (input, SIZEOF (input), p);
- for (i = 0; i < 67; i++)
+ for (size_t i = 0; i < 67; i++)
{
ASSERT (p[i] == ((i >= 5 && i <= 6)
|| (i >= 10 && i <= 12)
@@ -97,10 +95,9 @@ main ()
static const uint32_t input[8] =
{ 'a', '\n', 'b', '\r', 'c', '\r', '\n', 'd' };
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
u32_wordbreaks (input, SIZEOF (input), p);
- for (i = 0; i < 8; i++)
+ for (size_t i = 0; i < 8; i++)
{
ASSERT (p[i] == (i == 1 || i == 2 || i == 3 || i == 4 || i == 5
|| i == 7 ? 1 :
@@ -114,10 +111,9 @@ main ()
static const uint32_t input[6] =
{ '.', 0x1F1E9, 0x1F1EA, 0x1F1EB, 0x1F1F7, '.' };
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
u32_wordbreaks (input, SIZEOF (input), p);
- for (i = 0; i < 6; i++)
+ for (size_t i = 0; i < 6; i++)
{
ASSERT (p[i] == (i == 1 || i == 3 || i == 5 ? 1 : 0));
}
diff --git a/tests/uniwbrk/test-u8-wordbreaks.c b/tests/uniwbrk/test-u8-wordbreaks.c
index b8d035a9..c6cde97a 100644
--- a/tests/uniwbrk/test-u8-wordbreaks.c
+++ b/tests/uniwbrk/test-u8-wordbreaks.c
@@ -1,5 +1,5 @@
/* Test of word breaks in UTF-8 strings.
- 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 General Public License as published by
@@ -35,11 +35,10 @@ main ()
/* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
"Gr\303\274\303\237 Gott. \320\227\320\264\321\200\320\260\320\262\321\201\321\202\320\262\321\203\320\271\321\202\320\265! x=(-b\302\261sqrt(b\302\262-4ac))/(2a) \346\227\245\346\234\254\350\252\236,\344\270\255\346\226\207,\355\225\234\352\270\200\n";
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
u8_wordbreaks (input, SIZEOF (input), p);
- for (i = 0; i < 91; i++)
+ for (size_t i = 0; i < 91; i++)
{
ASSERT (p[i] == ((i >= 6 && i <= 7)
|| (i >= 11 && i <= 13)
@@ -62,11 +61,10 @@ main ()
/* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
"Gru\314\210\303\237 Gott. \320\227\320\264\321\200\320\260\320\262\321\201\321\202\320\262\321\203\320\270\314\206\321\202\320\265! x=(-b\302\261sqrt(b\302\262-4ac))/(2a) \346\227\245\346\234\254\350\252\236,\344\270\255\346\226\207,\341\204\222\341\205\241\341\206\253\341\204\200\341\205\263\341\206\257\n";
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
u8_wordbreaks (input, SIZEOF (input), p);
- for (i = 0; i < 106; i++)
+ for (size_t i = 0; i < 106; i++)
{
ASSERT (p[i] == ((i >= 7 && i <= 8)
|| (i >= 12 && i <= 14)
@@ -87,10 +85,9 @@ main ()
{
static const uint8_t input[8] _GL_ATTRIBUTE_NONSTRING = "a\nb\rc\r\nd";
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
u8_wordbreaks (input, SIZEOF (input), p);
- for (i = 0; i < 8; i++)
+ for (size_t i = 0; i < 8; i++)
{
ASSERT (p[i] == (i == 1 || i == 2 || i == 3 || i == 4 || i == 5
|| i == 7 ? 1 :
@@ -104,10 +101,9 @@ main ()
static const uint8_t input[18] _GL_ATTRIBUTE_NONSTRING =
".\360\237\207\251\360\237\207\252\360\237\207\253\360\237\207\267.";
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
u8_wordbreaks (input, SIZEOF (input), p);
- for (i = 0; i < 18; i++)
+ for (size_t i = 0; i < 18; i++)
{
ASSERT (p[i] == (i == 1 || i == 9 || i == 17 ? 1 : 0));
}
diff --git a/tests/uniwbrk/test-uc-wordbreaks.c b/tests/uniwbrk/test-uc-wordbreaks.c
index 11f4f201..a9dcb628 100644
--- a/tests/uniwbrk/test-uc-wordbreaks.c
+++ b/tests/uniwbrk/test-uc-wordbreaks.c
@@ -1,5 +1,5 @@
/* Word break function test, using test data from UCD.
- 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
@@ -157,10 +157,8 @@ main (int argc, char *argv[])
breaks[0] = breaks_expected[0] = 1;
if (memcmp (breaks, breaks_expected, i - 1) != 0)
{
- int j;
-
fprintf (stderr, "%s:%d: expected: ", filename, lineno);
- for (j = 0; j < i - 1; j++)
+ for (int j = 0; j < i - 1; j++)
{
int input_wbp = uc_wordbreak_property (input[j]);
fprintf (stderr, "%s U+%04X (%s) ",
@@ -169,7 +167,7 @@ main (int argc, char *argv[])
}
fprintf (stderr, "\n");
fprintf (stderr, "%s:%d: actual: ", filename, lineno);
- for (j = 0; j < i - 1; j++)
+ for (int j = 0; j < i - 1; j++)
{
int input_wbp = uc_wordbreak_property (input[j]);
fprintf (stderr, "%s U+%04X (%s) ",
diff --git a/tests/uniwbrk/test-ulc-wordbreaks.c b/tests/uniwbrk/test-ulc-wordbreaks.c
index 0d95fc38..5974cba8 100644
--- a/tests/uniwbrk/test-ulc-wordbreaks.c
+++ b/tests/uniwbrk/test-ulc-wordbreaks.c
@@ -1,5 +1,5 @@
/* Test of word breaks in strings.
- 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 General Public License as published by
@@ -41,11 +41,10 @@ main ()
/* "Grüß Gott. x=(-b±sqrt(b²-4ac))/(2a)" */
"Gr\374\337 Gott. x=(-b\261sqrt(b\262-4ac))/(2a)\n";
char *p = (char *) malloc (SIZEOF (input));
- size_t i;
ulc_wordbreaks (input, SIZEOF (input), p);
- for (i = 0; i < 36; i++)
+ for (size_t i = 0; i < 36; i++)
{
ASSERT (p[i] == ((i >= 4 && i <= 5)
|| (i >= 9 && i <= 17)
diff --git a/tests/uniwbrk/test-uniwbrk-h.c b/tests/uniwbrk/test-uniwbrk-h.c
index 7954b894..4e4ef299 100644
--- a/tests/uniwbrk/test-uniwbrk-h.c
+++ b/tests/uniwbrk/test-uniwbrk-h.c
@@ -1,5 +1,5 @@
/* Test of <uniwbrk.h>.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-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
diff --git a/tests/uniwidth/test-u16-strwidth.c b/tests/uniwidth/test-u16-strwidth.c
index c85ed0e2..2cf8f1c2 100644
--- a/tests/uniwidth/test-u16-strwidth.c
+++ b/tests/uniwidth/test-u16-strwidth.c
@@ -1,5 +1,5 @@
/* Test of u16_strwidth() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/uniwidth/test-u16-width.c b/tests/uniwidth/test-u16-width.c
index 44bd0bb9..1adaeb15 100644
--- a/tests/uniwidth/test-u16-width.c
+++ b/tests/uniwidth/test-u16-width.c
@@ -1,5 +1,5 @@
/* Test of u16_width() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/uniwidth/test-u32-strwidth.c b/tests/uniwidth/test-u32-strwidth.c
index 1fff8f30..cd8337cd 100644
--- a/tests/uniwidth/test-u32-strwidth.c
+++ b/tests/uniwidth/test-u32-strwidth.c
@@ -1,5 +1,5 @@
/* Test of u32_strwidth() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/uniwidth/test-u32-width.c b/tests/uniwidth/test-u32-width.c
index c3479b86..5630d10a 100644
--- a/tests/uniwidth/test-u32-width.c
+++ b/tests/uniwidth/test-u32-width.c
@@ -1,5 +1,5 @@
/* Test of u32_width() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/uniwidth/test-u8-strwidth.c b/tests/uniwidth/test-u8-strwidth.c
index 094d45ca..be28a297 100644
--- a/tests/uniwidth/test-u8-strwidth.c
+++ b/tests/uniwidth/test-u8-strwidth.c
@@ -1,5 +1,5 @@
/* Test of u8_strwidth() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/uniwidth/test-u8-width.c b/tests/uniwidth/test-u8-width.c
index ec3b57dc..6fb7a9b0 100644
--- a/tests/uniwidth/test-u8-width.c
+++ b/tests/uniwidth/test-u8-width.c
@@ -1,5 +1,5 @@
/* Test of u8_width() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
diff --git a/tests/uniwidth/test-uc_width.c b/tests/uniwidth/test-uc_width.c
index 27667245..fd7adcf7 100644
--- a/tests/uniwidth/test-uc_width.c
+++ b/tests/uniwidth/test-uc_width.c
@@ -1,5 +1,5 @@
/* Test of uc_width() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -25,10 +25,8 @@
int
main ()
{
- ucs4_t uc;
-
/* Test width of ASCII characters. */
- for (uc = 0x0020; uc < 0x007F; uc++)
+ for (ucs4_t uc = 0x0020; uc < 0x007F; uc++)
ASSERT (uc_width (uc, "ISO-8859-2") == 1);
/* Test width of some non-spacing characters. */
diff --git a/tests/uniwidth/test-uc_width2.c b/tests/uniwidth/test-uc_width2.c
index b651847d..ef2fd88a 100644
--- a/tests/uniwidth/test-uc_width2.c
+++ b/tests/uniwidth/test-uc_width2.c
@@ -1,5 +1,5 @@
/* Test of uc_width() function.
- Copyright (C) 2007-2025 Free Software Foundation, Inc.
+ Copyright (C) 2007-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
@@ -60,9 +60,7 @@ add_to_interval (ucs4_t uc, char width)
int
main ()
{
- ucs4_t uc;
-
- for (uc = 0; uc < 0x110000; uc++)
+ for (ucs4_t uc = 0; uc < 0x110000; uc++)
{
int w1 = uc_width (uc, "UTF-8");
int w2 = uc_width (uc, "GBK");
diff --git a/tests/uniwidth/test-uniwidth-h.c b/tests/uniwidth/test-uniwidth-h.c
index 74f1d6ad..70152039 100644
--- a/tests/uniwidth/test-uniwidth-h.c
+++ b/tests/uniwidth/test-uniwidth-h.c
@@ -1,5 +1,5 @@
/* Test of <uniwidth.h>.
- Copyright (C) 2025 Free Software Foundation, Inc.
+ Copyright (C) 2025-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
diff --git a/tests/unsetenv.c b/tests/unsetenv.c
index d38ed37a..dab1b90c 100644
--- a/tests/unsetenv.c
+++ b/tests/unsetenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995-2002, 2005-2025 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995-2002, 2005-2026 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This file is free software: you can redistribute it and/or modify
@@ -56,15 +56,13 @@ __libc_lock_define_initialized (static, envlock)
int
unsetenv (const char *name)
{
- size_t len;
-
if (name == NULL || *name == '\0' || strchr (name, '=') != NULL)
{
__set_errno (EINVAL);
return -1;
}
- len = strlen (name);
+ size_t len = strlen (name);
#if HAVE_DECL__PUTENV /* native Windows */
/* The Microsoft documentation
@@ -79,14 +77,13 @@ unsetenv (const char *name)
of the form "NAME=". (NB: This is a different convention than with glibc
putenv, which expects a string of the form "NAME"!) */
{
- int putenv_result;
char *name_ = malloc (len + 2);
if (name_ == NULL)
return -1;
memcpy (name_, name, len);
name_[len] = '=';
name_[len + 1] = 0;
- putenv_result = _putenv (name_);
+ int putenv_result = _putenv (name_);
/* In this particular case it is OK to free() the argument passed to
_putenv. */
free (name_);
@@ -138,12 +135,12 @@ extern int unsetenv (const char *);
int
rpl_unsetenv (const char *name)
{
- int result = 0;
if (!name || !*name || strchr (name, '='))
{
errno = EINVAL;
return -1;
}
+ int result = 0;
while (getenv (name))
# if !VOID_UNSETENV
result =
diff --git a/tests/usleep.c b/tests/usleep.c
index 3707ddd7..ae03db0a 100644
--- a/tests/usleep.c
+++ b/tests/usleep.c
@@ -1,5 +1,5 @@
/* Pausing execution of the current thread.
- Copyright (C) 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 2009-2026 Free Software Foundation, Inc.
Written by Eric Blake <ebb9@byu.net>, 2009.
This file is free software: you can redistribute it and/or modify
diff --git a/tests/verify.h b/tests/verify.h
index 3b01d7c2..ad45c39d 100644
--- a/tests/verify.h
+++ b/tests/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/tests/virtualbox.h b/tests/virtualbox.h
index e3531893..5324ac68 100644
--- a/tests/virtualbox.h
+++ b/tests/virtualbox.h
@@ -1,5 +1,5 @@
/* Determine whether the current system is running under VirtualBox/KVM.
- Copyright (C) 2021-2025 Free Software Foundation, Inc.
+ Copyright (C) 2021-2026 Free Software Foundation, Inc.
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
@@ -78,8 +78,7 @@ is_running_under_virtualbox_kvm (void)
{
buf[n] = '\0';
char *saveptr;
- char *word;
- for (word = strtok_r (buf, " \n", &saveptr);
+ for (char *word = strtok_r (buf, " \n", &saveptr);
word != NULL;
word = strtok_r (NULL, " \n", &saveptr))
{
@@ -116,8 +115,7 @@ num_cpus (void)
int n = read (fd, buf, sizeof (buf));
if (n <= 0)
break;
- int i;
- for (i = 0; i < n; i++)
+ for (int i = 0; i < n; i++)
{
if (last_char_was_newline && buf[i] == '\n')
blank_lines++;
diff --git a/tests/w32sock.h b/tests/w32sock.h
index d7087a28..a3201ad9 100644
--- a/tests/w32sock.h
+++ b/tests/w32sock.h
@@ -1,6 +1,6 @@
/* w32sock.h --- internal auxiliary functions for Windows socket functions
- 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/tests/warn-on-use.h b/tests/warn-on-use.h
index c0072412..97f36ea2 100644
--- a/tests/warn-on-use.h
+++ b/tests/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/tests/wcrtomb.c b/tests/wcrtomb.c
index 11d52804..a9b8de78 100644
--- a/tests/wcrtomb.c
+++ b/tests/wcrtomb.c
@@ -1,5 +1,5 @@
/* Convert wide character to multibyte character.
- Copyright (C) 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This file is free software: you can redistribute it and/or modify
diff --git a/tests/wctob.c b/tests/wctob.c
index 03b2929e..1a569a88 100644
--- a/tests/wctob.c
+++ b/tests/wctob.c
@@ -1,5 +1,5 @@
/* Convert wide character to unibyte character.
- Copyright (C) 2008, 2010-2025 Free Software Foundation, Inc.
+ Copyright (C) 2008, 2010-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This file is free software: you can redistribute it and/or modify
diff --git a/tests/wctomb-impl.h b/tests/wctomb-impl.h
index e24e9777..bd588357 100644
--- a/tests/wctomb-impl.h
+++ b/tests/wctomb-impl.h
@@ -1,5 +1,5 @@
/* Convert wide character to multibyte character.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software: you can redistribute it and/or modify
@@ -23,10 +23,9 @@ wctomb (char *s, wchar_t wc)
else
{
mbstate_t state;
- size_t result;
-
mbszero (&state);
- result = wcrtomb (s, wc, &state);
+
+ size_t result = wcrtomb (s, wc, &state);
if (result == (size_t)-1)
return -1;
return result;
diff --git a/tests/wctomb.c b/tests/wctomb.c
index 6fb0c375..249d47b1 100644
--- a/tests/wctomb.c
+++ b/tests/wctomb.c
@@ -1,5 +1,5 @@
/* Convert wide character to multibyte character.
- Copyright (C) 2011-2025 Free Software Foundation, Inc.
+ Copyright (C) 2011-2026 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011.
This file is free software: you can redistribute it and/or modify
diff --git a/tests/windows-cond.c b/tests/windows-cond.c
index c6c6088d..4f848a9a 100644
--- a/tests/windows-cond.c
+++ b/tests/windows-cond.c
@@ -1,5 +1,5 @@
/* Condition variables (native Windows implementation).
- 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
@@ -54,13 +54,10 @@ glwthread_waitqueue_init (glwthread_waitqueue_t *wq)
static struct glwthread_waitqueue_element *
glwthread_waitqueue_add (glwthread_waitqueue_t *wq)
{
- struct glwthread_waitqueue_element *elt;
- HANDLE event;
-
/* Allocate the memory for the waitqueue element on the heap, not on the
thread's stack. If the thread exits unexpectedly, we prefer to leak
some memory rather than to access unavailable memory and crash. */
- elt =
+ struct glwthread_waitqueue_element *elt =
(struct glwthread_waitqueue_element *)
malloc (sizeof (struct glwthread_waitqueue_element));
if (elt == NULL)
@@ -69,7 +66,7 @@ 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. */
@@ -113,12 +110,10 @@ glwthread_waitqueue_notify_first (glwthread_waitqueue_t *wq)
{
struct glwthread_waitqueue_element *elt =
(struct glwthread_waitqueue_element *) wq->wq_list.wql_next;
- struct glwthread_waitqueue_link *prev;
- struct glwthread_waitqueue_link *next;
/* Remove elt from the circular list. */
- prev = &wq->wq_list; /* = elt->link.wql_prev; */
- next = elt->link.wql_next;
+ struct glwthread_waitqueue_link *prev = &wq->wq_list; /* = elt->link.wql_prev; */
+ struct glwthread_waitqueue_link *next = elt->link.wql_next;
prev->wql_next = next;
next->wql_prev = prev;
elt->link.wql_next = NULL;
@@ -134,18 +129,14 @@ glwthread_waitqueue_notify_first (glwthread_waitqueue_t *wq)
static void
glwthread_waitqueue_notify_all (glwthread_waitqueue_t *wq)
{
- struct glwthread_waitqueue_link *l;
-
- for (l = wq->wq_list.wql_next; l != &wq->wq_list; )
+ for (struct glwthread_waitqueue_link *l = wq->wq_list.wql_next; l != &wq->wq_list; )
{
struct glwthread_waitqueue_element *elt =
(struct glwthread_waitqueue_element *) l;
- struct glwthread_waitqueue_link *prev;
- struct glwthread_waitqueue_link *next;
/* Remove elt from the circular list. */
- prev = &wq->wq_list; /* = elt->link.wql_prev; */
- next = elt->link.wql_next;
+ struct glwthread_waitqueue_link *prev = &wq->wq_list; /* = elt->link.wql_prev; */
+ struct glwthread_waitqueue_link *next = elt->link.wql_next;
prev->wql_next = next;
next->wql_prev = prev;
elt->link.wql_next = NULL;
@@ -206,11 +197,9 @@ glwthread_cond_wait (glwthread_cond_t *cond,
else
{
HANDLE event = elt->event;
- int err;
- DWORD result;
/* Now release the mutex and let any other thread take it. */
- err = mutex_unlock (mutex);
+ int err = mutex_unlock (mutex);
if (err != 0)
{
EnterCriticalSection (&cond->lock);
@@ -229,7 +218,7 @@ glwthread_cond_wait (glwthread_cond_t *cond,
This is fulfilled here, because the thread signalling is done
through SetEvent, not PulseEvent. */
/* 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);
@@ -265,7 +254,6 @@ glwthread_cond_timedwait (glwthread_cond_t *cond,
{
struct timeval currtime;
-
gettimeofday (&currtime, NULL);
if (currtime.tv_sec > abstime->tv_sec
|| (currtime.tv_sec == abstime->tv_sec
@@ -285,21 +273,20 @@ glwthread_cond_timedwait (glwthread_cond_t *cond,
else
{
HANDLE event = elt->event;
- int err;
- DWORD timeout;
- DWORD result;
/* Now release the mutex and let any other thread take it. */
- err = mutex_unlock (mutex);
- if (err != 0)
- {
- EnterCriticalSection (&cond->lock);
- glwthread_waitqueue_remove (&cond->waiters, elt);
- LeaveCriticalSection (&cond->lock);
- CloseHandle (event);
- free (elt);
- return err;
- }
+ {
+ int err = mutex_unlock (mutex);
+ if (err != 0)
+ {
+ EnterCriticalSection (&cond->lock);
+ glwthread_waitqueue_remove (&cond->waiters, elt);
+ LeaveCriticalSection (&cond->lock);
+ CloseHandle (event);
+ free (elt);
+ return err;
+ }
+ }
/* POSIX says:
"If another thread is able to acquire the mutex after the
about-to-block thread has released it, then a subsequent call to
@@ -311,6 +298,7 @@ glwthread_cond_timedwait (glwthread_cond_t *cond,
/* Wait until another thread signals this event or until the abstime
passes. */
gettimeofday (&currtime, NULL);
+ DWORD timeout;
if (currtime.tv_sec > abstime->tv_sec)
timeout = 0;
else
@@ -338,7 +326,7 @@ glwthread_cond_timedwait (glwthread_cond_t *cond,
}
}
}
- result = WaitForSingleObject (event, timeout);
+ DWORD result = WaitForSingleObject (event, timeout);
if (result == WAIT_FAILED)
abort ();
if (result == WAIT_TIMEOUT)
@@ -371,7 +359,7 @@ glwthread_cond_timedwait (glwthread_cond_t *cond,
free (elt);
/* Take the mutex again. It does not matter whether this is done
before or after the bookkeeping for WAIT_TIMEOUT. */
- err = mutex_lock (mutex);
+ int err = mutex_lock (mutex);
return (err ? err :
result == WAIT_OBJECT_0 ? 0 :
result == WAIT_TIMEOUT ? ETIMEDOUT :
diff --git a/tests/windows-cond.h b/tests/windows-cond.h
index a99d6841..9546f291 100644
--- a/tests/windows-cond.h
+++ b/tests/windows-cond.h
@@ -1,5 +1,5 @@
/* Condition variables (native Windows implementation).
- 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/tests/windows-initguard.h b/tests/windows-initguard.h
index 4f45e5bb..e7da4735 100644
--- a/tests/windows-initguard.h
+++ b/tests/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/tests/windows-thread.c b/tests/windows-thread.c
index 9f6fd8b6..74a2a085 100644
--- a/tests/windows-thread.c
+++ b/tests/windows-thread.c
@@ -1,5 +1,5 @@
/* Creating and controlling threads (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
@@ -84,11 +84,9 @@ get_current_thread_handle (void)
glwthread_thread_t
glwthread_thread_self (void)
{
- glwthread_thread_t thread;
-
if (self_key == (DWORD)-1)
init_self_key ();
- thread = TlsGetValue (self_key);
+ glwthread_thread_t thread = TlsGetValue (self_key);
if (thread == NULL)
{
/* This happens only in threads that have not been created through
@@ -169,9 +167,7 @@ glwthread_thread_create (glwthread_thread_t *threadp, unsigned int attr,
{
unsigned int thread_id;
- HANDLE thread_handle;
-
- thread_handle = (HANDLE)
+ HANDLE thread_handle = (HANDLE)
_beginthreadex (NULL, 100000, wrapper_func, thread, 0, &thread_id);
/* calls CreateThread with the same arguments */
if (thread_handle == NULL)
diff --git a/tests/windows-thread.h b/tests/windows-thread.h
index 6598051f..3e2aaf3f 100644
--- a/tests/windows-thread.h
+++ b/tests/windows-thread.h
@@ -1,5 +1,5 @@
/* Creating and controlling threads (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/tests/windows-timedmutex.c b/tests/windows-timedmutex.c
index 6ee6edbf..183122c6 100644
--- a/tests/windows-timedmutex.c
+++ b/tests/windows-timedmutex.c
@@ -1,5 +1,5 @@
/* Timed 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
@@ -171,13 +171,11 @@ glwthread_timedmutex_timedlock (glwthread_timedmutex_t *mutex,
{
struct timeval currtime;
- DWORD timeout;
- DWORD result;
-
gettimeofday (&currtime, NULL);
/* Wait until another thread signals the event or until the
abstime passes. */
+ DWORD timeout;
if (currtime.tv_sec > abstime->tv_sec)
timeout = 0;
else
@@ -210,7 +208,7 @@ glwthread_timedmutex_timedlock (glwthread_timedmutex_t *mutex,
/* WaitForSingleObject
<https://docs.microsoft.com/en-us/windows/desktop/api/synchapi/nf-synchapi-waitforsingleobject> */
- result = WaitForSingleObject (mutex->event, timeout);
+ DWORD result = WaitForSingleObject (mutex->event, timeout);
if (result == WAIT_FAILED)
abort ();
if (result == WAIT_TIMEOUT)
diff --git a/tests/windows-timedmutex.h b/tests/windows-timedmutex.h
index 6a92465e..247eadb5 100644
--- a/tests/windows-timedmutex.h
+++ b/tests/windows-timedmutex.h
@@ -1,5 +1,5 @@
/* Timed 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/tests/windows-timedrecmutex.c b/tests/windows-timedrecmutex.c
index 5bc6ecfd..4d43cd23 100644
--- a/tests/windows-timedrecmutex.c
+++ b/tests/windows-timedrecmutex.c
@@ -1,5 +1,5 @@
/* Timed 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
@@ -179,13 +179,11 @@ glwthread_timedrecmutex_timedlock (glwthread_timedrecmutex_t *mutex,
{
struct timeval currtime;
- DWORD timeout;
- DWORD result;
-
gettimeofday (&currtime, NULL);
/* Wait until another thread signals the event or until the
abstime passes. */
+ DWORD timeout;
if (currtime.tv_sec > abstime->tv_sec)
timeout = 0;
else
@@ -218,7 +216,7 @@ glwthread_timedrecmutex_timedlock (glwthread_timedrecmutex_t *mutex,
/* WaitForSingleObject
<https://docs.microsoft.com/en-us/windows/desktop/api/synchapi/nf-synchapi-waitforsingleobject> */
- result = WaitForSingleObject (mutex->event, timeout);
+ DWORD result = WaitForSingleObject (mutex->event, timeout);
if (result == WAIT_FAILED)
abort ();
if (result == WAIT_TIMEOUT)
diff --git a/tests/windows-timedrecmutex.h b/tests/windows-timedrecmutex.h
index b839a70c..540bb5d8 100644
--- a/tests/windows-timedrecmutex.h
+++ b/tests/windows-timedrecmutex.h
@@ -1,5 +1,5 @@
/* Timed 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/tests/windows-timedrwlock.c b/tests/windows-timedrwlock.c
index 379b1003..2297f637 100644
--- a/tests/windows-timedrwlock.c
+++ b/tests/windows-timedrwlock.c
@@ -1,5 +1,5 @@
/* Timed 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
@@ -54,13 +54,10 @@ glwthread_waitqueue_init (glwthread_waitqueue_t *wq)
static struct glwthread_waitqueue_element *
glwthread_waitqueue_add (glwthread_waitqueue_t *wq)
{
- struct glwthread_waitqueue_element *elt;
- HANDLE event;
-
/* Allocate the memory for the waitqueue element on the heap, not on the
thread's stack. If the thread exits unexpectedly, we prefer to leak
some memory rather than to access unavailable memory and crash. */
- elt =
+ struct glwthread_waitqueue_element *elt =
(struct glwthread_waitqueue_element *)
malloc (sizeof (struct glwthread_waitqueue_element));
if (elt == NULL)
@@ -69,7 +66,7 @@ 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. */
@@ -115,12 +112,10 @@ glwthread_waitqueue_notify_first (glwthread_waitqueue_t *wq)
{
struct glwthread_waitqueue_element *elt =
(struct glwthread_waitqueue_element *) wq->wq_list.wql_next;
- struct glwthread_waitqueue_link *prev;
- struct glwthread_waitqueue_link *next;
/* Remove elt from the circular list. */
- prev = &wq->wq_list; /* = elt->link.wql_prev; */
- next = elt->link.wql_next;
+ struct glwthread_waitqueue_link *prev = &wq->wq_list; /* = elt->link.wql_prev; */
+ struct glwthread_waitqueue_link *next = elt->link.wql_next;
prev->wql_next = next;
next->wql_prev = prev;
elt->link.wql_next = NULL;
@@ -137,18 +132,14 @@ glwthread_waitqueue_notify_first (glwthread_waitqueue_t *wq)
static void
glwthread_waitqueue_notify_all (glwthread_waitqueue_t *wq)
{
- struct glwthread_waitqueue_link *l;
-
- for (l = wq->wq_list.wql_next; l != &wq->wq_list; )
+ for (struct glwthread_waitqueue_link *l = wq->wq_list.wql_next; l != &wq->wq_list; )
{
struct glwthread_waitqueue_element *elt =
(struct glwthread_waitqueue_element *) l;
- struct glwthread_waitqueue_link *prev;
- struct glwthread_waitqueue_link *next;
/* Remove elt from the circular list. */
- prev = &wq->wq_list; /* = elt->link.wql_prev; */
- next = elt->link.wql_next;
+ struct glwthread_waitqueue_link *prev = &wq->wq_list; /* = elt->link.wql_prev; */
+ struct glwthread_waitqueue_link *next = elt->link.wql_next;
prev->wql_next = next;
next->wql_prev = prev;
elt->link.wql_next = NULL;
@@ -209,10 +200,9 @@ glwthread_timedrwlock_rdlock (glwthread_timedrwlock_t *lock)
if (elt != NULL)
{
HANDLE event = elt->event;
- 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);
@@ -269,10 +259,9 @@ glwthread_timedrwlock_wrlock (glwthread_timedrwlock_t *lock)
if (elt != NULL)
{
HANDLE event = elt->event;
- 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);
@@ -402,17 +391,15 @@ glwthread_timedrwlock_timedrdlock (glwthread_timedrwlock_t *lock,
if (elt != NULL)
{
HANDLE event = elt->event;
- struct timeval currtime;
- DWORD timeout;
- DWORD result;
- int retval;
LeaveCriticalSection (&lock->lock);
+ struct timeval currtime;
gettimeofday (&currtime, NULL);
/* Wait until another thread signals this event or until the
abstime passes. */
+ DWORD timeout;
if (currtime.tv_sec > abstime->tv_sec)
timeout = 0;
else
@@ -444,7 +431,7 @@ glwthread_timedrwlock_timedrdlock (glwthread_timedrwlock_t *lock,
{
/* WaitForSingleObject
<https://docs.microsoft.com/en-us/windows/desktop/api/synchapi/nf-synchapi-waitforsingleobject> */
- result = WaitForSingleObject (event, timeout);
+ DWORD result = WaitForSingleObject (event, timeout);
if (result == WAIT_FAILED)
abort ();
if (result != WAIT_TIMEOUT)
@@ -461,6 +448,7 @@ glwthread_timedrwlock_timedrdlock (glwthread_timedrwlock_t *lock,
}
EnterCriticalSection (&lock->lock);
/* Remove ourselves from the waiting_readers. */
+ int retval;
if (glwthread_waitqueue_remove (&lock->waiting_readers, elt))
retval = ETIMEDOUT;
else
@@ -522,17 +510,15 @@ glwthread_timedrwlock_timedwrlock (glwthread_timedrwlock_t *lock,
if (elt != NULL)
{
HANDLE event = elt->event;
- struct timeval currtime;
- DWORD timeout;
- DWORD result;
- int retval;
LeaveCriticalSection (&lock->lock);
+ struct timeval currtime;
gettimeofday (&currtime, NULL);
/* Wait until another thread signals this event or until the
abstime passes. */
+ DWORD timeout;
if (currtime.tv_sec > abstime->tv_sec)
timeout = 0;
else
@@ -564,7 +550,7 @@ glwthread_timedrwlock_timedwrlock (glwthread_timedrwlock_t *lock,
{
/* WaitForSingleObject
<https://docs.microsoft.com/en-us/windows/desktop/api/synchapi/nf-synchapi-waitforsingleobject> */
- result = WaitForSingleObject (event, timeout);
+ DWORD result = WaitForSingleObject (event, timeout);
if (result == WAIT_FAILED)
abort ();
if (result != WAIT_TIMEOUT)
@@ -581,6 +567,7 @@ glwthread_timedrwlock_timedwrlock (glwthread_timedrwlock_t *lock,
}
EnterCriticalSection (&lock->lock);
/* Remove ourselves from the waiting_writers. */
+ int retval;
if (glwthread_waitqueue_remove (&lock->waiting_writers, elt))
retval = ETIMEDOUT;
else
diff --git a/tests/windows-timedrwlock.h b/tests/windows-timedrwlock.h
index 42862ca6..df97bdfd 100644
--- a/tests/windows-timedrwlock.h
+++ b/tests/windows-timedrwlock.h
@@ -1,5 +1,5 @@
/* Timed read-write locks (native Windows implementation).
- 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/tests/windows-tls.c b/tests/windows-tls.c
index 00852433..190b0c99 100644
--- a/tests/windows-tls.c
+++ b/tests/windows-tls.c
@@ -1,5 +1,5 @@
/* Thread-local storage (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
@@ -128,8 +128,6 @@ dtor_table_shrink_used (void)
void
glwthread_tls_process_destructors (void)
{
- unsigned int repeat;
-
dtor_table_ensure_initialized ();
EnterCriticalSection (&dtor_table_lock);
@@ -141,7 +139,7 @@ glwthread_tls_process_destructors (void)
}
dtor_processing_threads++;
- for (repeat = GLWTHREAD_DESTRUCTOR_ITERATIONS; repeat > 0; repeat--)
+ for (unsigned int repeat = GLWTHREAD_DESTRUCTOR_ITERATIONS; repeat > 0; repeat--)
{
unsigned int destructors_run = 0;
@@ -157,9 +155,8 @@ glwthread_tls_process_destructors (void)
entry as inactive, but it will not otherwise change dtors_used nor
the contents of the first dtors_used entries of dtor_table. */
unsigned int i_limit = dtors_used;
- unsigned int i;
- for (i = 0; i < i_limit; i++)
+ for (unsigned int i = 0; i < i_limit; i++)
{
struct dtor current = dtor_table[i];
if (current.destructor != NULL)
@@ -299,9 +296,8 @@ glwthread_tls_key_delete (glwthread_tls_key_t key)
/* Find the key in dtor_table. */
{
unsigned int i_limit = dtors_used;
- unsigned int i;
- for (i = 0; i < i_limit; i++)
+ for (unsigned int i = 0; i < i_limit; i++)
if (dtor_table[i].key == key)
{
if (i < dtors_used - 1)
@@ -317,9 +313,8 @@ glwthread_tls_key_delete (glwthread_tls_key_t key)
/* Be careful not to disturb the glwthread_tls_process_destructors
invocations that are executing in other threads. */
unsigned int i_limit = dtors_used;
- unsigned int i;
- for (i = 0; i < i_limit; i++)
+ for (unsigned int i = 0; i < i_limit; i++)
if (dtor_table[i].destructor != NULL /* skip inactive entries */
&& dtor_table[i].key == key)
{
diff --git a/tests/windows-tls.h b/tests/windows-tls.h
index 79cf88d5..53f86df6 100644
--- a/tests/windows-tls.h
+++ b/tests/windows-tls.h
@@ -1,5 +1,5 @@
/* Thread-local storage (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/tests/xalloc-die.c b/tests/xalloc-die.c
index c3f3961a..1a51976e 100644
--- a/tests/xalloc-die.c
+++ b/tests/xalloc-die.c
@@ -1,6 +1,6 @@
/* Report a memory allocation failure and exit.
- Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2025 Free Software
+ Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2026 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
diff --git a/tests/xalloc.h b/tests/xalloc.h
index 438e5caa..d3948270 100644
--- a/tests/xalloc.h
+++ b/tests/xalloc.h
@@ -1,6 +1,6 @@
/* xalloc.h -- malloc with out-of-memory 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 program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/tests/xconcat-filename.c b/tests/xconcat-filename.c
index 230c747b..d78ab07f 100644
--- a/tests/xconcat-filename.c
+++ b/tests/xconcat-filename.c
@@ -1,5 +1,5 @@
/* Construct a full filename from a directory and a relative filename.
- Copyright (C) 2001-2004, 2006-2025 Free Software Foundation, Inc.
+ Copyright (C) 2001-2004, 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 the
@@ -31,9 +31,7 @@ char *
xconcatenated_filename (const char *directory, const char *filename,
const char *suffix)
{
- char *result;
-
- result = concatenated_filename (directory, filename, suffix);
+ char *result = concatenated_filename (directory, filename, suffix);
if (result == NULL)
xalloc_die ();
diff --git a/tests/xgetcwd.c b/tests/xgetcwd.c
index 17121bf1..b031d72d 100644
--- a/tests/xgetcwd.c
+++ b/tests/xgetcwd.c
@@ -1,6 +1,6 @@
/* xgetcwd.c -- return current directory with unlimited length
- Copyright (C) 2001, 2003-2004, 2006-2007, 2009-2025 Free Software
+ Copyright (C) 2001, 2003-2004, 2006-2007, 2009-2026 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify
diff --git a/tests/xgetcwd.h b/tests/xgetcwd.h
index b9eec1ac..0d84183d 100644
--- a/tests/xgetcwd.h
+++ b/tests/xgetcwd.h
@@ -1,5 +1,5 @@
/* prototype for xgetcwd
- Copyright (C) 1995, 2001, 2003, 2009-2025 Free Software Foundation, Inc.
+ Copyright (C) 1995, 2001, 2003, 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 General Public License as published by
diff --git a/tests/xmalloc.c b/tests/xmalloc.c
index 8a715807..545beb35 100644
--- a/tests/xmalloc.c
+++ b/tests/xmalloc.c
@@ -1,6 +1,6 @@
/* xmalloc.c -- malloc with out of memory checking
- Copyright (C) 1990-2000, 2002-2006, 2008-2025 Free Software Foundation, Inc.
+ Copyright (C) 1990-2000, 2002-2006, 2008-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
@@ -15,10 +15,8 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define XALLOC_INLINE _GL_EXTERN_INLINE
-
+#include <config.h>
#include "xalloc.h"
#include "ialloc.h"
@@ -29,7 +27,13 @@
#include <stdint.h>
#include <string.h>
-static void * _GL_ATTRIBUTE_PURE
+/* Pacify GCC up to at least 15.2, which otherwise would incorrectly
+ complain about check_nonnull. */
+#if _GL_GNUC_PREREQ (4, 6)
+# pragma GCC diagnostic ignored "-Wsuggest-attribute=pure"
+#endif
+
+static void *
check_nonnull (void *p)
{
if (!p)
@@ -63,10 +67,7 @@ xcharalloc (size_t n)
void *
xrealloc (void *p, size_t s)
{
- void *r = realloc (p, s);
- if (!r)
- xalloc_die ();
- return r;
+ return check_nonnull (realloc (p, s));
}
void *
@@ -81,10 +82,7 @@ xirealloc (void *p, idx_t s)
void *
xreallocarray (void *p, size_t n, size_t s)
{
- void *r = reallocarray (p, n, s);
- if (!r)
- xalloc_die ();
- return r;
+ return check_nonnull (reallocarray (p, n, s));
}
void *
@@ -224,13 +222,13 @@ x2nrealloc (void *p, size_t *pn, size_t s)
void *
xpalloc (void *pa, idx_t *pn, idx_t n_incr_min, ptrdiff_t n_max, idx_t s)
{
- idx_t n0 = *pn;
-
/* The approximate size to use for initial small allocation
requests. This is the largest "small" request for the GNU C
library malloc. */
enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 };
+ idx_t n0 = *pn;
+
/* If the array is tiny, grow it to about (but no greater than)
DEFAULT_MXFAST bytes. Otherwise, grow it by about 50%.
Adjust the growth according to three constraints: N_INCR_MIN,
diff --git a/tests/zerosize-ptr.h b/tests/zerosize-ptr.h
index 07d09f2c..20ab62a3 100644
--- a/tests/zerosize-ptr.h
+++ b/tests/zerosize-ptr.h
@@ -1,5 +1,5 @@
/* Return a pointer to a zero-size object in memory.
- 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 General Public License as published by
diff --git a/version.sh b/version.sh
index 1ec81ba1..d4514d31 100644
--- a/version.sh
+++ b/version.sh
@@ -1,6 +1,6 @@
# Version number and release date.
-VERSION_NUMBER=1.4.1
-RELEASE_DATE=2025-10-05 # in "date +%Y-%m-%d" format
+VERSION_NUMBER=1.4.2
+RELEASE_DATE=2026-02-23 # in "date +%Y-%m-%d" format
# Version of gnulib that was used in this release.
-GNULIB_GIT_COMMIT=6d64a3155318e29dcf072a5c377ea1a8a9bfec62
+GNULIB_GIT_COMMIT=85fbf81245c8f7e8dedaa4794bfa209f885d41ba